feat(harness): wraptool harness list|install for the pool #21

Merged
pti merged 1 commit from feat-harness-install-cmd into main 2026-07-07 18:08:49 +02:00
Owner

One-command pool management.

Commands

  • wraptool harness list — table of every registry harness: kind (container CLI vs host IDE), installed? (is its binary in the pool), auth:
    HARNESS   KIND           INSTALLED         AUTH
    agy       container CLI  no (manual)       bearer
    claude    container CLI  yes               bearer
    cursor    host IDE       -                 bearer
    opencode  container CLI  no (manual)       bearer
    ...
    
  • wraptool harness install <name> — runs the harness's own installer into the pool prefix. claude: guix shell node -- npm i -g @anthropic-ai/claude-code --prefix <pool>. Refuses host-side IDEs (cursor/roo/windsurf → init); prints a manual hint for CLI harnesses without a baked-in recipe.

wraptool delegates to each tool's installer — it never packages/patches harness binaries (no version treadmill).

Descriptor

Gains Bin (pool exe name; empty ⇒ host IDE, not pool-installable) + Install (argv template, {prefix} → pool root).

Verified e2e: list renders; install cursor refuses (IDE); install opencode gives the manual hint. Full suite + lint clean.

🤖 Generated with Claude Code

One-command pool management. ## Commands - **`wraptool harness list`** — table of every registry harness: **kind** (container CLI vs host IDE), **installed?** (is its binary in the pool), **auth**: ``` HARNESS KIND INSTALLED AUTH agy container CLI no (manual) bearer claude container CLI yes bearer cursor host IDE - bearer opencode container CLI no (manual) bearer ... ``` - **`wraptool harness install <name>`** — runs the harness's **own** installer into the pool prefix. claude: `guix shell node -- npm i -g @anthropic-ai/claude-code --prefix <pool>`. Refuses host-side IDEs (cursor/roo/windsurf → `init`); prints a manual hint for CLI harnesses without a baked-in recipe. wraptool **delegates to each tool's installer** — it never packages/patches harness binaries (no version treadmill). ## Descriptor Gains `Bin` (pool exe name; empty ⇒ host IDE, not pool-installable) + `Install` (argv template, `{prefix}` → pool root). Verified e2e: `list` renders; `install cursor` refuses (IDE); `install opencode` gives the manual hint. Full suite + lint clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(harness): wraptool harness list|install for the pool
All checks were successful
Lint / lint (pull_request) Successful in 17s
cce746701d
Adds a harness command group to manage the developer harness pool.
`harness list` shows each registry harness — container CLI vs host IDE, whether
its binary is installed in the pool, and its auth mode. `harness install <name>`
runs the harness's own installer into the pool prefix (claude:
`guix shell node -- npm i -g @anthropic-ai/claude-code --prefix <pool>`), refuses
host-side IDEs (cursor/roo/windsurf → use `init`), and prints a manual hint for
CLI harnesses without a baked-in recipe. wraptool delegates to each tool's
installer — it never packages harnesses.

Descriptor gains Bin (pool exe name; empty = host IDE) + Install (argv template
with {prefix}). Verified: list renders; install cursor refuses; install opencode
gives the manual hint.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
pti merged commit 50889940df into main 2026-07-07 18:08:49 +02:00
pti deleted branch feat-harness-install-cmd 2026-07-07 18:08:49 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pti/wraptool!21
No description provided.