Skip to content

Installation

  • Node.js 22+: used for installing and building.

  • Bun: the built CLI executes under Bun (the bundled dist/index.js ships with a Bun shebang). Install it from bun.sh if you don’t have it:

    Terminal window
    curl -fsSL https://bun.sh/install | bash
  • git: OpenLoop is git-native (branches, optional worktrees, PR creation).

  • A coding-agent CLI on PATH: Pi is the default provider. Alternatives (Claude Code, Aider, Codex, OpenCode) are optional; check what OpenLoop can find:

    Terminal window
    openloop config list-providers

API keys are not managed by OpenLoop. Each agent tool keeps its own credentials in its own config; OpenLoop only spawns the binary.

The repository is the up-to-date source of truth:

Terminal window
git clone https://github.com/jaltez/openloop.git
cd openloop
npm install
npm run build
npm link # puts `openloop` on your PATH

Verify:

Terminal window
openloop --version
openloop doctor # checks prerequisites, providers, and daemon health
Terminal window
npm install -g openloop

If you want to hack on OpenLoop itself:

Terminal window
npm run check # type-check
npm test # vitest unit + integration suites
npm run build # build dist/ with Bun

OpenLoop keeps global state under ~/.openloop/:

~/.openloop/
├── config.json # global configuration
├── projects.json # registry of linked projects
└── run/ # daemon runtime state
├── daemon.pid
├── daemon-state.json
├── daemon.log
└── events.jsonl

Set the OPENLOOP_HOME environment variable to relocate all of it (see environment variables).

Terminal window
openloop service stop
npm rm -g openloop # or: in the cloned repo, `npm unlink`
rm -rf ~/.openloop # optional: global state

Per-repository .openloop/ directories are left untouched; remove them manually if you want.