Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,18 @@
"authentication": "ON_INSTALL"
},
"category": "Developer Tools"
},
{
"name": "corespeed-cli",
"source": {
"source": "local",
"path": "./plugins/corespeed-cli"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_USE"
},
"category": "Developer Tools"
}
]
}
13 changes: 12 additions & 1 deletion .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
run: |
for f in .agents/plugins/marketplace.json .claude-plugin/marketplace.json \
plugins/corespeed/.codex-plugin/plugin.json plugins/corespeed/.claude-plugin/plugin.json \
plugins/corespeed/.mcp.json; do
plugins/corespeed/.mcp.json plugins/corespeed-cli/.codex-plugin/plugin.json; do
jq empty "$f" || { echo "::error file=$f::invalid JSON"; exit 1; }
done
- name: The MCP server signs in with OAuth
Expand All @@ -30,6 +30,17 @@ jobs:
jq -e '.mcpServers | length == 1 and (.corespeed | keys == ["type", "url"]) and .corespeed.url == "https://api.corespeed.io/mcp"' \
plugins/corespeed/.mcp.json > /dev/null \
|| { echo "::error file=plugins/corespeed/.mcp.json::expected exactly {type, url} pointing at https://api.corespeed.io/mcp"; exit 1; }
- name: The CLI plugin is skills-only and bundles the same cs-cli skill
# corespeed-cli registers no MCP server: that is the point of it (a
# client loads no tool list). Its cs-cli skill is a copy of the MCP
# plugin's, which is the source; a drift here is a stale copy.
run: |
test ! -e plugins/corespeed-cli/.mcp.json \
|| { echo "::error::plugins/corespeed-cli must not carry .mcp.json"; exit 1; }
jq -e 'has("mcpServers") | not' plugins/corespeed-cli/.codex-plugin/plugin.json > /dev/null \
|| { echo "::error file=plugins/corespeed-cli/.codex-plugin/plugin.json::skills-only plugin: no mcpServers"; exit 1; }
cmp -s plugins/corespeed/skills/cs-cli/SKILL.md plugins/corespeed-cli/skills/cs-cli/SKILL.md \
|| { echo "::error::cs-cli skill differs between the plugins; plugins/corespeed/skills/cs-cli/SKILL.md is the source — copy it over"; exit 1; }
- name: Both manifests carry the same version
run: |
codex=$(jq -r .version plugins/corespeed/.codex-plugin/plugin.json)
Expand Down
29 changes: 22 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,20 @@ select **Authenticate** (or open **Settings → MCP servers → CoreSpeed**) and
finish the sign-in in the browser. In the ChatGPT desktop app the plugin
appears under the **CoreSpeed** marketplace once it has been added.

## Codex, CLI only

```bash
codex plugin marketplace add corespeed-io/cs
codex plugin add corespeed-cli@corespeed
```

This plugin registers no MCP server. Its `cs-cli` skill has the agent install
the `cs` command-line tool, sign in once in the browser, and then find and call
CoreSpeed tools from the shell (`cs mcp search`, `cs mcp get`, `cs mcp call`).
Pick it when Codex cannot load your organization's full tool list, or when you
want every call to go through the shell. It is the plugin meant for the
OpenAI Plugins Directory.

## The `cs` CLI

```bash
Expand All @@ -45,19 +59,20 @@ cs login
organizations, connects apps, and calls tools from a terminal. See the
[CLI docs](https://corespeed.io/docs/cli).

## What the plugin contains
## What the plugins contain

| Part | What it does |
| --- | --- |
| MCP server | `https://api.corespeed.io/mcp` with browser sign-in (OAuth 2.1 + PKCE). You never paste an API key. |
| `cs-cli` skill | Using the `cs` CLI: sign-in, API keys, organizations, connectors, remote MCP servers, credit. |
| `cs-api` skill | Calling CoreSpeed over HTTP from code and CI: credentials, `tools/list` and `tools/call`, error codes, credits. |
| Plugin | Part | What it does |
| --- | --- | --- |
| `corespeed` | MCP server | `https://api.corespeed.io/mcp` with browser sign-in (OAuth 2.1 + PKCE). You never paste an API key. |
| `corespeed` | `cs-cli` skill | Using the `cs` CLI: sign-in, finding and calling tools from a shell, memory, API keys, organizations, connectors, remote MCP servers, credit. |
| `corespeed` | `cs-api` skill | Calling CoreSpeed over HTTP from code and CI: credentials, `tools/list` and `tools/call`, error codes, credits. |
| `corespeed-cli` | `cs-cli` skill | The same skill, and nothing else: no MCP server is registered. |

If you added CoreSpeed to your client by hand earlier (`claude mcp add` or
`codex mcp add`), remove that entry before installing the plugin, so every
tool is registered once.

Sign-in happens at `login.corespeed.io`, and the plugin's only server is
Sign-in happens at `login.corespeed.io`, and the plugins' only server is
`https://api.corespeed.io/mcp`. Anything else claiming to be CoreSpeed is not
this plugin.

Expand Down
42 changes: 42 additions & 0 deletions plugins/corespeed-cli/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"name": "corespeed-cli",
"version": "0.1.0",
"description": "CoreSpeed from Codex through the cs command-line tool: sign in once in the browser, then search for a tool, read its schema, and call it from the shell — long-term memory shared across your agents, the tools your organization has enabled on CoreSpeed, and API keys for CI. Registers no MCP server.",
"author": {
"name": "CoreSpeed",
"email": "contact@corespeed.io",
"url": "https://corespeed.io"
},
"homepage": "https://corespeed.io/docs/cli",
"repository": "https://github.com/corespeed-io/cs",
"license": "Apache-2.0",
"keywords": [
"corespeed",
"cli",
"memory",
"agents"
],
"skills": "./skills/",
"interface": {
"displayName": "CoreSpeed CLI",
"shortDescription": "CoreSpeed tools and shared memory from the shell",
"longDescription": "CoreSpeed gives your organization one place for agent tools: long-term memory shared across agents, the tools of the apps your organization has enabled, and API keys with spend caps and an audit trail. This plugin brings it to Codex through the cs command-line tool. Sign in once in the browser; after that the agent searches for a tool, reads its schema, and calls it from the shell, with every call metered and, where your organization requires it, approved by a human first. It registers no MCP server.",
"developerName": "CoreSpeed",
"category": "Developer Tools",
"capabilities": [
"Read",
"Write"
],
"websiteURL": "https://corespeed.io",
"privacyPolicyURL": "https://corespeed.io/privacy",
"defaultPrompt": [
"Sign me in to CoreSpeed with the cs CLI and tell me which organization I am using.",
"Search my CoreSpeed memory for context on this repository before we start.",
"Find the CoreSpeed tool for this task with cs mcp search, show me its schema, then call it."
],
"brandColor": "#C2410C",
"composerIcon": "./assets/icon.svg",
"logo": "./assets/logo.svg",
"termsOfServiceURL": "https://corespeed.io/terms"
}
}
4 changes: 4 additions & 0 deletions plugins/corespeed-cli/assets/icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions plugins/corespeed-cli/assets/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading