Bootstrap a process-first AI coding environment for Codex, Claude Code, and OpenCode.
agent-bootstrap gives you a shared superpowers workflow, role-based subagents, token-efficient execution, and multilingual setup docs for modern AI coding tools.
- Shared
superpowersworkflow across Codex, Claude Code, and OpenCode instead of maintaining separate prompt stacks for each tool. - Role-based subagents and a shared prompt corpus so planning, implementation, review, verification, and release work stay consistent.
- Token-efficient, process-first execution that reduces wasted context by pushing teams toward scoped work, clear handoffs, and reusable skills.
- Native harness adapters instead of one generic installer hack:
- Codex gets managed
.codexfiles plus latestsuperpowers - Claude Code gets a plugin marketplace entry plus generated agent plugin package
- OpenCode gets generated agents plus native plugin wiring
- Codex gets managed
- Public-safe baseline that avoids shipping credentials, private MCP endpoints, personal paths, or machine-specific trust state.
- Multilingual onboarding so English, Korean, Japanese, and Simplified Chinese readers can start from the same repository.
This repository is the source of truth for a shared operating model that can be installed into multiple coding harnesses instead of being tied to Codex alone.
It is aimed at teams and individual developers who want one reusable bootstrap for:
- Codex
- Claude Code
- OpenCode
It also documents how to integrate those tools into OpenClaw, but OpenClaw is intentionally treated as an integration layer rather than a first-class bootstrap target.
If the user says "set this up from the repo" and does not specify a harness, default to shared-core-only.
shared-core-only means:
- install or update
superpowersif the current tool supports it - install the shared constitution and agent/subagent prompts in the current tool's native format
- avoid picking a new harness, ACP backend, gateway, or provider stack unless the user explicitly asks for it
This matters most for OpenClaw-style setup requests. The correct default is not Codex-first, Claude-first, or OpenCode-first. The correct default is the shared prompt and skills layer only.
- Codex:
current-harness-only - Claude Code:
current-harness-only - OpenCode:
current-harness-only - OpenClaw:
shared-core-only
current-harness-only means: if you are already inside Codex, Claude Code, or OpenCode and the user says "set this up from the repo", default to configuring only that current harness. Do not configure another harness unless the user explicitly asks.
These copy-paste prompts are the fastest way to keep another agent inside the intended scope:
- Codex current harness only: prompts/setup-codex-current-harness.md
- Claude Code current harness only: prompts/setup-claude-current-harness.md
- OpenCode current harness only: prompts/setup-opencode-current-harness.md
- Generic shared core setup: prompts/setup-shared-core.md
- OpenClaw shared core only: prompts/setup-openclaw-shared-core.md
- OpenClaw ACP integration: prompts/setup-openclaw-acp.md
Codex session opener for standing delegation preference:
In this session, you may use sub-agents or parallel agents for independently separable work when that clearly improves efficiency. This is permission, not a requirement: if the work is small, tightly coupled, immediately blocking, or the delegation overhead is not worth it, stay local instead.
- Codex: docs/README.codex.md
- Claude Code: docs/README.claude.md
- OpenCode: docs/README.opencode.md
- OpenClaw integration: docs/README.openclaw.md
The repository is split into two layers:
- shared core
AGENTS.mdagents/*.mdshared/agent-metadata.json- common process-first constitution and role prompt bodies
- harness adapters
.codex/.claude-plugin/.opencode/
The shared core defines the operating model once. Each adapter translates that core into the native format expected by the target harness.
This bootstrap is built around obra/superpowers.
- Codex uses the native
~/.agents/skills/superpowerssymlink pattern. - OpenCode uses the native plugin line
superpowers@git+https://github.com/obra/superpowers.git. - Claude Code is split into:
- upstream official
superpowersfor the skills library - this repository's Claude plugin package for the shared agent prompts
- upstream official
The intent is to reuse upstream superpowers instead of copying the skill library into this repository.
AGENTS.md- shared constitution template
agents/- shared role prompt bodies
shared/agent-metadata.json- shared descriptions and OpenCode capability metadata
.codex/- Codex installer, templates, and install guide
.opencode/- OpenCode installer, templates, and install guide
.claude-plugin/marketplace.json- repository-level Claude marketplace entry
plugins/process-first-agents/- generated Claude plugin package
scripts/render_claude_plugin.py- rebuilds the Claude plugin package from the shared prompt corpus
docs/- harness-specific guides, repository metadata guidance, and OpenClaw notes
tests/- Python verification for installers, plugin metadata, and README expectations
GitHub repository discoverability is driven more by repository metadata than by classic web SEO.
This repository improves discoverability through:
- a keyword-rich canonical README
- multilingual README variants
- GitHub repository description and topics
- documented social preview guidance in docs/repo-metadata.md
This repository should contain only the baseline setup that is safe to share publicly.
Keep these out:
- private MCP endpoints
- personal project paths
- organization-specific secrets
- machine-specific trust configuration
- credentials, tokens, or auth state
- Codex and OpenCode: re-run the harness installer after pulling
- Claude Code: re-run
python3 scripts/render_claude_plugin.py --partner-name "<Name>"after pulling, then update the local plugin installation
Some files from the earlier Codex-only bootstrap still exist during the transition:
codex-home/scripts/install.pyscripts/install.shprompts/fresh-install.md
They are compatibility entrypoints, not the long-term multi-harness architecture.
Installer and metadata tests use Python's unittest:
python3 -m unittest discover -s tests -p 'test_*.py'