Show HN: Transit – subway maps of your data Developer Israel Vicars released Transit, a local toolkit of Agent Skills that renders requests, GitHub Actions CI runs, and coding-agent sessions as animated subway-style maps, with lines for the main unit of work and stations for individual events. Transit accepts OpenTelemetry/OTLP, Datadog, PostHog, AWS X-Ray, and Grafana Tempo trace data, marks slow work as DELAY and failures as SERVICE ALERT, and outputs a self-contained HTML file plus a one-line verdict such as "email failed after 671 ms: SMTP timeout · SERVICE ALERT · 23 hops." The skills install across Claude Code, Codex, and Cursor with a single npx command, and by default agent-transit retains only tool names, timing, status, target basenames, and agent source, keeping prompts, code, commands, output, and arguments out of the map. Subway maps of your data. Transit is a local toolkit of Agent Skills that turns requests, CI runs, and coding-agent sessions into animated transit maps. Lines show the main unit of work, stations show individual events, DELAY marks slow work, and SERVICE ALERT marks an error or other failure. Drop a trace in Slack. Ask for a map to share and you get one self-contained HTML file named after what broke, like checkout-email-service-alert.html , plus a one-line verdict computed from the data and ready to paste: email failed after 671 ms: SMTP timeout · SERVICE ALERT · 23 hops . Drag the file into a channel. In Slack desktop and iOS it opens as the interactive page, paused on the failing hop with its details showing. Try the sample page https://htmlpreview.github.io/?https://github.com/israelvicars/transit/blob/main/docs/samples/checkout-email-service-alert.html the same file you'd drop in Slack . GIF and MP4 are teasers for a feed post or a README. One line to install in all of your agents npx skills add israelvicars/transit -g -a claude-code -a codex -a cursor or install skills separately install . Type these in Claude Code, Codex or Cursor once the skills are installed. request-transit - "Animate this OTLP trace as a transit map: ./trace.json " - "Draw Datadog trace 4bf92f… as a transit map and tell me where the delay is" - "Make a GIF of trace abc123 from Tempo for the incident doc" - "Make a page I can drop in incidents for this trace: ./trace.json " ci-transit - "Show my last failed GitHub Actions run as a transit map" - "Render run 1234567890 in owner/repo as an MP4" - "Share my last failed run in Slack" agent-transit - "Make an MP4 of my last Claude Code session" - "Draw my latest Codex session as a transit map. Which tool calls were slow?" A public transit map for your requests. skill README https://github.com/israelvicars/transit/blob/main/skills/request-transit/README.md The animation at the top of this page shows request-transit. Services are lines, spans are stations, and slow or failed calls are DELAY or SERVICE ALERT markers. It accepts OpenTelemetry/OTLP, Datadog, PostHog, AWS X-Ray, and Grafana Tempo data. Example commands are npm run build , npm run render , and npm run verify . Its condensed source guide: | Source | Input and fetch path | |---|---| | OpenTelemetry OTLP JSON | Local file or exporter/collector output | | Datadog | MCP result or the local fetch.mjs datadog-api command | | PostHog Distributed Tracing | MCP result or the local fetch.mjs posthog-api command | | AWS X-Ray | AWS CLI fetch.mjs xray or an AWS MCP result | | Grafana Tempo | fetch.mjs tempo or a Grafana/Tempo MCP result | The optional contracts layer reads local service code only after you ask for it, indexes expected request and response shapes, and shows its evidence in the panel. Use node skills/request-transit/scripts/transit.mjs index , then build with --contracts . Useful flags include --slow-ms , --ms-per-sec , --target-seconds , --trace-id , --redact , and --no-download . A transit map for your CI runs. GitHub Actions skill README https://github.com/israelvicars/transit/blob/main/skills/ci-transit/README.md Jobs are lines, steps are stations, and failed, cancelled, or slow steps become SERVICE ALERT or DELAY markers. It reads a saved GitHub Actions run or fetches one read-only through the local gh CLI. Example commands are npm run build:ci , npm run render:ci , and npm run verify:ci . A transit map for your coding-agent sessions. Claude Code, Codex, Cursor skill README https://github.com/israelvicars/transit/blob/main/skills/agent-transit/README.md Tool families are lines, tool calls are stations, and errors, denials, or long calls become SERVICE ALERT or DELAY markers. By default it keeps only tool names, timing, status, target basenames, and the agent source; prompts, code, commands, output, and arguments stay out of the map. Example commands are npm run build:agent , npm run render:agent , and npm run verify:agent . | Output | What you get | Ask for it | |---|---|---| | Interactive page | The thing to share. One self-contained HTML file to drop in Slack, a PR or an incident doc. Works offline and makes no network requests. Play, scrub, click a station for details, scroll the list. Built with --share , it is named after what failed and opens paused on the first SERVICE ALERT under a one-line verdict. | "…as a transit map" default , "…to share in Slack" | | GIF | A looping teaser for docs, PRs and feeds. Share the HTML file when people need the details | "…as a GIF" | | MP4 | A teaser video. Deterministic and frame-exact: the same input gives byte-identical video every time | "…as an MP4" or "render a video" | GIF and MP4 also write a contact.png contact sheet. Video needs a local Chromium and ffmpeg; first-run setup reuses what you have and tells you before it downloads anything. Click a station, train or line in the interactive page, or pause and press N , to open the side panel for that hop. It shows the stops the request took to get there, the client and server timing start, duration and self time , the error message under a SERVICE ALERT when the hop failed, the span's attributes grouped by type, and its child spans. Sensitive-looking attribute keys are redacted when the page is built. If you built with --contracts , the panel also shows the expected request and response shapes. The panel is part of the interactive page: it runs locally and makes no network requests. Install all three skills for Claude Code, Codex, and Cursor: npx skills add israelvicars/transit -g -a claude-code -a codex -a cursor Install one skill with --skill