Repository navigation
feat(plugins): corespeed-cli, a skills-only plugin for Codex on the cs CLI - #2
Conversation
…s CLI A second plugin, plugins/corespeed-cli, registers no MCP server. Its one skill has the agent install @corespeed/cs, sign in once in the browser, and find and call CoreSpeed tools from the shell: cs mcp search, cs mcp get, cs mcp call. A client that loads no tool list has no tool-list limit, which is what Codex users in an organization with many connectors need, and it is the shape the OpenAI Plugins Directory accepts for a skills-only plugin. The cs-cli skill (source: plugins/corespeed/skills/cs-cli) catches up with cs 0.5.0: the search → get → call workflow, cs mcp search and cs mcp get in the command table, the memory commands, exit code 6 (a call waiting for a human's approval, and the approval_wait command to run), and Codex's sandbox, which has no network by default. Its intro no longer assumes the MCP plugin is installed. corespeed-cli carries a byte-identical copy; CI fails on drift, on an .mcp.json in the CLI plugin, and on an mcpServers key in its manifest. The MCP plugin's manifests go to 0.2.1 because their bundled skill changed. Verified: Codex 0.151.0 installs corespeed-cli from this marketplace, lists it as installed and enabled, registers no MCP server, and lays down the manifest, the skill and the assets; the HOL plugin scanner scores the tree 86/100 with no high findings; the jq guards pass locally. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
There was a problem hiding this comment.
Approved with one nonblocking P2 follow-up. No P1 findings.
Reviewed merge base 37b37f8 through head 0822dad. Round 1/5, cycle 1. Session: ed1945d8-2696-4267-a850-653d4848222f.
Checked the manifests, marketplace paths, bundled skills, version changes, assets, and workflow guards. Inspected published @corespeed/cs 0.5.0 against the new command instructions. Targeted offline fixtures verified plain-text output, --raw JSON, structured output, and exit 6 with the approval-wait command. git diff --check passed. Authenticated provider calls were not exercised.
CI passed on this exact head: manifests and scan. The PR description records the CLI-only design and separate Directory submission work.
The inline P2 should be fixed but may follow up; it does not block approval.
| ``` | ||
|
|
||
| `cs mcp call` prints the tool's result on stdout: its `structuredContent` when | ||
| it has one, otherwise its content, as pretty-printed JSON. `--raw` prints the |
There was a problem hiding this comment.
[P2] Do not promise JSON for default call output
The new text says fallback content is pretty-printed JSON. In published cs 0.5.0, a text-only result prints plain text and exits 0. A local fixture with text "All systems healthy" reproduced that output. Agents following this contract can fail when parsing successful calls with JSON.parse or jq.
State that JSON text is formatted, other text is printed as written, and media produces summaries. Recommend --raw when a parser needs the full JSON result. The canonical CLI documentation already describes this distinction. Apply the clarification to both skill copies. This should be fixed but may follow up; it does not block approval.
…ON path The cs-cli skill said the result is "pretty-printed JSON" in every case. cs 0.5.0 prints structuredContent as JSON, but a plain-text content block as text (JSON text re-indented) and other blocks summarised; --raw is what prints the whole CallToolResult as JSON. Say so, in both copies of the skill. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
There was a problem hiding this comment.
Approved. The prior P2 output-format finding is resolved in both skill copies. No surviving findings or new blockers.
Cycle 2, round 1/5. Reviewed the delta from previously approved 0822dad to 9955fce. Merge base remains 37b37f8.
The only change corrects the stdout contract and directs JSON parsers to --raw. This matches the published cs 0.5.0 code and the prior targeted fixtures. Both skill copies are byte-identical at the new SHA; git diff --check passed. No code changed, so the earlier fixtures were not rerun.
CI passed on this exact head: manifests and scan.
Reviewer session: ed1945d8-2696-4267-a850-653d4848222f.
What
A second plugin,
plugins/corespeed-cli/, with one skill and no MCP server. Installed in Codex, it has the agent install@corespeed/cs, sign in once in the browser, and then find and call CoreSpeed tools from the shell:Registered in
.agents/plugins/marketplace.jsonascorespeed-cli@corespeed(installationAVAILABLE, authenticationON_USE: nothing to sign in to on install). The MCP plugincorespeedis unchanged apart from the skill below.Why
/mcp. The CLI discovers tools on demand instead.The
cs-cliskill catches up with cs 0.5.0Source is
plugins/corespeed/skills/cs-cli/SKILL.md;corespeed-clicarries a byte-identical copy.cs mcp searchandcs mcp getadded to the command table;cs mcp callandcs mcp listrows corrected to 0.5.0 behaviour.6, and thecs mcp call manage__approval_wait …command printed on stderr to run right away.workspace-writeandread-only), socsis blocked until approved or[sandbox_workspace_write] network_access = true; the agent must not change that setting itself.9955fce):structuredContentas JSON, otherwise text blocks as text;--rawis the path for JSON parsing.Because the bundled skill changed, both
corespeedmanifests go 0.2.0 → 0.2.1 (Codex caches a plugin by version).CI
check.ymlvalidates the new manifest and adds one step: the CLI plugin has no.mcp.json, its manifest has nomcpServers, and itscs-cliskill is identical to the source copy.Verified
codex plugin marketplace add <this tree>thencodex plugin add corespeed-cli@corespeed→ listed asinstalled, enabled 0.1.0;codex mcp liststill shows no servers; the cache holds the manifest, the skill and both assets.uvx plugin-scanner scan .): 86/100, no high findings (CI gate is ≥ 80, no high).Not in this PR
The Directory submission itself (publisher verification, listing text and artwork, reviewer account, test cases) is portal work. The setup skill in
corespeed-haas(skills/corespeed/SKILL.md) still tells Codex users to add the full/mcp; switching its Codex section to the CLI is a separate change.🤖 Generated with Claude Code