Skip to content
Productivity
Skill

/elron

Look up Elron train times, fares and connections between Estonian (and cross-border Latvian) stations, see live delays and positions of running trains on a map, and check Ühiskaart farecard balances, remembering the user's home station and cards. Use when someone asks about

BOOST
From plugin
joe-bell-skills
2123 skills
Install
$ npx -y skills add joe-bell/skills --skill elron --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/elron

Context preview

The summary Claude sees to decide when to auto-load this skill.

Look up Elron train times, fares and connections between Estonian (and cross-border Latvian) stations, see live delays and positions of running trains on a map, and check Ühiskaart farecard balances, remembering the user's home station and cards. Use when someone asks about

SKILL.md

elron.SKILL.md
name: elron
description: Look up Elron train times, fares and connections between Estonian (and cross-border Latvian) stations, see live delays and positions of running trains on a map, and check Ühiskaart farecard balances, remembering the user's home station and cards. Use when someone asks about trains in Estonia, Elron departures, the next or last train to or from a station, whether a train is late or where it is, which trains will pass through a station, ticket prices, or the balance on their Elron or Ühiskaart card.
metadata:
  source: hand-maintained by Joe Bell; derived from the public Ridango API behind elron.ee and elron.ee's live map feed
  reviewed: "2026-10-03 against api.ridango.com and elron.ee/map_data.json"
  upstream: "https://github.com/joe-bell/skills/tree/main/skills/elron"
  version: "2026-10-02.5"

Elron

Elron runs Estonia's passenger trains. Timetables, fares and farecard balances come from the public Ridango API at `api.ridango.com`; live running data comes from the feed behind the live map on `elron.ee`. Neither needs a login.

Use the bundled script rather than calling either source by hand. It resolves stop names, sends requests in the shape the API expects, remembers the user's settings and prints compact results. It needs Python 3.9+ and nothing else.

python3 scripts/elron.py stops [QUERY]
python3 scripts/elron.py trips [FROM] TO [--date YYYY-MM-DD] [--all] [--connections]
python3 scripts/elron.py live [QUERY] [--map [PATH]] [--tiles] [--watch [SECONDS]]
python3 scripts/elron.py passing STATION
python3 scripts/elron.py balance [CARD_NUMBER]
python3 scripts/elron.py config [--home STOP] [--add-card N] [--remove-card N] [--clear]

Run it from this skill's directory, or pass the script's full path.

1. Home station and farecards

The skill ships with no station and no card. Learn them from the user, once.

  • **Home station.** When the user asks about a train without saying where from

("when's the next train to Tartu?"), run `trips TO`. If it reports that no home station is saved, ask which station they usually travel from, save it with `config --home STOP`, then answer. From then on `trips TO` starts there. If they name a different origin, pass both stops and leave the saved one alone unless they ask.

  • **Farecards.** When the user asks for their balance without giving a number,

run `balance`. If no card is saved, ask for the number, save it with `config --add-card N`, then answer. `balance` with no argument checks every saved card. Use `--remove-card` when they ask you to forget one; it takes the full number or the last four characters, which is all the output shows.

  • `config` with no flags shows what's saved and where. Settings live in

`~/.config/elron/config.json` (or `$ELRON_CONFIG`), readable only by the user. Where the filesystem doesn't persist between conversations, as in a hosted chat's sandbox, keep the home station in the host's own memory as well and pass it explicitly.

**Never write the user's station or card numbers into this skill's files.** Installs are copied folders: anything stored here is lost on the next update and leaks if the install is shared. Don't repeat a card number back beyond what the answer needs.

2. Answering questions

Answer in a sentence or two, leading with what was asked. For "when's the next train to Tartu?":

> The next one leaves at 16:21 and gets in at 18:20. After that: 17:37 and > 19:02.

  • Add a train's live status when it's already on its way ("it's 3 minutes

late"). Add the fare, bikes or express only when the user asks about them.

  • Relay a notice when the script shows one. It already leaves out notices that

name only stations off the user's stretch, such as a change of train further down the line.

  • After saving a station or card, say so in a few words. Give the file's path

only if asked, and don't describe the script, its sources or its output.

  • **Stop names** match case- and accent-insensitively ("polva" finds "Põlva"),

and a unique partial name works too; "Riga" finds Riia. An ambiguous or unknown name lists the candidates; pick one or ask. `stops QUERY` helps when unsure what a station is called.

  • **Today vs another day.** With no `--date`, the script uses today in

Europe/Tallinn and hides trains that have already left, saying how many it hid. `--all` shows the whole day; `--date` picks another (convert "tomorrow" or "Saturday" to a date first, in Estonian time).

  • **"Next train" or "last train":** run `trips` and read the first or last row.

Rows are trains the user can still catch, allowing for a late train's delay.

  • **What a row shows:** departure, arrival and journey time, then tags: the

single-ticket fare in euros, `bikes ok` when bikes are allowed, `express`, Elron's notices, and `live:` for a train that is on its way right now.

  • **Changes of train.** `trips` lists direct trains first. When none are left

it adds journeys with one change automatically; `--connections` adds them anyway. Each says where and when to change.

  • **Is my train late? Where is it?** For today, `trips` lists trains that have

left but not yet reached the user's stop under `Already on the way`, with their live status, allowing for delays. `live` lists every running train with its delay, last stop, speed and coordinates; filter it with a line or stop name (`live Tartu`).

  • **What goes through a station?** Only when the user asks what will pass

through or just went through, stopping or not ("what's the next train through Kehra?", "what was that train that didn't stop?"), run `passing STATION`. "Next train" questions stay with `trips`, which lists trains that stop. `passing` places each running train on its line from its live position and speed, and says whether it stops there.

All times are Estonian local time; say so only if the user may be elsewhere. If no journey turns up even with one change, say there's no Elron train for t

Read more
Ships withjoe-bell-skills

Skills for me (and you)

Get the whole plugin
Stats
213
Stars
2
Forks
Active
Maintenance
Markdown
Language
MIT
License
4d ago
Last commit
1mo ago
Created
5h ago
Added

Repo: joe-bell/skills

Other skills on joe-bell-skills.