opencode, Antigravity, Pi, and other agents that read skills
Add Cranes to agents that read Agent Skills, keep your Cranes skills synced into them with the cranes command, and run guidance per prompt where the agent allows it.
Agents that read Agent Skills, folders with a SKILL.md in them, can use Cranes in three parts: the Cranes connection, the Cranes skill that tells the agent when to call Cranes and what to save, and the cranes command that copies your own Cranes skills into the agent.
For Claude Code, Cursor, and Codex, use their own pages instead: Claude Code, Cursor, Codex.
What’s automatic, and what depends on the agent
- Your thinking on each prompt: the agent decides, guided by the Cranes skill. None of these agents offers a way to add Cranes’s guidance to every prompt on its own.
- Your skills: synced when the agent starts a session in opencode; elsewhere, run the sync yourself when your skills change.
- Saving: the agent offers, and keeps nothing without your yes.
Set up the cranes command
The command, the skill, and the steps below come from a copy of Cranes’s code for now; they aren’t published as a package yet. From a checkout of the repository, in a terminal:
mkdir -p ~/.cranes && cp pikespeak/plugins/core/cranes.py ~/.cranes/cranes.py
python3 ~/.cranes/cranes.py login
Your browser opens Cranes; choose what it may use and choose Allow. This sign-in is shared with the Cranes plugins for Claude Code, Cursor, and Codex on your computer.
To copy your Cranes skills into an agent:
python3 ~/.cranes/cranes.py skills sync --dir <the agent's skills folder>
Without --dir, they go to ~/.agents/skills. Each skill becomes a folder named cranes- and the skill’s name. A copy you edit is never overwritten; the command says so, and the agent can offer to save your edit back to Cranes. Copies of skills you removed from Cranes are removed unless you edited them, and folders Cranes didn’t write are never touched.
opencode
-
Add the Cranes skill:
mkdir -p ~/.agents/skills && cp -R pikespeak/plugins/skills/cranes ~/.agents/skills/cranes. -
Add Cranes to
opencode.json, then runopencode mcp auth cranesto sign in:{ "$schema": "https://opencode.ai/config.json", "mcp": { "cranes": { "type": "remote", "url": "https://usecranes.com/connect/mcp", "enabled": true, "oauth": {} } } } -
Sync your skills: opencode reads
~/.agents/skills, sopython3 ~/.cranes/cranes.py skills syncis enough. To sync whenever a session starts, save this as~/.config/opencode/plugins/cranes.js:export const Cranes = async ({ $ }) => ({ event: async ({ event }) => { if (event.type === "session.created") { await $`python3 ${process.env.HOME}/.cranes/cranes.py skills sync`.quiet().nothrow() } }, })
Google Antigravity
-
Add the Cranes skill and your skills to Antigravity’s skills folder,
~/.gemini/config/skillsfor Antigravity 2.0 and the IDE (for the CLI, use~/.gemini/antigravity-cli/skills):cp -R pikespeak/plugins/skills/cranes ~/.gemini/config/skills/cranes python3 ~/.cranes/cranes.py skills sync --dir ~/.gemini/config/skills -
Add Cranes to
~/.gemini/config/mcp_config.json. Antigravity needs theserverUrlfield, and signs you in on its own:{ "mcpServers": { "cranes": { "serverUrl": "https://usecranes.com/connect/mcp" } } }
Antigravity has no hook that runs when a session starts, so run the sync again when your skills change.
Pi
-
Add the Cranes skill:
mkdir -p ~/.agents/skills && cp -R pikespeak/plugins/skills/cranes ~/.agents/skills/cranes. -
Add Cranes and sign in:
pi mcp add cranes --url https://usecranes.com/connect/mcp pi mcp login cranesOr add it to
~/.pi/agent/mcp.jsonas{ "mcpServers": { "cranes": { "url": "https://usecranes.com/connect/mcp" } } }, and sign in from/mcpin a session. -
Sync your skills: Pi reads
~/.agents/skills, sopython3 ~/.cranes/cranes.py skills syncis enough. Run it again when your skills change.
Any other agent
- Copy
pikespeak/plugins/skills/cranesinto the agent’s skills folder. - Add
https://usecranes.com/connect/mcpas a remote MCP server with OAuth. See Any other AI that supports MCP. - Run
python3 ~/.cranes/cranes.py skills sync --dir <its skills folder>.
If your agent has a hook that runs on each prompt and passes a command’s output to the model, run python3 ~/.cranes/cranes.py guidance there with the prompt as input. It prints the part of your thinking that bears on the prompt, or nothing, and never makes the hook fail. Then Cranes comes in on every prompt, as it does with the Claude Code and Codex plugins.