Skills idfm-journey
Query Île-de-France Mobilités (IDFM) PRIM/Navitia for Paris + suburbs public transport (Île-de-France) — place resolution, journey planning, and disruptions/incident checks. Use when asked to find routes in Île-de-France (e.g., "itinéraire de X à Y"), resolve station/stop ids, or check RER/metro line disruptions, and you have an IDFM PRIM API key.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/anthonymq/idfm-journey-skill" ~/.claude/skills/openclaw-skills-idfm-journey && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/anthonymq/idfm-journey-skill" ~/.openclaw/skills/openclaw-skills-idfm-journey && rm -rf "$T"
manifest:
skills/anthonymq/idfm-journey-skill/SKILL.mdsource content
IDFM Journey (PRIM/Navitia)
Use the bundled script to call PRIM/Navitia endpoints without extra dependencies.
Metadata
- Author: anthonymq
- Version: 0.1.6
Trigger phrases (examples)
- "Itinéraire de {origine} à {destination}"
- "Route from {origin} to {destination} in Paris / Île-de-France"
- "Check RER/metro disruptions" / "incidents on line {line}"
Prereqs
- Set
in the environment before running.IDFM_PRIM_API_KEY
Generating an API Key
To obtain an IDFM PRIM API key:
- Visit https://prim.iledefrance-mobilites.fr/
- Create an account or log in
- Navigate to "Espace développeur" or the developer portal
- Subscribe to the "Navitia" API
- Your API key will be generated and displayed in your dashboard
- Export it in your environment:
export IDFM_PRIM_API_KEY="your-key-here"
Quick commands
Run from anywhere (path is inside the skill folder):
-
Resolve places (best match + list):
python3 scripts/idfm.py places "Ivry-sur-Seine" --count 5
-
Journeys (free-text from/to; resolves place ids first):
python3 scripts/idfm.py journeys --from "Ivry-sur-Seine" --to "Boulainvilliers" --count 3
-
Incidents / disruptions (by line id or filter):
python3 scripts/idfm.py incidents --line-id line:IDFM:C01727python3 scripts/idfm.py incidents --filter 'disruption.status=active'
Add
--json to print raw API output.
Notes
- If place resolution is ambiguous, increase
and choose the right--count
id.stop_area - For API details and examples, read:
.references/idfm-prim.md