Skip to content

Harness preset catalog as data — buzz-parity BYOH (amp, grok, hermes, kimi, omp, openclaw, opencode, cursor) #231

Description

@orveth

gudnuf 7/28: "we should be able to support all these too" → "put it in the backlog for v1."

What

A bundled harness preset catalog as data, mirroring upstream block/buzz's BYOH design (block/buzz#2773, v0.5.0 — built after they closed gudnuf's block/buzz#1683 with credit: PRs like it "convinced us to solve harness support generically instead of one runtime at a time").

Three tiers, two of which mobee already has:

  • Tier 1 — builtins: claude / codex / goose presets (exist today in agent_presets.rs).
  • Tier 2 — bundled preset catalog (THIS ISSUE): one static data table — id, label, command, args, env, readiness probe, install hint — covering at minimum: amp, grok, hermes, kimi, omp (Oh My Pi), openclaw, opencode, cursor. Adding a harness = adding a data row, zero per-harness code.
  • Tier 3 — user custom: any argv via the [agents] config table (exists today).

Where it surfaces

  1. Seller node: preset resolution + readiness probing (same path builtins use).
  2. Desktop onboarding step 3 (harness scan) renders THIS table — found/not-found + install hints. Design mock: https://forgefleet.dev/mobee/desktop/#step-3
  3. mobee doctor covers enabled preset seats.

Constraints

  • ACP-over-stdio is the shared contract; the driver already speaks it. No protocol work.
  • Respect the repo's npx-launcher ban (builtin_presets_resolve_to_binary_or_install_hint): a missing preset binary fails with the catalog's install hint, never an npx fallback.
  • Cursor preset carries the known caveat: blocking ext-methods (ask_question/create_plan) need an answer policy before headless turns are reliable — probe/flag, don't hang.
  • Readiness ≠ spawn: catalog entries need a real probe (help/resolution), not --version (codex-acp doesn't support it).

Acceptance (artifact predicates)

  • A test asserting every catalog entry resolves to binary-or-install-hint (extends the existing preset test).
  • With a fake binary on PATH for one preset, the scan reports it found and a seat can be configured from it without touching Rust.
  • No compile-time growth in per-harness code when a row is added (the row IS the change).

Metadata

Metadata

Assignees

No one assigned

    Labels

    v1-backloggudnuf-named v1 backlog item

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions