Register Circle in skills.sh / npx skills
Circle already consumes the universal Agent Skills layout (.agents/skills in
the workspace folder, and ~/.agents/skills), same as Amp /
Cursor / Codex / Cline. src/skills.ts lists every folder it reads. Until Circle is listed
as its own agent in vercel-labs/skills,
install with any agent that writes that layout:
npx skills add <owner/repo> --skill <name> -a amp -y
Any skill package works as the install target; the skill name is incidental.
Proposed upstream agent entry
There is no local agent registry under ~/.agents — agents are hardcoded in
vercel-labs/skills. To add Circle there (same pattern as open PRs for other agents;
the paths below are in that repository, not in Circle’s):
- Add
| 'circle'toAgentTypeinsrc/types.ts - Add to the
agentsmap insrc/agents.ts:
circle: {
name: "circle",
displayName: "Circle",
skillsDir: ".agents/skills",
globalSkillsDir: join(home, ".circle/skills"),
detectInstalled: async () => {
return existsSync(join(home, ".circle"));
},
},
- Run
pnpm run -C scripts validate-agents.tsandpnpm run -C scripts sync-agents.ts
After that lands:
npx skills add <owner/repo> --skill <name> -a circle -y
| Scope | Path |
|---|---|
| Project | ./.agents/skills/ |
Global (-g) |
~/.circle/skills/ (Circle reads skills/ in its data folder, so this holds while CIRCLE_HOME is the default) |
skillsDir === '.agents/skills' makes Circle a universal agent (canonical project
layout, no per-agent symlink). Circle also discovers ~/.agents/skills and
.agent/skills, so installs via -a amp / -a cursor remain visible without
re-install.