Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add borski/travel-hacking-toolkit --skill deutsche-bahngit clone --depth 1 https://github.com/borski/travel-hacking-toolkitWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/borski/travel-hacking-toolkit/deutsche-bahn)<a href="https://agentmods.dev/skills/borski/travel-hacking-toolkit/deutsche-bahn"><img src="https://agentmods.dev/badge/skills/borski/travel-hacking-toolkit/deutsche-bahn/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/borski/travel-hacking-toolkit/deutsche-bahn"><img src="https://agentmods.dev/badge/skills/borski/travel-hacking-toolkit/deutsche-bahn.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00054 | $0.01729 |
| Opus 5 | $0.00027 | $0.00864 |
| Sonnet 5 | $0.00011 | $0.00346 |
| Haiku 4.5 | $0.00005 | $0.00173 |
Grade A, and why
deutsche-bahn scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 146 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Deutsche Bahn Skill
Search German train schedules and plan journeys using the db-vendo-client library (open-source client for bahn.de APIs).
No API key required. No Docker. Just Node.js.
Source: db-vendo-client — wraps bahn.de's internal APIs.
Setup
cd skills/deutsche-bahn && npm install
Commands
Station Search
Find station IDs by name:
node skills/deutsche-bahn/scripts/search_trains.mjs stations "Frankfurt Flughafen"
Journey Planning
Search train routes between two stations (by ID or name):
# By station ID
node skills/deutsche-bahn/scripts/search_trains.mjs journeys 8070003 8000376 --date 2026-05-05 --time 10:00 --results 5
# By station name (auto-resolves to ID)
node skills/deutsche-bahn/scripts/search_trains.mjs journeys "Frankfurt Airport" "Germersheim" --date 2026-05-05
node skills/deutsche-bahn/scripts/search_trains.mjs journeys "Amsterdam Centraal" "Mannheim Hbf" --date 2026-05-15 --time 09:00
node skills/deutsche-bahn/scripts/search_trains.mjs journeys "Paris Est" "Mannheim" --date 2026-05-05
Departure Board
Check upcoming departures from any station:
node skills/deutsche-bahn/scripts/search_trains.mjs departures "Mannheim Hbf" --results 10
node skills/deutsche-bahn/scripts/search_trains.mjs departures 8070003 --date 2026-05-05 --time 14:00
Key Station IDs
German Airports
| Airport | Station ID | Station Name | Notes |
|---|---|---|---|
| Frankfurt (FRA) | 8070003 |
Frankfurt(M) Flughafen Fernbf | Long-distance (ICE/TGV) |
| Frankfurt (FRA) | 8070004 |
Frankfurt(M) Flughafen Regionalbf | Regional trains |
| Munich (MUC) | 8004154 |
München Flughafen Terminal | S-Bahn to München Hbf |
| Düsseldorf (DUS) | 8001585 |
Düsseldorf Flughafen | S-Bahn + RE |
| Cologne/Bonn (CGN) | 8003330 |
Köln/Bonn Flughafen | ICE station |
| Berlin (BER) | 8089021 |
Flughafen BER Terminal 1-2 | FEX + RE + S-Bahn |
| Stuttgart (STR) | 8005773 |
Flughafen/Messe | S-Bahn to Stuttgart Hbf |
| Hamburg (HAM) | 8002549 |
Hamburg Airport | S-Bahn |
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 146 lines · 54 tokens per session scan A 0f9ec9128a8d
deutsche-bahn is a skill published in the GitHub repository borski/travel-hacking-toolkit (654 stars, last pushed yesterday), licensed MIT. It adds 54 tokens to every session and 1,729 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
docs-builder
Reorg a docs corpus, split an oversized doc, search it, keep pages current, index them.
remember
Consolidate stashes + friction into project memory.
live-canvas
Conduct design interviews, generate UI variations, and collect live click-to-annotate feedback that streams into the session so edits land without leaving the browser. Use when the user wants rapid iterative UI refinement, not just batched feedback.
branch-review
Review a branch before merge [target] [level].
root-cause
Use when any test fails, bug appears, or behaviour surprises you, before proposing a fix - find the cause and prove it, by reading real evidence, tracing bad values back to their origin, comparing against a working case, and testing one hypothesis at a time.
ship
Mechanical pre-deploy gate — tests, build, tree state.