Skills docs: one skill catalog for Claude Code and Codex

Import skills from GitHub once. The gateway keeps them for your account and loads the one that matches your message, in Claude Code and Codex, on any machine. Skills are in every plan.

Key facts

What it is
A skill catalog kept on the gateway for your account. The gateway loads the skill that matches your message.
Who it is for
Developers who use skills in Claude Code or Codex on more than one machine.
Clients
Claude Code and Codex. Part of Pro.
Measured result
Not measured for quality: we have not measured whether skills give better answers. In our benchmark accounts the skill list was about 760 tokens a request, read from cache.
Limits
Imports come from GitHub. A skill that loads adds its whole body to the prompt.

Where skills live

Claude Code and Codex load skills from SKILL.md files on the local disk. Context Mode keeps them on the gateway instead. Every session that goes through https://gateway.context-mode.com sees the same catalog, whatever machine or project it runs in. Nothing is written to your disk.

A skill on the gateway is a different skill from a local one with the same or a similar name. The gateway tells the model so on every request, so it does not open a local file by mistake.

Import from GitHub

Open Skills in the console.

  1. Paste a repo URL such as https://github.com/mattpocock/skills, or click one of the popular repos: vercel-labs/skills, mattpocock/skills, millionco/react-doctor.
  2. Click Preview import. The gateway finds every SKILL.md in the repo and lists each skill with its description and size. Nothing is saved yet.
  3. Click Add next to one skill, or Add all.
URL shapehttps://github.com/owner/repo, or /tree/branch/path to read one folder
skill namethe folder that holds the SKILL.md
body sizeat most 262,144 bytes per skill; a larger body is refused with the reason
large reposimport in batches; Import the next batch continues
import againupdates skills that came from GitHub

The console has no token field. If GitHub limits the read, the console says so and shows how long until you can retry.

Manage installed skills

The Installed skills list shows each skill, its description and the repo it came from. Filter it by name. Each row has an on/off switch and a Remove button. Removal asks you to confirm. To bring a removed skill back, import its repo again.

How a skill is matched

On each message, the gateway compares what you wrote with the name and description of every skill that is on. A second check decides whether you are asking for that skill now or only mention its topic. At most one skill loads per turn. If a check fails or the match is weak, no skill loads.

You can also ask for a skill by its name or a close version of it. The gateway loads it on that message.

The matcher reads the description in each SKILL.md. A skill with a clear description is easier to match.

When a skill loads, a line in the reply names it:

⏺ context-mode · skill to-tickets auto-loaded

The skill stays loaded on later turns. The line speaks again only when that changes:

Line ends withWhat happened
ended, task doneYour message ended the task
ended, idle over 6 hThe conversation was idle for more than 6 hours
ended, skills offYou turned skills off
ended, disabledThe skill was switched off on your account
still loaded, say done to end itYou came back to a skill that is still loaded

Loading a different skill also ends the current one.

Try it in 5 minutes

You report a real regression in plain words. You never name a skill, yet the right one loads, and a second one takes over when you ask for tickets.

Setup

npx @context-mode/cli      # sign in and connect Claude Code, then restart Claude Code
# In the console, open Skills, click the popular repo mattpocock/skills, click Preview import, then Add all.
# Keep clicking "Import the next batch" until all are in. You need diagnosing-bugs and to-tickets on.
git clone https://github.com/sindresorhus/slugify && cd slugify && npm install
npx ava      # all green (25 tests): the healthy baseline
python3 -c "p='index.js'; s=open(p).read(); a='|(?:${escapedSeparator})$'; assert a in s; open(p,'w').write(s.replace(a,''))"   # play the teammate: a 'tidy up' that drops one branch
git commit -am 'refactor: simplify separator cleanup'
npx ava      # now red: 7 tests fail, for example 'Déjà Vu!' gives 'deja-vu-'
claude

Prompts

Prompt 1:

