diff --git a/CLAUDE.md b/CLAUDE.md index a0cd478f..d84de75f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -261,7 +261,7 @@ When changing a crate's public API (new types, new trait impls, new public metho The `toolpath-cli` shim lives **outside** the workspace (`exclude = ["crates/toolpath-cli"]` in the root `Cargo.toml`). Both `toolpath-cli` and `path-cli` produce a binary literally named `path`, and cargo can't write two bin targets to the same workspace `target/debug/path` — so the shim opts out and gets its own `crates/toolpath-cli/target/` (covered by the `crates/*/target` line in `.gitignore`). Practical consequences: `cargo build --workspace`, `cargo test --workspace`, and `cargo run -p toolpath-cli` from the repo root **do not** include the shim. To touch it, use `--manifest-path crates/toolpath-cli/Cargo.toml`. The release script special-cases the shim in `get_version` and `publish` so the workflow is otherwise unchanged. -Build the site after changes: `cd site && pnpm run build` (should produce 11 pages). +Build the site after changes: `cd site && pnpm run build` (should produce 12 pages). ## Things to know diff --git a/site/_includes/base.njk b/site/_includes/base.njk index db00d536..2287dc5f 100644 --- a/site/_includes/base.njk +++ b/site/_includes/base.njk @@ -70,6 +70,7 @@ RFC Crates CLI + Plugin Visualizer FAQ GitHub diff --git a/site/css/style.css b/site/css/style.css index ee3a75af..532e1770 100644 --- a/site/css/style.css +++ b/site/css/style.css @@ -579,6 +579,29 @@ } } + /* --- Plugin page Q&A transcript --- */ + .qa { + background: var(--bg-surface); + border-left: 3px solid var(--accent); + padding: var(--space-md) 1.25rem; + margin: 1.25rem 0; + } + .qa-q { + font-family: var(--font); + font-size: 0.85rem; + font-weight: 600; + color: var(--accent); + margin: 0; + } + .qa-q::before { + content: "> "; + color: var(--text-dim); + } + .qa-a p { + margin: 0.6rem 0 0; + font-size: 0.95rem; + } + /* --- Topographic divider --- */ .divider { background: repeating-linear-gradient( diff --git a/site/pages/plugin.md b/site/pages/plugin.md new file mode 100644 index 00000000..6b90b445 --- /dev/null +++ b/site/pages/plugin.md @@ -0,0 +1,129 @@ +--- +layout: base.njk +title: Plugin +nav: plugin +permalink: /plugin/ +--- + +# Claude Code Plugin + +**Ask your session history anything.** The `path` plugin gives Claude Code +four commands over every agent session on your machine — Claude Code, Codex, +Gemini CLI, GitHub Copilot, opencode, Cursor, and Pi. Nothing to configure; +nothing leaves your machine until you share. + +``` +/plugin marketplace add empathic/toolpath +/plugin install path@toolpath +``` + +## Your sessions are a dataset + +Every session you run is recorded somewhere on disk, in a format you can't +read, by a tool that never looks at it again. `/path:query` turns that +archive into something you can question in plain English. + +
+

/path:query what did i work on last week?

+
+ +Most of last week went to the **payments service**: migrating off the +legacy webhook handler (Tue–Thu, 640 steps) and two short sessions chasing +a race in the retry queue. Monday was the docs-site redesign; Thursday +afternoon a one-off backfill script. No recorded activity Friday or over +the weekend. + +
+
+ +
+

/path:query which sessions cost me the most tokens this month?

+
+ +The heaviest was Wednesday's session on the import-pipeline bug: roughly +**8.4M tokens** — 7.9M of it cache reads, 61k generated output. Worth +knowing: the top two sessions are segments of the same conversation; +together they're nearly half the month's total. + +
+
+ +
+

/path:query what parts of my workflow were inefficient this month?

+
+ +Two things dominate. About a fifth of the month's steps were later +rewound or replaced, concentrated in three sessions that each had to be +substantially redone. And marathon sessions are where the tokens go: the +five sessions over a thousand steps account for nearly half your context +spend — a fresh session per sub-task would be the highest-leverage change. +Tool failures barely register by comparison (2.3% of calls, mostly shell +friction). + +
+
+ +## Share, link, resume + +### /path:share + +This conversation, as a link. Publishes the current session to +[Pathbase](https://pathbase.dev). Name another session in plain words +("the one about the flaky test") and it finds and shares that one instead. + +
+

/path:share the session where we fixed the retry queue

+
+ +Found it — Tuesday's session on the retry-queue race. Shared: +`pathbase.dev/u/you/pathstash/retry-queue-race` + +
+
+ +### /path:link-pr + +Ship the _why_ with the diff. Shares the session and appends the link to +your pull request's description, so the review carries the conversation +behind the change. Saying "share this conversation to the PR" is enough +to trigger it: + +
+

share this conversation to the pr

+
+ +Shared — the session is at +`pathbase.dev/u/you/pathstash/rate-limit-retry` and PR #212's description +now links to it. + +
+
+ +### /path:resume + +Sessions are portable. Point it at a Pathbase URL and it projects the +session into your project, ready to pick up with `/resume` — even if the +session started on another machine, or in a different harness entirely. + +
+

/path:resume pathbase.dev/u/mira/pathstash/retry-queue-race

+
+ +Imported into this project. Run `/resume 7c9e2b41` to pick up where Mira +left off. + +
+
+ +## How it works + +On first use the plugin installs the `path` CLI from a GitHub release +(sha256-verified) — or uses the one already on your `PATH`. The CLI reads +each harness's on-disk session format and normalizes it into +[Toolpath documents](/format/) in a local cache; `/path:query` answers +questions from that cache entirely on your machine. Sharing is explicit: +only `/path:share` and `/path:link-pr` upload anything, and you choose +anonymous or [signed-in](https://pathbase.dev) uploads. + +The plugin is [open source](https://github.com/empathic/toolpath/tree/main/plugins/claude-code), +and the same commands work against the [CLI](/cli/) directly.