Reference / Commands

solomonar init

Set up Solomonar in a repository with solomonar init. Install the framework core, runtime adapters, and extensions, and create the task registry.

On this page

Installs the framework core into the worktree containing <dir> (default: the current directory), generates the adapter files of the selected runtimes, installs the chosen extensions, writes .solomonar/manifest.json, and creates the registry branch refs/heads/workflow-state when it is absent.

When to use it

Once per repository, before the first task: in a new project or in an existing repository. Run it again after a CLI update or to resolve a file conflict; a re-run with the same choices and unchanged files is a no-op, and it never changes a recorded choice.

Who runs it

You, from your terminal. Agents do not set up projects.

Synopsis

solomonar init [<dir>] [--name <name>] [--objective <text>]
               [--runtime <claude|codex|none>]... [--ext <name|none>]...
               [--adversarial-model <runtime>=<model>]...
               [--main-branch <name>] [--remote <name>]
               [--keep <path>]... [--overwrite <path>]...
               [--git-init] [-y|--yes] [--dry-run] [--json]

Flags

Flag Meaning
<dir> Optional. The directory to set up; defaults to the current directory.
--name Project name; defaults to the directory name.
--objective Current objective written to docs/README.md.
--runtime claude, codex, or none; repeatable or comma-separated. Defaults to the runtimes found on PATH.
--ext Extensions to install, repeatable or comma-separated, or none. The catalog holds go. Defaults to go when the repository root has a go.mod, otherwise none.
--adversarial-model Model for the adversarial reviewer of one runtime, such as claude=<model>.
--main-branch, --remote Defaults: main and origin.
--keep, --overwrite Resolve one conflicting file; one path per flag.
--git-init Run git init -b <main-branch> when the directory is not a repository.
-y, --yes Accept the plan without prompts. Required without a terminal.
--dry-run Print the plan and write nothing.

Prompts

In a terminal, without --yes or --json, init asks for each choice whose flag you did not pass, shows the plan, and asks Proceed? before it writes. Each choice of a stack extension is recorded as your approved decision in docs/decisions.md and docs/stack.md. See Set up a project for a walkthrough of the prompts.

Examples

These examples come from a run of the current build in the fictional ledger project; paths are shortened to /work/ledger.

Preview the plan first; --dry-run writes nothing:

solomonar init --name ledger --runtime claude --ext none --git-init --dry-run --yes
Plan
  git        init -b main
  create     docs/solomonar/agents/adversarial-reviewer.md
  create     docs/solomonar/agents/correctness-reviewer.md
  ...
  create     AGENTS.md
  create     docs/README.md
  create     CLAUDE.md
  create     .claude/skills/solomonar/SKILL.md
  ...
  create     .solomonar/manifest.json
  registry   create refs/heads/workflow-state with an empty state.json
Would initialize solomonar 0.1.4 in /work/ledger
  29 files created

Then set up the project for both runtimes, in a repository with an origin remote:

solomonar init --name ledger --objective "Track shared household expenses" \
  --runtime claude --runtime codex --ext none --yes
Initialized solomonar 0.1.4 in /work/ledger
  39 files created
  registry  refs/heads/workflow-state @ 2be8870347892548d1c083c28a0e8c834d1327bb
  pushed    origin/workflow-state

Next:
  1. git add AGENTS.md CLAUDE.md .claude .agents .codex .solomonar docs && git commit -m "chore: initialize solomonar 0.1.4"
  2. Start a top-level session in /work/ledger with your selected outcome:
       Claude Code: /solomonar Explore the next useful flow.
       Codex:       $solomonar Explore the next useful flow.
       Portable:    Use the solomonar skill to explore the next useful flow.

Commit the files as shown before any task starts. Without a remote, init warns that the registry stays local.