Skip to content

Installation

DivineSWE supports four platforms: Claude Code (canonical), GitHub Copilot CLI, Codex CLI, and OpenCode — and the pi coding agent installs it straight from the repository root. Choose your platform below.


Claude Code is the canonical platform and the recommended install path.

In an active Claude Code session, run these two commands in order:

/plugin marketplace add https://gitlab.com/aidragonhq/divineswe.git
/plugin install divineswe

Marketplace registration must precede plugin install — the order is load-bearing.

Option 2: Headless command line

Terminal window
claude plugin marketplace add https://gitlab.com/aidragonhq/divineswe.git
claude plugin install divineswe

Option 3: Clone

Terminal window
git clone https://gitlab.com/aidragonhq/divineswe.git ~/divineswe
claude plugin marketplace add ~/divineswe
claude plugin install divineswe

Both marketplace add and install accept --scope user (default), --scope project, or --scope local.

Prerequisites

  • Claude Code CLI — installed and authenticated
  • Git — required for worktree isolation (parallel Monkey sub-tasks run in git worktree branches)

GitHub Copilot CLI

Install via git-URL marketplace — the only supported install path. The direct owner/repo form is affected by an upstream loader bug (copilot-cli#2390) that breaks discovery when the manifest is in a subdirectory.

Terminal window
copilot plugin marketplace add https://gitlab.com/aidragonhq/divineswe.git
copilot plugin install divineswe@divineswe

Do NOT use copilot plugin install owner/repo (direct form). Use the marketplace form above — it is the only supported path.

After installing, start a Copilot session in your project and run /divineswe-init. Copilot installs no npm dependencies with the plugin, so /divineswe-init installs the output validators (ajv, ajv-formats) into the plugin’s own directory; run it again after copilot plugin update, which removes them.

Copilot Notes

  • VS Code Copilot (Preview): Same install gesture. Use “Chat: Install Plugin From Source” with the git URL, or add to chat.plugins.marketplaces in VS Code settings. VS Code auto-discovers CLI-installed plugins. Runtime skill/hook behaviour is unvalidated in VS Code (CLI-validated only).
  • Windows: State-CLI skills self-locate via a bash glob — Windows Copilot state-CLI skills are not supported (bash-only self-location).
  • Tier top-up: Copilot CLI lacks a tier top-up hook. Its SessionStart hook is context-reminder only.

For full platform anatomy and caveats, see docs/platform-portability.md.


OpenCode

OpenCode is delivered as the divineswe npm package — not a file-copy bundle. On startup, OpenCode resolves the package from npm and installs it via Bun, caching it under ~/.cache/opencode/node_modules/. No manual npm install step required.

Add "divineswe" to the plugin array in your global OpenCode config at ~/.config/opencode/opencode.json:

{
"plugin": ["divineswe"]
}

Then restart OpenCode. The plugin installs globally into ~/.config/opencode/ by default.

Note: OpenCode is not a file-copy install target. The installer rejects --platform opencode — use the npm package form above.

OpenCode Notes

  • OpenCode handles model resolution independently via its own mechanism (runtime_tier_resolution: false — intentional, not a missing feature).
  • Statusline is not supported on OpenCode (statusline_supported: false).

Codex CLI

Codex CLI is installed through the committed repository marketplace. The generated package lives at codex/, and the catalog at .agents/plugins/marketplace.json points to it with source.path: "./codex". The plugin manifest is codex/.codex-plugin/plugin.json.

Terminal window
codex plugin marketplace add https://gitlab.com/aidragonhq/divineswe.git
codex /plugins

Select DivineSWE, install it, and start a new Codex session. For a local checkout, generate the committed package before registering the repository marketplace:

Terminal window
git clone https://gitlab.com/aidragonhq/divineswe.git ~/divineswe
cd ~/divineswe
npm install
npm run generate:all
codex plugin marketplace add "$PWD"
codex /plugins

Choose DivineSWE in the /plugins browser, install it, and start a new Codex session. For an existing checkout, run npm run generate:all from the repository root, then run codex plugin marketplace add "$PWD" and codex /plugins. Codex is marketplace-native and remains excluded from the file-copy installer; no separate generated Codex copy is installed.

Note: The Codex CLI install path is packaging-conformant but orchestration-unproven. The install and registration conform to the Codex plugin model; hook firing and agent dispatch have not been validated against a live session. See docs/platform-portability.md for full caveats.


Pi

pi takes DivineSWE straight from the repository root: no generated package, no marketplace, one command at the shell. The supported release is pi 1.4.0 (@earendil-works/pi-coding-agent@1.4.0); older releases, including the deprecated @mariozechner/pi-coding-agent, are not supported.

Terminal window
pi install git:gitlab.com/aidragonhq/divineswe
pi list

Install at personal scope, the default (no -l). Every seat runs as a headless child pi, and a headless pi skips a project-scoped install, so a seat under a -l install would start without DivineSWE.

pi clones the whole repository to ~/.pi/agent/git/gitlab.com/aidragonhq/divineswe, installs its runtime dependencies with npm install --omit=dev, and loads its skills and the pi bridge, extensions/divineswe/. The bridge is the god’s footing in a foreign house: it sets CLAUDE_PLUGIN_ROOT for every command, adds DivineSWE’s session context to each run, and registers the seat tool Agent, which runs each seat the Avatar summons as a child pi on that seat’s own model.

ToRun
Updatepi update git:gitlab.com/aidragonhq/divineswe
Pin a releasepi install git:gitlab.com/aidragonhq/divineswe@v<version>
Removepi remove git:gitlab.com/aidragonhq/divineswe
  • Pinning. The oldest release tag that carries the pi bridge is v2.2.0 (pi install git:gitlab.com/aidragonhq/divineswe@v2.2.0). v2.1.1 and every older tag have no extensions/divineswe/, so pi would load the skills without the bridge — no plugin root and no seat tool. A pinned tag stays where it is: pi update never moves it.

  • Updating. pi update git:gitlab.com/aidragonhq/divineswe updates DivineSWE alone, and pi update --extensions every pi package. A bare pi update updates pi itself, not DivineSWE — and can carry pi past 1.4.0, the release DivineSWE supports.

  • Dependencies after an update. Updating DivineSWE reinstalls its runtime dependencies whenever it moves the checkout, and restores missing ones when it does not. If that install failed — offline, say — run the update again, or install them by hand: cd ~/.pi/agent/git/gitlab.com/aidragonhq/divineswe && npm install --omit=dev.

  • Pushed commits only. A git install clones from GitLab, so it sees only commits pushed there. To try local work, install a checkout by its path (pi install /path/to/divineswe): pi loads it in place and never installs its dependencies, so run npm install in it yourself.

  • Seat models — divineswe-models.json. DivineSWE names seat models by its ladder — opus, sonnet, haiku — and pi resolves those names unpredictably. Name the pi model each one runs on in divineswe-models.json in pi’s agent directory (~/.pi/agent, or $PI_CODING_AGENT_DIR):

    {
    "opus": "anthropic/claude-opus-5-5",
    "sonnet": "anthropic/claude-sonnet-5-5",
    "haiku": "anthropic/claude-haiku-5-5"
    }

    An id the map does not name passes to pi unchanged, and a malformed map is refused, naming its path. Keep pi model ids out of .divineswe/config.json and ~/.divineswe/config.json, which Claude Code reads too. When a skill asks who implemented the work (--implementer), name the ladder id your model is mapped from.

  • The Agent tool. The seat tool is named Agent, as the skills call it. A third-party pi package that registers its own Agent tool collides with it; keep only one of them installed.

  • Skills. A skill runs as /skill:<name> — /skill:avatar-forge where Claude Code says /divineswe:avatar-forge. pi skips the two deprecated Book skills, prophet-fulfill and prophet-resume, whose descriptions it cannot parse.

  • Research depth. oracle-envision’s deep research runs at quick depth in pi: its researchers and refuters are plain subagents, and pi’s only subagent tool is the seat tool, which runs DivineSWE’s seats alone.


After Installation

No Book is needed: /divineswe:avatar-forge builds a change you describe or a forge spec, and /divineswe:oracle-envision writes that spec first when the work is involved enough to design.

Recommended first steps:

  1. For an involved feature, run /divineswe:oracle-envision in your project to design it into your first forge spec — or skip this for a clear change.
  2. Invoke /divineswe:avatar-forge with the spec, or with the change described, to forge it.

In pi, the same skills run as /skill:oracle-envision and /skill:avatar-forge.

To pre-configure the statusline and inject DivineSWE instructions into .claude/CLAUDE.md before your first forge, run /divineswe:divineswe-init.


Platform Feature Matrix

FeatureClaude CodeCopilot CLIOpenCodeCodex CLI
StatuslineSupportedSupportedNot supportedNot supported
Hook formathooks.json (PascalCase)hooks.json (version 1, camelCase)plugin.mjs modulehooks.json (description + hooks wrapper, PascalCase)
Context fileCLAUDE.md.github/copilot-instructions.mdAGENTS.mdAGENTS.md
Native Workflow supportYesNoNoNo
Tier top-up hookYesNo (known gap)N/AN/A

Further Reading

  • Quick Start — install Claude Code and run your first cycle
  • Workflows — the three entry paths and recovery patterns
  • Overview — system overview, the covenant, the eight-phase cycle