From oo
Use when the user wants to start, scaffold, or create their `oo` publishable identity. Triggers on phrases like "init my agent", "set up oo", "make my Claude/Codex setup publishable", "create agent.json", "start a new oo bundle".
How this skill is triggered — by the user, by Claude, or both
Slash command
/oo:oo-initThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
There is **no bundle directory**. The user's `~/.co/` IS the bundle:
There is no bundle directory. The user's ~/.co/ IS the bundle:
~/.co/keys/agent.key identity
~/.co/keys.env managed-key auth
~/.co/agent.json publishable profile (alias, bio, version)
~/.co/skills/ skill library (sources from claude/codex/cursor/kiro)
~/.co/skills/index.json discovery cache
All four are created and refreshed by one command: co setup. This skill
just gathers the right inputs and shells out.
co setup --help >/dev/null && co skills --help >/dev/null \
|| { echo "MISSING: pip install -U connectonion"; exit 1; }
Ask the user for two things (or infer + confirm):
git config user.name | tr '[:upper:]' '[:lower:]' | tr -d ' ' or $USER. Must be lowercase, alphanumeric + hyphens.Mention but don't block on co auth — publishing works without managed-key auth; only the co/* models require it.
co setupco setup --name <alias> --bio "<one-line bio>"
That single command:
~/.co/keys/agent.key (via co init in a tmpdir) if missing.~/.co/agent.json with the signing address, alias, bio, and skill metadata. Skips profile creation if a profile already exists unless you pass --force (which backs up to agent.json.bak).co skills discover && co skills copy --all && co skills manifest to populate the library and merge skill metadata into agent.json. Idempotent — existing skills are not overwritten without --force. New skill entries default to publish: false.If ~/.co/agent.json already exists with a different alias/bio, surface
the conflict to the user before passing --force — don't clobber silently.
If they're scripting (e.g. a clean test setup), --no-skills skips the
library refresh.
The CLI prints a summary. Add the publishing hint if not obvious:
✓ Setup complete. Your identity is at ~/.co/agent.json.
Next:
• Browse your library: co skills list
• Edit bio if needed: $EDITOR ~/.co/agent.json
• Publish: run the oo-publish skill
mkdir a separate bundle directory. There is no bundle dir. Everything lives in ~/.co/. The "bundle" abstraction was deleted on purpose.co setup in bash. If you find yourself writing mkdir, cat > agent.json, cp ~/.claude/skills/..., or python -c "from connectonion import address" blocks, stop. The logic lives in connectonion/cli/commands/setup_commands.py and is the single source of truth.co setup copies every discoverable skill into the user's library. Picking which ones go into the announced profile is oo-publish's job.agent.json here. Signature is a publish-time concern.--force without telling the user. A backup is made, but a noisy confirmation prevents accidental loss.Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub openonion/oo --plugin oo