What is SKILL.md, and why is setup one line?
SKILL.md is the root file of an agent skill: a name, a description and instructions. CoreSpeed publishes its setup as one, so a single chat line installs it.

SKILL.md is the file at the root of an agent skill: a folder your agent loads at the start of a session, holding a short frontmatter (name, description) and instructions in Markdown. CoreSpeed publishes its setup as a skill at https://corespeed.io/SKILL.md, which is why the whole setup is one chat line: set up https://corespeed.io/SKILL.md.
- 1Fetch the skillhttps://corespeed.io/SKILL.mdDownloaded verbatim, never written from memory.
- 2Add the MCP server at user scopehttps://api.corespeed.io/mcpApplies to every project. Browser sign-in by default; no headers written.
- 3Headless or CI only: use an API keyCORESPEED_API_KEYRead from the environment, never written into a config file.
- 4Save the skillthe user-level skills directoryLoads in every future session, in every client that reads skills.
- 5Add four standing rules~/.claude/CLAUDE.md or ~/.codex/AGENTS.mdPrefer connectors, ask to connect, search memory first, follow the user.
- 6Sign in and verifymanage__whoamiThen list the tools and ask which apps to connect at Dashboard: Connectors.
What is the Agent Skills format?
A skill is a folder named for the skill with a SKILL.md inside. The file starts with YAML frontmatter. name is the identifier. description says what the skill does and when the agent should use it; the agent reads the description to decide whether to load the rest. Everything after the frontmatter is the instructions, in plain Markdown, that the agent follows when the skill is active.
Claude Code, Codex, Cursor, OpenClaw and Hermes each read skills from a user-level directory. The format is the same file in a different path, which is what makes one published file usable across clients.
CoreSpeed's skill carries two more fields under metadata: a version and a canonical URL. An agent that holds an older copy and is handed the URL downloads the URL anyway, and follows the copy with the higher version.
What happens when you send the setup line?
You give your agent one line in chat, in any client: set up https://corespeed.io/SKILL.md. The agent fetches the file and follows it. The steps are:
- Add the MCP server
https://api.corespeed.io/mcpat user scope, so it applies to every project. Browser sign-in is the default; no headers are written. - Only for a headless client or CI: use an API key, read from the
CORESPEED_API_KEYenvironment variable rather than written into a config file. - Save the skill, unchanged, in the user-level skills directory so it loads in every future session.
- Add four standing rules to the user-level memory file,
~/.claude/CLAUDE.mdfor Claude Code or~/.codex/AGENTS.mdfor Codex. - Finish the sign-in and verify with
manage__whoami. - List the tools and ask which apps to connect at Dashboard → Connectors.
The agent does the file edits. In the Claude app (claude.ai, Claude Desktop, mobile) the agent cannot change its own settings, so it walks you through adding the custom connector and uploading the skill as a ZIP.
Where does the skill live for each agent?
| Agent | Path |
|---|---|
| Claude Code | ~/.claude/skills/corespeed/SKILL.md |
| Codex | ~/.agents/skills/corespeed/SKILL.md |
| Cursor | ~/.cursor/skills/corespeed/SKILL.md |
| OpenClaw | ~/.openclaw/skills/corespeed/SKILL.md |
| Hermes | ~/.hermes/skills/corespeed/SKILL.md |
| Other | ~/.agents/skills/corespeed/SKILL.md where supported |
The skill tells the agent to download the file rather than write it from memory, because a fetch tool that summarizes a page cannot return it verbatim, and a summary is a different file. For Claude Code the save is:
mkdir -p ~/.claude/skills/corespeed
curl -fsSL https://corespeed.io/SKILL.md -o ~/.claude/skills/corespeed/SKILL.md
What are the standing rules?
The skill loads when a task matches its description. The standing rules hold even when it does not, because they live in the user-level memory file the client reads in every project. They are four short lines:
- When a task needs an external tool or service, check and prefer CoreSpeed connectors.
- If a needed connector is not connected yet, ask the user to connect it at Dashboard → Connectors.
- At the start of each non-trivial task, search CoreSpeed memory with
memory__search_memorybefore planning; after significant work, save durable decisions withmemory__remember. - If the user prefers a different way of doing something, follow their preference.
The memory rule is the one that pays off across sessions. The memory page describes what belongs there: a preference, a product decision, a named relationship, an operating constraint.
Why ship setup as a skill rather than a page of instructions?
A page of instructions is read once, by a person, who then types commands. A skill is read by the agent, at the moment it matters, every time. Three things follow.
The setup is the same in every client. The skill names the command for Claude Code, Codex, Cursor, Copilot in VS Code and any client with an mcpServers map, and the agent picks the one that applies.
The skill stays after setup. Its description says when to use CoreSpeed: when a task needs an external app, something remembered across sessions, generated media, or live web or social data, and no tool for it is connected yet. So the agent reaches for the right tool later, without being told again.
The skill carries the operating knowledge too: branch on isError before reading a result, needs_reauth means reauthorize in the dashboard and nothing in the config is wrong, memory and discovery are free, start a big job with a small batch and say what it cost. Those are the things a page of setup steps leaves out and an agent needs most.
What if the skill goes stale?
The latest version lives at https://corespeed.io/SKILL.md. The skill tells the agent: if a step no longer matches what you see, fetch that URL and replace your saved copy before continuing. The metadata.version field makes the comparison exact. When two copies share the same canonical, the higher version wins.
For how the server itself works once connected, see the MCP page. The Introducing CoreSpeed post explains why one server carries connectors, memory, media, web and social.
FAQ
Is the setup line a shell command? No. It is a line you type to your agent in chat. The agent runs the shell commands.
Does the skill contain my API key? No. The skill is a public file. A key, when one is needed, lives in the CORESPEED_API_KEY environment variable, and the server entry reads the variable.
Does the skill work in claude.ai? The agent cannot edit its own settings there. You add the custom connector and upload the skill as a ZIP under Customize → Skills, with the agent guiding each step.
Why user scope and never project scope? A project-local entry applies to one repository. A user-scope entry applies to every project, and a second corespeed entry would collide on tool names.