Command line

The timetable in your terminal.

The same offline journey planner that powers the apps, as a single static binary for Linux. Download the Swiss timetable once, then search it from any shell — on a laptop without signal, over SSH on a server, or wired into your own scripts.

Install

Download the tarball from the downloads section, unpack it, and put the binary somewhere on your PATH. It is self-contained — no runtime, no packages, no root required.

shell
$ tar -xzf spickme-cli-*-linux-x86_64.tar.gz
$ install -D spickme-cli-*/spickme ~/.local/bin/spickme
$ spickme --help

To verify the download, compare it against the release’s SHA256SUMS:

shell
$ sha256sum --ignore-missing -c SHA256SUMS
spickme-cli-0.2.3-linux-x86_64.tar.gz: OK

Fetch the current Swiss timetable (a one-time download of a few hundred megabytes, stored under ~/.local/share/spickme/), then plan a journey:

shell
$ spickme download --all
$ spickme query --from "Zürich HB" --to "Bern"
Journey 1 │ 17:04 → 18:02 │ 58min │ direct
-- 17:04  Zürich HB (Pl. 32)  IC 8 → Brig
-- 18:02  Bern (Pl. 7)

Stop names match the official Swiss naming — "Zürich HB", "Bern, Zytglogge" — and a close-enough name resolves to its best match. From here, every search runs entirely on your machine: no server, no account, no signal needed.

Examples

Leave at a specific time — local Swiss time, 24-hour clock:

shell
$ spickme query --from "Basel SBB" --to "Lugano" --at 2026-08-15T06:30

See every stop along the way, for picking the quiet end of the platform or knowing where you are in the tunnel:

shell
$ spickme query --from "Luzern" --to "Engelberg" --show-intermediate

Check ticket coverage — whether automatic ticketing, the GA or the Half Fare travelcard applies to each leg:

shell
$ spickme query --from "Genève" --to "Zermatt" --show-coverage

More alternatives, fewer changes — widen the answer or cap the transfers:

shell
$ spickme query --from "St. Gallen" --to "Sion" --limit 12 --max-transfers 2

The full-screen browser — an interactive terminal UI with the same searches, for when you are staying a while:

shell
$ spickme tui

Auf Deutsch — help texts and results in Swiss Standard German:

shell
$ spickme --language de-CH query --from "Chur" --to "Arosa"

Keep the timetable fresh — re-run the download whenever you like; files already up to date are skipped:

shell
$ spickme download --year 2026

Command reference

CommandWhat it does
spickme queryPlan journeys between two stops. --from and --to are required; --at, --limit, --max-transfers, --show-intermediate and --show-coverage refine the answer.
spickme tuiThe interactive terminal UI.
spickme downloadFetch timetable data: --all for everything on offer, --year for a specific year, --url for a direct file.
spickme diffCompare two timetable files — what changed between releases.
spickme helpFull help for any command, e.g. spickme help query.

Global flag: --language en or --language de-CH.

Where your data lives

Everything stays on your machine. Timetables are plain files under ~/.local/share/spickme/ (or $XDG_DATA_HOME/spickme/); searches run locally against them, and the CLI makes no network requests except when you run spickme download. Deleting that directory removes everything.