Unofficial TUI client for Switzerland's public transports timetables, inspired by the SBB/CFF/FFS app. Timetable data is provided by the search.ch timetable API (Swisscom Directories AG).
--nerdfont=false)brew install necrom4/tap/sbb-tui
go install github.com/necrom4/sbb-tui@latest
yay -S sbb-tui # or equivalent AUR package manager
sbb-tui is available in nixpkgs-unstable or can be temporarily installed with:
nix-shell -p sbb-tui
[!NOTE] Or download your preferred executable from Releases directly.
git clone https://github.com/necrom4/sbb-tui.git
cd sbb-tui
go build
[!WARNING] Due to the first release being v1.0.0,
v1.X.Xis considered experimental/unstable. What that mostly means is that breaking changes won't trigger a MAJOR version bump, but theCHANGELOG.mdclearly documents them.
sbb-tuitab).Enter to view the results (navigate with arrows).Add your optional config at $HOME/.config/sbb-tui/config.yaml
[!TIP] OS default config paths are also supported (such as
~/Library/Application Support/sbb-tui/config.yamlin macOS)
# default configuration
ui:
animations: true
nerdfont: true
theme:
text: "#FFFFFF"
textMuted: "#888888"
error: "#D82E20"
warning: "#D82E20"
borderFocused: "#D82E20"
borderUnfocused: "#484848"
badgeKeyFg: "#FFFFFF"
badgeKeyBg: "#484848"
badgeVehicleFg: "#FFFFFF"
badgeVehicleBg: "#2E3279"
badgeModelFg: "#FFFFFF"
badgeModelBg: "#7F7F7F"
badgeCompanyFg: "#484848"
badgeCompanyBg: "#FFFFFF"
logo: "#FFFFFF"
More themes can be found at
docs/themes.md
# sbb-tui --help
sbb-tui - Swiss SBB/CFF/FFS timetable app for the terminal
Usage:
sbb-tui [flags]
Flags:
--from string Pre-fill departure station
--to string Pre-fill arrival station
--date string Pre-fill date [DD.MM.YYYY]
--time string Pre-fill time [HH:MM]
--arrival Set date/time as arrival instead of departure time
--animations Play UI animations (default true)
--nerdfont Use Nerd Font icons (default true)
-v, --version Print version and exit
I travel 4 hours a day and often work from the train, passing through remote regions of Switzerland where loading the SBB website alone can take up to an entire minute before I've even had a chance to search for my next connection (back when I started building this, my cellular data plan provided me with 500kb/s at most in the city). On top of that, I love open source and disliked handing data over to corporations unnecessarily, so I loved the idea of a faster solution that only fetched the necessary data, the one I requested. One day, while exploring the idea of building my first TUI, I stumbled upon the incredible Swiss public transport API and I knew I'd found the perfect occasion to start!
SBB-TUI originally ran on transport.opendata.ch and has since moved to the search.ch timetable API, which provides more data.
SBB-TUI is in constant improvement thanks to the work of many volunteers passionate about this little tool. This project is a very good playground for those who want to learn to collaborate in open source projects and improve the way they architecture their code and commit it. Whether you're a novice or a professional, don't be scared to hop on the train!
There's plenty of Issues of different complexity levels, many tagged with help wanted or good first issue.
So if you're up for the challenge, read CONTRIBUTING.md, create your PR, and start coding!
$ claude mcp add sbb-tui \
-- python -m otcore.mcp_server <graph>