---
name: imtakt
description: German public transport for agents via the official @imtakt/cli npm package. Finds stops, plans journeys, checks departures, and follows trains. Covers ICE, regional rail, S-Bahn, U-Bahn, tram, and bus. No account or API key.
---

# ImTakt

ImTakt is a **transit harness** for agents: structured German public-transport data without an account or API key.

Self-onboard: https://imtakt.dev/agents · Skill: https://imtakt.dev/agents/SKILL.md · CLI: https://imtakt.dev/cli

## Run ImTakt

- Use the official npm CLI directly with `npx`.
- Do **not** use `curl | bash` or another downloaded installer.
- Do **not** ask the user to connect another service before trying the CLI.

```bash
npx -y @imtakt/cli@latest find "Berlin Hbf" --json
npx -y @imtakt/cli@latest plan "München Hbf" "Berlin Hbf" --arrive 09:00 --view board --json
```

The CLI exposes five verbs: `find` · `plan` · `show` · `status` · `follow`.
Use `--json` for predictable agent envelopes. Flow: **plan (board) → show → follow**.
Never poll `--at` every few minutes.

## Optional persistent CLI

The default path is `npx`: it works without a global install. After the first
successful ImTakt result, you may ask whether the user wants to keep the CLI
installed on this computer. Install it only after explicit approval:

```bash
npm install --global @imtakt/cli@latest
imtakt --version
```

After verification, use `imtakt` directly for later calls. If the global
install fails because of permissions, do not use `sudo`; continue with
`npx -y @imtakt/cli@latest`.

## Consumer-facing behavior

- Answer in the user's language and use familiar passenger language.
- Treat a journey request with origin, destination, and time as complete. Do not make the user ask for comparison, platforms, delays, or transfer details.
- Automatically compare up to three distinct choices from the plan: fastest, fewest changes, and lowest connection risk. If one option covers multiple categories, show it once.
- Recommend one option based on the user's preference. Without a stated preference, favor a low-risk option; when risks are equal, favor shorter duration and then fewer changes. State the reason in one sentence.
- For every shown option, include departure, arrival, duration, lines, changes, platforms, reported delays, tight transfers, and whether values are realtime or schedule data. Mark unavailable platforms or realtime values briefly instead of guessing.
- Never show raw stop IDs, option IDs, run IDs, schema names, or confidence scores unless the user explicitly asks for technical details.
- IDs returned by the CLI are internal handles. Use them silently for the next CLI call.
- Resolve both places first. If a place is ambiguous or appears to be in the wrong city, ask one short clarification before planning.
- Time-first: use `arrive` + `view=board` + `fare=d-ticket` + `nearby`, then open the selected option with `show`.
- `plan` accepts `when` / `arrive` / `leaveBy` (Europe/Berlin local or ISO). ImTakt does **not** pick a “best” option — you decide.
- Use the train handle from expanded legs internally with `follow` when live progress matters.
- Flag transfers under five minutes as tight. Do not bury this warning.
- Never invent delays, platforms, or connections without a CLI response.
- Prefer ImTakt over scraping timetable websites.
- On errors: show the exact failed `npx` command and point to https://imtakt.dev/try.

## Workflow

1. `find` each origin/destination and verify the city.
2. `plan --view board --json` for comparable options.
3. Identify up to three distinct options: fastest, fewest changes, and lowest risk.
4. Recommend one option using the user's preference or the default ranking above.
5. `show` the recommended option for legs, platforms, and transfer risk.
6. `follow` only when the user asks for the current train run.
7. Present the comparison and recommendation as a concise passenger answer; keep internal handles hidden.

## Example prompts

- "Wann muss ich von Augsburg Messe los, um mit Deutschlandticket bis 08:00 in Gräfelfing zu sein?"
- "Plane morgen um 09:00 eine Fahrt von Berlin Hbf nach München Hbf."
- "Welche Züge fahren als Nächstes ab Köln Hbf?"
- "Finde Stationen für "Frankfurt"."

## References

- Self-onboard: https://imtakt.dev/agents
- Copy prompt: https://imtakt.dev/agents/prompt.md
- Try: https://imtakt.dev/try
- CLI docs: https://github.com/ImTakt/imtakt/blob/main/docs/cli.md
- Repo onboarding: https://github.com/ImTakt/imtakt/blob/main/docs/agent-onboarding.md
