Installation
Prerequisites
Section titled “Prerequisites”-
Node.js 22+: used for installing and building.
-
Bun: the built CLI executes under Bun (the bundled
dist/index.jsships 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.
Install from source (recommended)
Section titled “Install from source (recommended)”The repository is the up-to-date source of truth:
git clone https://github.com/jaltez/openloop.gitcd openloopnpm installnpm run buildnpm link # puts `openloop` on your PATHVerify:
openloop --versionopenloop doctor # checks prerequisites, providers, and daemon healthInstall from npm
Section titled “Install from npm”npm install -g openloopDevelopment setup
Section titled “Development setup”If you want to hack on OpenLoop itself:
npm run check # type-checknpm test # vitest unit + integration suitesnpm run build # build dist/ with BunWhat gets installed where
Section titled “What gets installed where”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.jsonlSet the OPENLOOP_HOME environment variable to relocate all of it (see environment variables).
Uninstall
Section titled “Uninstall”openloop service stopnpm rm -g openloop # or: in the cloned repo, `npm unlink`rm -rf ~/.openloop # optional: global statePer-repository .openloop/ directories are left untouched; remove them manually if you want.