Navigates the lapvisor telemetry CLI for race data analysis.

Install

mkdir -p .claude/skills/lapvisor-cli && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18158" && unzip -o skill.zip -d .claude/skills/lapvisor-cli && rm skill.zip

Installs to .claude/skills/lapvisor-cli

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Use this skill when the user asks how to use the lapvisor CLI — what each subcommand does (laps, session, lap, ideal, compare, improve, track), which one to pick for goals like "where am I losing time?", "compare two laps", or "is my best lap really my best?", what flags and JSON schemas each command emits, and how to drive lapvisor from a script or AI agent.
361 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Summarize a session with lap count, best lap, and mean lap
  • Extract a full session bundle including raw samples, lap boundaries, and sector splits
  • Drill into specific lap data with telemetry, distance, and aggregates
  • Compose an "ultimate lap" from best mini-sectors across a session
  • Compare two laps with delta-t curves and per-mini-sector deltas
  • Generate a session-level report identifying where to find time

How it works

The skill maps user goals to specific `lapvisor` CLI subcommands, executes the command with the provided file, and returns the analysis in JSON or human-readable format.

Inputs & outputs

You give it
A .vbo race-data file and a subcommand (e.g., `laps`, `improve`)
You get back
JSON output with race data analysis or a human-readable summary

When to use lapvisor-cli

  • Compare race laps
  • Improve lap times
  • Analyze telemetry data

About this skill

lapvisor CLI guide

lapvisor is a TypeScript SDK + CLI for analyzing race-data files (laps, GPS, sectors, telemetry) for hobby karting and amateur motorsport. The CLI is a thin shell over the SDK — its JSON output is the contract; the human-readable (TTY) view is patch-level convenience and not stable across versions.

This skill maps user goals to the right subcommand, gives a compact reference for each, and routes to the wire-format docs when the user wants depth.

Focus

User passed: $ARGUMENTS

If $ARGUMENTS names a subcommand below (e.g. compare, improve), lead with that command's section and skip the goal table. Otherwise present the full goal→command map.

Pick the right command for the goal

If the user is trying to…Run
Summarize a session — count, best lap, mean lap, venuelapvisor laps <file>
Get the entire session as one JSON bundle (samples + laps + sectors + gates)lapvisor session <file>
Drill into one specific lap (rich telemetry, distance, sectors, peaks)lapvisor lap <file> <N>
Answer "is my best lap really my best?" / build the ultimate laplapvisor ideal <file>
Compare two specific laps (delta-t curve, per-mini-sector deltas, optional per-corner)lapvisor compare <file> <refIdx> <candIdx>
Answer "where am I losing time and what should I do differently?"the headlinelapvisor improve <file>
Author a kart-track/v1 GeoJSON gate file from a structured descriptionlapvisor track create -i <intent.json> -o <track.json>
Edit a track interactively in a browserlapvisor track edit <track.json>

When the goal is generic ("analyze this session", "find time"), default to lapvisor improve — it is the highest-leverage command.

Per-command reference

All commands take .vbo (Racelogic VBOX text) inputs. Other formats (.gpx, .fit, .tcx, .lap-csv) are reserved but not yet implemented.

lapvisor laps

lapvisor laps <file> [--json]

Compact summary: lapCount, bestMs, meanMs, source, format, meta. Schema: an unversioned LapsSummary shape (no schema field). Use lapvisor session when you need a stable wire format.

lapvisor session

lapvisor session <file> [--track <track.json>]

Full bundle with raw samples, lap boundaries, sector splits, per-lap summaries, session summary, gates. Always emits JSON (no human render). Schema: lapvisor-session/v2 — see docs/formats/lapvisor-session-v2.md.

lapvisor lap

lapvisor lap <file> <index> [--track <track.json>] [--json]

One lap with rich per-sample telemetry on a distance-along-track axis, sector boundaries, and per-lap aggregates (top/min speed, peak Gs). Schema: lapvisor-lap/v1 — see docs/formats/lapvisor-lap-v1.md.

lapvisor ideal

lapvisor ideal <file> [--track <track.json>] [--mini-sectors N] [--json]

Best-of-each-mini-sector "ultimate lap" composed across the session, plus the gap to your actual best lap. Default 100 mini-sectors. Schema: lapvisor-session-improvement/v1 (without topOpportunities). See docs/formats/lapvisor-session-improvement-v1.md.

lapvisor compare

lapvisor compare <file> <refIdx> <candIdx> [--track <track.json>] [--mini-sectors N] [--corners] [--json]

Pairwise lap comparison: continuous delta-t curve + per-mini-sector deltas. Pass --corners to additionally include per-corner deltas (auto-detected from speed minima on the reference lap). Schema: lapvisor-lap-compare/v1 — see docs/formats/lapvisor-lap-compare-v1.md and docs/analysis/corners.md for the corner-detection heuristic.

lapvisor improve — headline

lapvisor improve <file> [--track <track.json>] [--mini-sectors N] [--top N] [--json]

