Jaunt
Guides

Claude Code Plugin

Install Jaunt's Claude Code plugin for workspace-aware build skills, freshness context, and generated-file approval guards.

Version 1.2.6 supports version-2 TypeScript targets in the Claude Code plugin. It packages the same CLI-backed Python and TypeScript authoring loop as the Codex plugin, while keeping Claude's approval-style PreToolUse decision and first-build reviewer agent.

Install

uvx jaunt install-claude-plugin
# from this clone:
uv run jaunt install-claude-plugin --local --root .

The direct GitHub flow is:

claude plugin marketplace add creatorrr/jaunt
claude plugin install jaunt@jaunt-plugins

On a rerun, the installer refreshes the marketplace and calls claude plugin update jaunt@jaunt-plugins for an existing installation.

Start a new Claude Code session after installation. For one-session development, use claude --plugin-dir ./jaunt-claude-plugin.

The bundled command hooks use Bash when it is available. Their launchers always return success to Claude Code, so a host without Bash skips the hooks instead of reporting a failed lifecycle event.

Workspace routing

One root jaunt.toml can cover several packages and mixed flat/src layouts. source_roots and test_roots accept literal paths and globs. Each module uses its longest containing root and nearest owning pyproject.toml. There is no one-config-per-package rule.

Preview consolidation of older nested configs with:

uv run jaunt migrate --merge-projects

Add --apply only after the no-model plan reports no route, digest, fingerprint, or artifact change.

Skills and reviewer

  • /jaunt:working-with-jaunt: spec rules, workspace routing, and freshness.
  • /jaunt:build: preview likely model calls, build, report actual cost, and run the Python or TypeScript native gates.
  • /jaunt:doctor: authentication, Node/npm/worker/compiler readiness, workspace health, current stale or unbuilt state, diagnostics, orphans, and duplicate Claude guards. It ignores nested Claude and Codex managed worktrees and reports the running Jaunt paths, editable source, and nearest lock requirement.
  • /jaunt:convert: explicit-only Python or TypeScript conversion, with characterization tests before the first model call.
  • first-build-reviewer: read-only contract-silence review after a module's first successful build.

The plugin does not use fixed dollar estimates. It distinguishes likely model work before a build and reports the actual cost afterward.

For TypeScript, it also reads per-module candidate_outcomes. Final conformance repair happens inside the advertised attempt budget, so the plugin does not recommend an unchanged paid rerun after that budget is exhausted. Deterministic worker heap failures point to [target.ts].worker_heap_mb and are not replayed.

If status reports semantic-environment drift, the working skill runs the model-free migration preview before recommending a build. It applies only a plan made entirely of free-recompose actions with no requires_rebuild modules, then runs the no-build battery check and Jaunt freshness gate.

After TypeScript test generation, the workflow reads runner.batteries for per-battery attempts, retry reasons, and terminal rejections. A failed combined overlay may still commit the compatible subset listed by runner.partial_landing; the plugin preserves those generated files.

Freshness reasons

reasonnext action
structuralimplementation-model rebuild
prosesemantic-gate judgment, then refreeze or rebuild
fingerprint or re-stampdeterministic re-stamp
stubdeterministic .pyi re-emission when implementation inputs are unchanged

Hooks

The shared SessionStart script reads payload cwd. When a parent jaunt.toml owns the session, it reports only that active workspace and does not recurse into nested examples. Otherwise it scans below the session directory without crossing the active Git worktree. Nested Git repositories and .claude/worktrees or .codex/worktrees checkouts are excluded. Each selected workspace contributes a bounded freshness/orphan summary, including TypeScript unbuilt, invalid, and diagnostic counts. Because jaunt status imports discovered spec modules, enable SessionStart only for workspaces whose Python code you trust.

The Claude guard resolves the nearest workspace before calling jaunt guard, so custom generated directories use the correct config. It also asks for approval before editing an existing provenance-headed generated .pyi and points to the matching .py spec.

Both hooks fail open on malformed input, missing configuration, unavailable tools, or timeouts. Their launchers force a success exit after invoking the scripts, so optional environment failures do not become Claude Code hook errors. /jaunt:doctor flags hand-written guards in Claude configuration once the plugin hook is enabled.

There is no MCP server; Jaunt's JSON CLI is the machine interface.

Plugin commands prefer a compatible installed jaunt, use uv run --no-sync jaunt in a uv project, and fall back to uvx jaunt for a JavaScript-only workspace.

Next: PyPI Skills.

On this page