spoonlisted
Install: claude install-skill charonwang/spoon
# Spoon
Portable host loop for Spoon Runner workflows. The Runner owns all workflow state; this Skill
holds **no state** and never edits `.spoon/` JSON files directly.
Install once with `spoon skills install` (symlinks into `~/.agents/skills/spoon` and
`~/.claude/skills/spoon`). Do not copy this Skill into each project's `.cursor/skills/`.
When `visible_terminals` is true and `agents.claude.ui` is `interactive` (default),
Claude review opens the Claude Code TUI in an external terminal (`terminal.launcher`).
One Claude session is kept per Spoon run (`--session-id` then `--resume`): the window may
close between turns; the next review reopens the same session. Spoon waits for the review
file. Set `agents.claude.ui` to `print` for the legacy `-p` JSON/stream-json path.
`inline` launcher streams into the Spoon process; Spoon cannot open Cursor's Terminal
panel. Codex Desktop remains separate (`agents.codex.desktop`).
**Cursor is the visible orchestrator.** Run this loop inside Cursor agent chat. Cursor chat
is the visible session for plan adoption, implementation, and narration — no separate Cursor
window is required. Before and after each `spoon run` step, and whenever Claude or Codex
starts or finishes, narrate in chat: which reviewer ran, the target directory, and the
result or fallback path. On exit `20`, quote the adapter/`spoon` stderr message verbatim —
do **not** invent “Desktop unavailable” unless that text appears. Prefer retrying
`spoon run` once before hand-writing