Walk me through how slugify turns a title into a slug, step by step.

Prompt 2:

Since this morning our blog URLs end with a dash. 'Déjà Vu!' now comes out as 'deja-vu-' and the test suite is red. Nothing in the inputs changed. Figure out what broke and fix it. You can edit the code.

Prompt 3:

Good. Now break the follow-up work from this into tickets I can hand to the team.

Prompt 4:

Thanks, that's all done.

What you will see

# prompt 1: a question about the code, so no skill line

# prompt 2: you never typed a skill name
⏺ context-mode · skill diagnosing-bugs auto-loaded

# prompt 3
⏺ context-mode · skill to-tickets auto-loaded

# prompt 4
⏺ context-mode · skill to-tickets ended, task done

We ran this on 2026-10-02 and again on 2026-10-04 in real Claude Code sessions through the gateway with Claude Opus 5.5. Every skill line above is copied from those runs. On 2026-10-04 diagnosing-bugs loaded at prompt 2 and ended at prompt 4 with "ended, task done". With Claude Haiku 4.5 the gateway loaded diagnosing-bugs, but no skill line showed in the reply.

Why it matters. Your team's best habits (debug in order, prove the fix with the tests, split work into clean tickets) apply the moment someone describes the problem in plain words, on every machine, with nothing to install in each repo.

What it costs

Skills add tokens to your requests.

The benchmark runs had memory and skills on, so their results include this cost. We have not measured whether skills give better answers. See Benchmarks.

Turn skills off

To stop one skill, switch it off in the Installed skills list. To stop all of them, open Settings and switch Skills off. The list and every skill body leave your requests. Context Saving, Memory and Cage keep working.

Compared with other approaches

From each vendor's own pages, read on 2026-09-30.

ApproachWhere skills liveClientsHow a skill is pickedRollout to a team
Context ModeThe gateway, imported from any GitHub repository with SKILL.md filesClaude Code and CodexThe gateway compares your message with each skill, runs a second check, loads at most one per turn and names it in the replyOne catalog per account. No team roles yet.
Claude Code skillsSKILL.md folders: personal, project, plugin, or the managed settings folder. Skills can also sync from claude.ai.Claude CodeThe model loads a skill when its description fits, or you type its nameCommit it to a repository, ship it in a plugin, or deploy it through managed settings to "All users on machines where your organization deploys it"
Claude Code plugin marketplacesA catalog in a git repository, a URL or a local pathClaude CodeAs above, once installedManaged settings register a marketplace and install plugins on every machine. "Users can't override them."
Codex skills.agents/skills in the repository, a personal folder, and an admin folder, /etc/codex/skillsCodexThe model, from the skill's description, or you name itCheck skills into the repository, or into the admin folder on each machine or container
PortkeyA gateway, hosted or self-hostedClients of the gatewaySyncs team skills to SKILL.md filesThrough Portkey's admin
LiteLLMA proxy you hostClients of the proxyRuns a Claude Code plugin marketplaceThrough LiteLLM's admin

Where Context Mode differs. One catalog reaches Claude Code and Codex on every machine that uses the account, with nothing to copy into each repository or folder. The gateway, not the model, decides when a skill loads, and the reply names it, so you can see which skill shaped an answer.

Where they are stronger. Claude Code and Codex load skills with no third party, from an open format. Managed settings and plugin marketplaces reach every machine in an organization and cannot be switched off by a user. A skill in the repository is reviewed in git like code. We have not measured whether skills give better answers.

FAQ

Do I still need SKILL.md files on each machine?

No. The gateway keeps the catalog for your account, so a machine gets it once it is connected.

How does the gateway pick a skill?

It compares each message with the name and description of every skill you have on. A weak match loads nothing.

How do I know which skill loaded?

A line in the reply names it.

Can I turn skills off?

Yes. Switch them all off in Settings, under "What your agent gets", or one at a time on the Skills screen.

Compared with other tools: see the landscape.