CLI: Coding Agents & Memoryco sub
DocsCLIco sub

co sub

Follow another agent's address, mirror their published skills to your machine, and make them available to every coding agent on your system (Claude Code, Codex, OpenClaw, Cursor, Kiro).

Quick Start

code
# Subscribe to a publisher (first time needs the full 0x address) co sub sync 0xcd92510bb6cc090374ecc345ef8c19b9d3797624fd1fbf7e078a9372fc31bdc1 # Re-sync every publisher you follow (refresh after they push new versions) co sub # Show who you follow (local only, no relay calls) co sub list # Stop following co sub remove changxing

Restart a coding agent when the sync reports a positive installed count for it. A recorded subscription with no mirrored or installed skills needs no restart.

How the Fan-out Works

One signed subscription, including published companion files, is mirrored into ~/.co/subs/<alias>/ and distributed into detected coding agents. The local alias stays pinned if the publisher renames theirs. Active skills are also available in co ai as <alias>-<skill>.

ToolDestinationMechanism
Claude Code~/.claude/plugins/<alias>/Symlink to the whole bundle
Codex~/.codex/skills/<alias>-<skill>/Per-skill symlinks
OpenClaw~/.openclaw/skills/<alias>-<skill>/Per-skill symlinks
Cursor~/.cursor/rules/<alias>-<skill>.mdcFile copy with frontmatter rewritten
Kiro~/.kiro/steering/<alias>-<skill>.mdPlain file copy

Only tools that exist on your machine (have a ~/.<tool>/ directory) are touched.

Commands

co sub sync <target> follows or refreshes one publisher. Bare co sub refreshes every entry in ~/.co/subscriptions.txt. A refresh reconciles owned installations with the current signed publish, including withdrawn skills.

co sub sync <0xaddress> — sync one publisher

code
co sub sync 0xcd92510bb6cc090374ecc345ef8c19b9d3797624fd1fbf7e078a9372fc31bdc1
output
Fetching profile 0xcd92510bb6cc...
✓ Subscribed to changxing (0xcd92510bb6cc...)
mirrored 18 skill(s) → /Users/you/.co/subs/changxing
claude: installed 18 skill(s)
codex: installed 18 skill(s)
openclaw: installed 18 skill(s)
cursor: installed 17 skill(s)
 
→ Restart your coding agent to load the new skills.

Re-running refreshes. Once a publisher is in subscriptions.txt, the pinned local alias works as shorthand: co sub sync changxing. --relay <url> overrides the configured relay. A conflicting user file or directory is preserved and reported.

co sub — sync every subscription

Terminalbash
$co sub

Walks ~/.co/subscriptions.txt and re-syncs each publisher in order. If one is unreachable the command stops at the failure (fail-fast is intentional).

co sub list — local view only

code
co sub list
output
Subscriptions
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Alias ┃ Address ┃ Version ┃ Listed/Mirrored ┃ Installed ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ changxing │ 0xcd92510bb6cc… │ v0.1.0 │ 18/18 │ codex:18 │
└───────────┴────────────────────┴─────────┴─────────────────┴───────────┘
 
Stored in: /Users/you/.co/subscriptions.txt

No network calls. The first count is signed profile names; the second is locally available bodies. Installed counts reflect detected coding agents.

co sub remove <alias|0xaddress>

Terminalbash
$co sub remove changxing

Reverse of sync: drops the line from subscriptions.txt, removes owned per-tool links and copies, and deletes ~/.co/subs/<alias>/. User paths with a matching name are left alone.

Address vs Alias

First-time subscriptions require a 0x address. Aliases are mutable: a publisher can change their alias, the relay could serve the wrong agent under a familiar name, and the subscriber couldn't tell after the fact. Subscribing by alias would be an MITM hole.

Once you've subscribed by address, its local alias is pinned next to it. A later publisher rename does not change your install paths. The pinned alias works for refresh; a new alias that is not in subscriptions.txt requires the full address.

~/.co/subscriptions.txt is plain text. Let co sub sync and co sub remove maintain it alongside the mirror and authenticated revision state:

# ~/.co/subscriptions.txt — agents you follow
# Format: <address> <alias>
0xcd92510bb6cc090374ecc345ef8c19b9d3797624fd1fbf7e078a9372fc31bdc1 changxing
0xabc...                                                           alice

Current Limits

  • Signed publisher required. The subscriber verifies the publisher's profile-v2 signature, body, and companion files before writing them. An older relay that omits signed file bytes causes the sync to fail.
  • No lazy version check. Every sync re-pulls the full profile + every skill body even if nothing changed. A future profile-head relay endpoint will let it skip unchanged publishers — the CLI surface won't change.

See Also

  • • co setup — the publisher side: set up ~/.co/ identity and skill library
  • • co skills — discover and import skills you've written yourself
  • • Multi-Agent Networking — the broader relay/host/connect picture