docs: document latest toolcraft changes#411
Conversation
| | Argument | Required | Description | | ||
| |----------|----------|-------------| | ||
| | `agent` | Yes | Agent to spawn: `claude-code`, `codex`, `opencode`, `kimi`, `goose` | | ||
| | `agent` | Yes | Agent to spawn, such as `claude-code`, `codex`, `cursor`, `opencode`, `kimi`, `goose`, or `poe-agent`. | |
There was a problem hiding this comment.
This changed doc no longer passes npx prettier --check docs/README_FULL.md (the base version does), so the repository format check regresses. Please run npx prettier --write docs/README_FULL.md.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 83260f253b
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| ```bash | ||
| npx poe-code@latest wrap claude | ||
| # Also available: codex, opencode, kimi, goose | ||
| # Also available: codex, cursor, opencode, kimi, goose |
There was a problem hiding this comment.
Stop listing Cursor as a wrap target
wrap cursor is advertised in the quickstart, but the wrap command requires the provider to define isolatedEnv and throws Agent "cursor" does not support isolated configuration wrappers. otherwise; src/providers/cursor.ts defines spawn/install support but no isolated wrapper config. Users following this line will get an immediate failure instead of a Poe-routed Cursor session.
Useful? React with 👍 / 👎.
|
|
||
| # Setup a specific agent | ||
| npx poe-code@latest configure codex # (or claude, opencode, kimi, goose) | ||
| npx poe-code@latest configure codex # (or claude, cursor, opencode, kimi, goose) |
There was a problem hiding this comment.
Don't document Cursor as configurable for Poe routing
cursor is documented here as a setup target, but the provider has requiresProvider: false and an empty manifest.configure, while the agent-spawn README says Cursor uses the authenticated cursor-agent account with no environment variables injected. Running poe-code configure cursor therefore only records a no-provider config and does not route Cursor API calls through Poe, so this quickstart points users at a setup path that cannot produce the advertised behavior.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1f3372480f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| ## Resuming sessions | ||
|
|
||
| Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`. |
There was a problem hiding this comment.
Remove Poe Agent from agent-spawn resume docs
This package does not have a declarative spawn/resume mapping for poe-agent: allSpawnConfigs only registers Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose, and resolveCliConfig throws when an agent has no spawn config. Users importing @poe-code/agent-spawn and following this line with spawn("poe-agent", { resumeThreadId: ... }) will fail before launch; if the intent is to describe the root CLI/SDK custom Poe Agent handler, it should be documented separately from agent-spawn's declarative mappings.
Useful? React with 👍 / 👎.
|
|
||
| #### Run a plan with follow-up checks | ||
|
|
||
| Gaslight runs a Markdown plan, then resumes the same agent thread with configured follow-up prompts such as testing, simplification, and commit checks. |
There was a problem hiding this comment.
Don't advertise Gaslight follow-ups until threads are returned
When users follow this new quickstart after gaslight install, the scaffolded config has follow-ups, but the CLI wrapper passes @poe-code/agent-spawn.spawn into runGaslight; that low-level spawn returns only stdout/stderr/exitCode, while runGaslight throws before the first follow-up if result.threadId is missing. In that normal CLI-agent path the documented “resumes the same agent thread” flow stops after round 1 instead of running testing/commit checks.
Useful? React with 👍 / 👎.
1f33724 to
948412b
Compare
| | `openai/gpt-5.1-codex-mini` | | | ||
| | Model ID | Default | | ||
| | --------------------------- | ------- | | ||
| | `openai/gpt-5.2-codex` | Yes | |
There was a problem hiding this comment.
This default is out of sync with src/cli/constants.ts, where DEFAULT_CODEX_MODEL is openai/gpt-5.5. The table should also include the newer Codex model set shown later in this file.
| | `openai/gpt-5.2-codex` | Yes | | |
| | `openai/gpt-5.5` | Yes | |
| | `read` | Read-only, no modifications | `--permission-mode plan` | `-s read-only` | `--agent plan` | (none) | `GOOSE_MODE=chat` | | ||
| | Mode | Description | Claude Code Args | Codex Args | Cursor Args | OpenCode Args | Kimi Args | Goose | | ||
| | ------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------- | ---------------------------- | -------------- | ------------- | -------------------------- | | ||
| | `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` | |
There was a problem hiding this comment.
Codex yolo no longer maps to -s danger-full-access; packages/agent-spawn/src/configs/codex.ts uses --dangerously-bypass-approvals-and-sandbox.
| | `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` | | |
| | `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `--dangerously-bypass-approvals-and-sandbox` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` | |
| | ----------- | ------------- | ---------- | ---------- | ------------- | ----- | --------- | ----------- | ------ | | ||
| | Claude Code | `claude-code` | `claude` | `claude` | JSON | Yes | Yes | Yes | Yes | | ||
| | Codex | `codex` | — | `codex` | TOML | Yes | Yes | Yes | Yes | | ||
| | OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes | |
There was a problem hiding this comment.
This summary should match the updated MCP serialization section and supportsMcpAtSpawn(): OpenCode has mcpEnv: serializeOpenCodeMcpEnv, so spawn-time MCP is supported.
| | OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes | | |
| | OpenCode | `opencode` | — | `opencode` | JSON | No | Yes | Yes | Yes | |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 948412b34e
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| | `agentArgs` | No | Additional arguments forwarded directly to the agent CLI. | | ||
| | Argument | Required | Description | | ||
| | ----------- | -------- | ------------------------------------------------------------------------------------------------------ | | ||
| | `agent` | Yes | Agent to spawn, such as `claude-code`, `codex`, `cursor`, `opencode`, `kimi`, `goose`, or `poe-agent`. | |
There was a problem hiding this comment.
Don't imply spawn modes constrain Poe Agent
Including poe-agent in the generic spawn list makes the adjacent --mode read|edit|auto|yolo documentation look applicable to it, but the custom createPoeAgentSpawnHandler drops options.mode when calling spawnPoeAgentWithAcp. In particular, poe-code spawn poe-agent --mode read ... still runs without Poe Agent's read policy, so users relying on this doc for a read-only run get a less constrained session than advertised.
Useful? React with 👍 / 👎.
948412b to
48a7a2e
Compare
|
|
||
| ## Resuming sessions | ||
|
|
||
| Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`. |
There was a problem hiding this comment.
@poe-code/agent-spawn still has no poe-agent spawn config, so package consumers following this sentence with spawn("poe-agent", { resumeThreadId }) hit Agent "poe-agent" has no spawn config. Poe Agent resume is handled by the top-level CLI/provider path instead.
| Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`. | |
| Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose have resume mappings. |
| | `-C, --cwd <path>` | Current dir | Working directory for the agent. | | ||
| | `--stdin` | `false` | Read the prompt from stdin. | | ||
| | `-i, --interactive` | `false` | Launch in interactive TUI mode (inherits stdio). | | ||
| | `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. | |
There was a problem hiding this comment.
Since this section now includes poe-agent as a spawn target, this overstates --mode: createPoeAgentSpawnHandler() does not pass options.mode into spawnPoeAgentWithAcp, so poe-code spawn poe-agent --mode read is not constrained by the documented read mode.
| | `openai/gpt-5.1-codex-mini` | | | ||
| | Model ID | Default | | ||
| | --------------------------- | ------- | | ||
| | `openai/gpt-5.2-codex` | Yes | |
There was a problem hiding this comment.
This default is still out of sync with src/cli/constants.ts, where DEFAULT_CODEX_MODEL is openai/gpt-5.5.
| | `openai/gpt-5.2-codex` | Yes | | |
| | `openai/gpt-5.5` | Yes | |
| | `read` | Read-only, no modifications | `--permission-mode plan` | `-s read-only` | `--agent plan` | (none) | `GOOSE_MODE=chat` | | ||
| | Mode | Description | Claude Code Args | Codex Args | Cursor Args | OpenCode Args | Kimi Args | Goose | | ||
| | ------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------- | ---------------------------- | -------------- | ------------- | -------------------------- | | ||
| | `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` | |
There was a problem hiding this comment.
Codex yolo no longer maps to -s danger-full-access; packages/agent-spawn/src/configs/codex.ts uses --dangerously-bypass-approvals-and-sandbox.
| | `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` | | |
| | `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `--dangerously-bypass-approvals-and-sandbox` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` | |
| | ----------- | ------------- | ---------- | ---------- | ------------- | ----- | --------- | ----------- | ------ | | ||
| | Claude Code | `claude-code` | `claude` | `claude` | JSON | Yes | Yes | Yes | Yes | | ||
| | Codex | `codex` | — | `codex` | TOML | Yes | Yes | Yes | Yes | | ||
| | OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes | |
There was a problem hiding this comment.
OpenCode has mcpEnv: serializeOpenCodeMcpEnv, so supportsMcpAtSpawn("opencode") returns true and this summary should say MCP spawn is supported.
| | OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes | | |
| | OpenCode | `opencode` | — | `opencode` | JSON | No | Yes | Yes | Yes | |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 48a7a2e08a
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| ```ts | ||
| import { startManagedProcess, stopManagedProcess } from "@poe-code/process-launcher"; | ||
|
|
||
| const record = await startManagedProcess({ |
There was a problem hiding this comment.
Include the required spawnDaemon callback
This example calls startManagedProcess() without a spawnDaemon implementation, but StartManagedProcessOptions requires that callback and startManagedProcess calls options.spawnDaemon(spec.id) unconditionally. Users copying the README sample will either get a TypeScript error or a runtime options.spawnDaemon is not a function before the managed process can start, so the usage example needs to show how to provide the daemon launcher (or use an API that does not require one).
Useful? React with 👍 / 👎.
48a7a2e to
cb15c5a
Compare
|
|
||
| ## Resuming sessions | ||
|
|
||
| Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`. |
There was a problem hiding this comment.
@poe-code/agent-spawn still has no poe-agent spawn config (allSpawnConfigs only registers Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose), so package consumers following this with resumeThreadId hit Agent "poe-agent" has no spawn config. Poe Agent resume is handled by the top-level CLI/provider path instead.
| Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`. | |
| Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose have resume mappings. |
| ```ts | ||
| import { startManagedProcess, stopManagedProcess } from "@poe-code/process-launcher"; | ||
|
|
||
| const record = await startManagedProcess({ |
There was a problem hiding this comment.
This usage example omits the required spawnDaemon callback. StartManagedProcessOptions requires it, and startManagedProcess() calls options.spawnDaemon(spec.id) unconditionally before waiting for the daemon to report the managed process state, so copying this sample fails at compile time or at runtime instead of starting the process.
| | `-C, --cwd <path>` | Current dir | Working directory for the agent. | | ||
| | `--stdin` | `false` | Read the prompt from stdin. | | ||
| | `-i, --interactive` | `false` | Launch in interactive TUI mode (inherits stdio). | | ||
| | `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. | |
There was a problem hiding this comment.
Since this section includes poe-agent as a spawn target, this overstates --mode: createPoeAgentSpawnHandler() does not pass options.mode into spawnPoeAgentWithAcp, so poe-code spawn poe-agent --mode read ... is not constrained by the documented read mode. Please either remove poe-agent from the generic target list or qualify that this mode behavior applies only to declarative agent-spawn providers.
| | `read` | Read-only, no modifications | `--permission-mode plan` | `-s read-only` | `--agent plan` | (none) | `GOOSE_MODE=chat` | | ||
| | Mode | Description | Claude Code Args | Codex Args | Cursor Args | OpenCode Args | Kimi Args | Goose | | ||
| | ------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------- | ---------------------------- | -------------- | ------------- | -------------------------- | | ||
| | `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` | |
There was a problem hiding this comment.
Codex yolo no longer maps to -s danger-full-access; packages/agent-spawn/src/configs/codex.ts uses --dangerously-bypass-approvals-and-sandbox.
| | `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` | | |
| | `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `--dangerously-bypass-approvals-and-sandbox` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` | |
cb15c5a to
d5605cd
Compare
| > **Audience**: AI agents and developers who need to understand and use every feature of the `poe-code` library — CLI, SDK, providers, and internals. | ||
|
|
||
| `poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents. | ||
| `poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, Cursor, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents. |
There was a problem hiding this comment.
cursor is included in the Poe-routing claim, but src/providers/cursor.ts has requiresProvider: false and an empty configure manifest; Cursor spawn uses the user's authenticated cursor-agent account instead of Poe provider config.
| `poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, Cursor, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api). Instead of managing multiple provider accounts, a single Poe subscription powers all your coding agents. | |
| `poe-code` is a CLI tool and Node.js SDK that configures coding agents (Claude Code, Codex, OpenCode, Kimi, Goose) to route their API calls through the [Poe API](https://poe.com/api), and can also spawn Cursor through the authenticated local `cursor-agent` CLI. Instead of managing multiple provider accounts for Poe-routed agents, a single Poe subscription powers those coding agents. |
| | `-C, --cwd <path>` | Current dir | Working directory for the agent. | | ||
| | `--stdin` | `false` | Read the prompt from stdin. | | ||
| | `-i, --interactive` | `false` | Launch in interactive TUI mode (inherits stdio). | | ||
| | `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. | |
There was a problem hiding this comment.
This overstates --mode now that the same section lists poe-agent: createPoeAgentSpawnHandler() does not pass options.mode into spawnPoeAgentWithAcp, so poe-code spawn poe-agent --mode read ... is not constrained by the documented read mode.
| | `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. | | |
| | `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode for declarative spawn providers: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. Poe Agent uses its custom spawn path and does not currently receive this option. | |
| | `openai/gpt-5.1-codex-mini` | | | ||
| | Model ID | Default | | ||
| | --------------------------- | ------- | | ||
| | `openai/gpt-5.2-codex` | Yes | |
There was a problem hiding this comment.
This default is out of sync with src/cli/constants.ts, where DEFAULT_CODEX_MODEL is openai/gpt-5.5.
| | `openai/gpt-5.2-codex` | Yes | | |
| | `openai/gpt-5.5` | Yes | | |
| | `openai/gpt-5.2-codex` | | |
| |------|------| | ||
| | Mode | Args | | ||
| | ------ | ----------------------- | | ||
| | `yolo` | `-s danger-full-access` | |
There was a problem hiding this comment.
Codex yolo no longer maps to -s danger-full-access; packages/agent-spawn/src/configs/codex.ts uses --dangerously-bypass-approvals-and-sandbox.
| | `yolo` | `-s danger-full-access` | | |
| | `yolo` | `--dangerously-bypass-approvals-and-sandbox` | |
| | `read` | Read-only, no modifications | `--permission-mode plan` | `-s read-only` | `--agent plan` | (none) | `GOOSE_MODE=chat` | | ||
| | Mode | Description | Claude Code Args | Codex Args | Cursor Args | OpenCode Args | Kimi Args | Goose | | ||
| | ------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------- | ---------------------------- | -------------- | ------------- | -------------------------- | | ||
| | `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` | |
There was a problem hiding this comment.
Same obsolete Codex yolo flag here; the spawn config uses --dangerously-bypass-approvals-and-sandbox, not -s danger-full-access.
| | `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` | | |
| | `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `--dangerously-bypass-approvals-and-sandbox` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` | |
| | ----------- | ------------- | ---------- | ---------- | ------------- | ----- | --------- | ----------- | ------ | | ||
| | Claude Code | `claude-code` | `claude` | `claude` | JSON | Yes | Yes | Yes | Yes | | ||
| | Codex | `codex` | — | `codex` | TOML | Yes | Yes | Yes | Yes | | ||
| | OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes | |
There was a problem hiding this comment.
OpenCode has mcpEnv: serializeOpenCodeMcpEnv, so supportsMcpAtSpawn("opencode") returns true and this summary should say MCP spawn is supported.
| | OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes | | |
| | OpenCode | `opencode` | — | `opencode` | JSON | No | Yes | Yes | Yes | |
|
|
||
| ## Resuming sessions | ||
|
|
||
| Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`. |
There was a problem hiding this comment.
@poe-code/agent-spawn has no poe-agent entry in allSpawnConfigs, so package consumers following this with resumeThreadId hit Agent "poe-agent" has no spawn config. Poe Agent resume is handled by the top-level CLI/provider path instead.
| Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`. | |
| Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose have resume mappings. |
| ```ts | ||
| import { startManagedProcess, stopManagedProcess } from "@poe-code/process-launcher"; | ||
|
|
||
| const record = await startManagedProcess({ |
There was a problem hiding this comment.
This example omits the required spawnDaemon callback. StartManagedProcessOptions requires it, and startManagedProcess() calls options.spawnDaemon(spec.id) before waiting for the managed process state, so copying this sample fails at compile time or runtime instead of starting the process.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d5605cdd9d
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| | `agentArgs` | No | Additional arguments forwarded directly to the agent CLI. | | ||
| | Argument | Required | Description | | ||
| | ----------- | -------- | ------------------------------------------------------------------------------------------------------ | | ||
| | `agent` | Yes | Agent to spawn, such as `claude-code`, `codex`, `cursor`, `opencode`, `kimi`, `goose`, or `poe-agent`. | |
There was a problem hiding this comment.
Fix the Poe Agent resume hint before listing it
Adding poe-agent to the generic spawn list puts it under the documented “displays a resume command” behavior, but the custom Poe Agent handler currently prints poe-code spawn --agent poe-agent --resume-thread-id ... (src/cli/commands/spawn-poe-agent.ts), while the spawn command only accepts the agent as the positional <agent> argument and defines no --agent option (src/cli/commands/spawn.ts). Users who pick Poe Agent from this list and copy the emitted resume command will hit an unknown-option failure instead of resuming; the hint/docs should use poe-code spawn poe-agent ... or avoid advertising it until the command is valid.
Useful? React with 👍 / 👎.
| | `ingest --sources <sources>` | `claude,codex` collector | Comma-separated trace sources: `claude`, `codex`, or both. | | ||
| | `ingest --since <duration>` | `30d` | Only include recently updated traces. | | ||
| | `ingest --limit <number>` | `200` | Maximum extracted human prompts. | | ||
| | `ingest --output <path>` | `.poe-code/gaslight.yaml` | Generated gaslight config path. | |
There was a problem hiding this comment.
Document the Gaslight ingest fallback path
This default is only true when .poe-code/gaslight.yaml does not already exist; resolveOutputPath() writes an agent-prefixed variant such as .poe-code/codex-gaslight.yaml when the default config file is present. In that common case users following this table will look for the generated config in the wrong file, and a later poe-code gaslight run will keep loading the existing gaslight.yaml unless they pass --config for the variant.
Useful? React with 👍 / 👎.
Remove Cursor from wrap and configure quickstart targets because Cursor spawn support does not route calls through Poe provider configuration. Format docs/README_FULL.md with Prettier to restore the repository formatting check. Addresses review comments 3406958006, 3406961902, and 3406961905.
d5605cd to
893f216
Compare
| | `-C, --cwd <path>` | Current dir | Working directory for the agent. | | ||
| | `--stdin` | `false` | Read the prompt from stdin. | | ||
| | `-i, --interactive` | `false` | Launch in interactive TUI mode (inherits stdio). | | ||
| | `--mode <mode>` | Prompted; `--yes` uses `yolo` | Permission mode: `yolo`, `auto`, `edit`, or `read`. Unsupported modes fail before launch with the supported-mode list. | |
There was a problem hiding this comment.
Since poe-agent is now listed as a spawn target in this section, this row implies poe-code spawn poe-agent --mode read enforces a read-only run. The custom Poe Agent handler currently drops options.mode before calling spawnPoeAgentWithAcp, so users can get a less constrained session than the docs promise. Please either exclude Poe Agent from the generic mode docs or wire/enforce the selected mode before advertising it here.
| | `openai/gpt-5.1-codex-mini` | | | ||
| | Model ID | Default | | ||
| | --------------------------- | ------- | | ||
| | `openai/gpt-5.2-codex` | Yes | |
There was a problem hiding this comment.
This default is out of sync with src/cli/constants.ts, where DEFAULT_CODEX_MODEL is openai/gpt-5.5.
| | `openai/gpt-5.2-codex` | Yes | | |
| | `openai/gpt-5.5` | Yes | |
| |------|------| | ||
| | Mode | Args | | ||
| | ------ | ----------------------- | | ||
| | `yolo` | `-s danger-full-access` | |
There was a problem hiding this comment.
Codex yolo no longer maps to -s danger-full-access; packages/agent-spawn/src/configs/codex.ts uses --dangerously-bypass-approvals-and-sandbox.
| | `yolo` | `-s danger-full-access` | | |
| | `yolo` | `--dangerously-bypass-approvals-and-sandbox` | |
| | `read` | Read-only, no modifications | `--permission-mode plan` | `-s read-only` | `--agent plan` | (none) | `GOOSE_MODE=chat` | | ||
| | Mode | Description | Claude Code Args | Codex Args | Cursor Args | OpenCode Args | Kimi Args | Goose | | ||
| | ------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------- | ---------------------------- | -------------- | ------------- | -------------------------- | | ||
| | `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` | |
There was a problem hiding this comment.
Same obsolete Codex yolo flag here; the spawn config uses --dangerously-bypass-approvals-and-sandbox, not -s danger-full-access.
| | `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `-s danger-full-access` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` | | |
| | `yolo` | Full access, no permission prompts | `--dangerously-skip-permissions` | `--dangerously-bypass-approvals-and-sandbox` | `--force --sandbox disabled` | (none) | `--yolo` | `GOOSE_MODE=auto` | |
| | ----------- | ------------- | ---------- | ---------- | ------------- | ----- | --------- | ----------- | ------ | | ||
| | Claude Code | `claude-code` | `claude` | `claude` | JSON | Yes | Yes | Yes | Yes | | ||
| | Codex | `codex` | — | `codex` | TOML | Yes | Yes | Yes | Yes | | ||
| | OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes | |
There was a problem hiding this comment.
OpenCode has mcpEnv: serializeOpenCodeMcpEnv, so supportsMcpAtSpawn("opencode") returns true and this summary should say MCP spawn is supported.
| | OpenCode | `opencode` | — | `opencode` | JSON | No | No | Yes | Yes | | |
| | OpenCode | `opencode` | — | `opencode` | JSON | No | Yes | Yes | Yes | |
|
|
||
| ## Resuming sessions | ||
|
|
||
| Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`. |
There was a problem hiding this comment.
@poe-code/agent-spawn has no poe-agent entry in allSpawnConfigs, so package consumers following this with resumeThreadId hit Agent "poe-agent" has no spawn config. Poe Agent resume is handled by the top-level CLI/provider path instead.
| Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, Goose, and Poe Agent have resume mappings; Poe Agent persists its local message history under `~/.poe-code/sessions/`. | |
| Pass `resumeThreadId` to continue a prior provider thread/session. Declarative agent configs decide where the resume arguments are inserted and how user-facing resume hints are rendered. Claude Code, Codex, Cursor, OpenCode, Kimi, and Goose have resume mappings. |
| ```ts | ||
| import { startManagedProcess, stopManagedProcess } from "@poe-code/process-launcher"; | ||
|
|
||
| const record = await startManagedProcess({ |
There was a problem hiding this comment.
This example omits the required spawnDaemon callback. StartManagedProcessOptions requires it, and startManagedProcess() calls options.spawnDaemon(spec.id) before waiting for the managed process state, so copying this sample fails at compile time or runtime instead of starting the process.
Summary
agent/update-documentationPR for commits that landed onmainduring the 24-hour window ending 2026-06-19 00:45 UTC.ToolError.data.toolcraft-openapi,toolcraft, andtiny-stdio-mcp-serverto reflect the latest public behavior.mainand kept the prior documentation updates in this PR.Reviewed commits
484d4fbafix: tighten toolcraft generated cli behaviordcf3a92dfix: copy generated command tuple for cli760f66b6docs: remove toolcraft dry run qa examplec2bd3f7efix(toolcraft-openapi): generate complete client entrypoint for toolcraft-openapi: generate a complete high-level command entrypoint #424ce7ca121fix(toolcraft-openapi): stop stamping spec sha in operation files for toolcraft-openapi: stop embedding spec SHA in every generated file #426986ee848feat(toolcraft-openapi): generate local skills from specsValidation
git diff --checknpx prettier --check packages/toolcraft-openapi/README.md packages/toolcraft/README.md packages/tiny-stdio-mcp-server/README.md docs/changelog/2026-06-18-toolcraft-openapi.mdCheck status
guard,run,pr / test,TruffleHog Advisory Scan.e2efails because ACP agents can returnstopReason: "end_turn"; the companion fix is PR fix(poe-acp-client): accept end turn prompt stops #421.