Session-level "where to find time" report. Detects corners on the best lap, finds which lap drove each corner fastest, ranks corners by time-loss, and attaches topOpportunities[] with apex/exit deltas and short plain-text observations (e.g. "carry +3.0 km/h through apex"). --top caps the number of opportunities returned (default 5). Schema: lapvisor-session-improvement/v1 (with topOpportunities).

lapvisor track create

lapvisor track create [-i <intent.json>] [-o <track.json>] [--no-pretty]

Build a kart-track/v1 GeoJSON gate file from a structured intent (center + bearing + width per gate). Reads stdin / writes stdout when flags are omitted. Validated by zod (kartTrackIntentSchema). Schema: kart-track/v1 — see docs/formats/kart-track-v1.md.

lapvisor track edit

lapvisor track edit <track.json> [--port <n>] [--no-open] [--readOnly]

Opens a local HTTP browser editor for a kart-track/v1 file. Default port 5174; set 0 for a free port. Use --readOnly to view without saving.

Output mode rules

  • JSON when --json is passed or when stdout is not a TTY (piped, redirected, sub-shell, agent invocation). Always machine-readable, with a stable schema field on every bundle (except laps).
  • Human-readable when stdout is a TTY and --json is not set. Coloured via picocolors. Not a stable contract — wording and formatting can change between minor versions.
  • Exit 0 on success, exit 1 on any error (file missing, parse failure, lap index out of range, etc.). Errors go to stderr.

So when driving lapvisor from a script or agent: just pipe stdout — you don't need --json because non-TTY already triggers JSON output.

Driving from an agent

# 1. Quick lap summary
lapvisor laps session.vbo | jq '.bestMs'

# 2. Full session bundle for a UI / dashboard
lapvisor session session.vbo --track track.json > session.json

# 3. Headline "where can I find time?" report
lapvisor improve session.vbo | jq '.topOpportunities[]'

The same JSON can be produced from the SDK programmatically — every CLI command has a buildXBundle counterpart in lapvisor/bundles. Useful when embedding lapvisor inside a larger TypeScript app rather than shelling out.

Where to look next

  • CLI overview & flag tables: docs/cli/overview.md
  • Wire-format specs (the JSON contracts):
    • docs/formats/lapvisor-lap-v1.md
    • docs/formats/lapvisor-session-v2.md
    • docs/formats/lapvisor-lap-compare-v1.md
    • docs/formats/lapvisor-session-improvement-v1.md
    • docs/formats/kart-track-v1.md
    • docs/formats/vbo.md (input format)
  • Analysis notes (heuristics, edge cases):
    • docs/analysis/laps.md
    • docs/analysis/corners.md
  • SDK quickstart & API reference: docs/sdk/quickstart.md and the generated docs/api/.
  • Project rules / architecture: CLAUDE.md.
  • Driving from non-Claude AI tools: AGENTS.md.

When the user wants depth on a specific schema, read the matching docs/formats/<schema>.md rather than re-deriving from this skill.

When not to use it

  • When the user is not asking about lapvisor CLI commands
  • When the user is not analyzing race-data files
  • When the input file format is not .vbo

Limitations

  • Only .vbo (Racelogic VBOX text) inputs are supported
  • Human-readable output is not a stable contract and can change between versions
  • The skill focuses on the `lapvisor` CLI and its JSON output contract

How it compares

This skill provides a structured mapping from user goals to specific CLI commands and their JSON output schemas, offering a direct path to desired analysis compared to manually exploring command options.

Compared to similar skills

lapvisor-cli side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
lapvisor-cli (this skill)027dReviewIntermediate
openevidence-core-workflow-b010dReviewAdvanced
daily-digest03moReviewIntermediate
markitdown1771moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

openevidence-core-workflow-b

jeremylongshore

Execute OpenEvidence DeepConsult workflow for comprehensive medical research. Use when implementing deep research synthesis, complex clinical questions, or when physicians need extensive literature review. Trigger with phrases like "openevidence deepconsult", "deep research", "comprehensive evidence", "literature synthesis".

00

daily-digest

yayajjiang

Add today's ML/AI paper and news picks to the PaperTrace daily feed. Use when the user wants to update the daily page with new content.

00

markitdown

K-Dense-AI

Convert various file formats (PDF, Office documents, images, audio, web content, structured data) to Markdown optimized for LLM processing. Use when converting documents to markdown, extracting text from PDFs/Office files, transcribing audio, performing OCR on images, extracting YouTube transcripts, or processing batches of files. Supports 20+ formats including DOCX, XLSX, PPTX, PDF, HTML, EPUB, CSV, JSON, images with OCR, and audio with transcription.

177310

whisper

davila7

OpenAI's general-purpose speech recognition model. Supports 99 languages, transcription, translation to English, and language identification. Six model sizes from tiny (39M params) to large (1550M params). Use for speech-to-text, podcast transcription, or multilingual audio processing. Best for robust, multilingual ASR.

1165

fact-check

leonardomso

Verify technical accuracy of JavaScript concept pages by checking code examples, MDN/ECMAScript compliance, and external resources to prevent misinformation

746

react-expert

reactjs

Use when researching React APIs or concepts for documentation. Use when you need authoritative usage examples, caveats, warnings, or errors for a React feature.

823

Search skills

Search the agent skills registry