Run AI coding agents β Claude Code, Codex, OpenCode, Kimi Code, or Pi β in an
isolated Docker container per project. One Go binary (vibrate, alias vb), a
declarative .vb file that pins your setup, and a wizard that fills the gaps.
Claude Code is the primary, fully-exercised harness. Codex, OpenCode, Kimi Code, and Pi are wired in and usable, but experimental β expect rough edges and please file issues.
.vb β harness, profile, extensions, mounts, and LLM provider in one TOML file. Gitignored automatically once it holds credentials; an existing .gitignore is always updated. Replayed on every run.--no-wizard.minimal / backend / frontend / full, fine-tuned with --with / --no.--extensions.PATH β gopls, basedpyright, and typescript-language-server, baked into the profiles that need them.--no-yolo restores prompts, and --dind removes the boundary entirely.Grab the asset for your OS/arch from the latest release
β vibrate_<version>_<os>_<arch>, built for Linux and macOS on amd64/arm64 β then:
chmod +x vibrate_*_*_*
sudo mv vibrate_*_*_* /usr/local/bin/vibrate
vibrate --version
Windows isnβt built natively β run the
linux/amd64binary under WSL2.
Needs Go and just. just install
compiles the binary, puts it on your $PATH, adds the vb alias, and registers
shell completion.
git clone https://github.com/wlame/vibrator.git
cd vibrator
just install # β /usr/local/bin (sudo); or: just install ~/.local/bin
cd ~/my-project
vibrate # or `vb` β wizard fills the gaps, builds the image, drops you in
The first run writes a .vb file capturing your choices; every run after that
reuses the container and jumps straight in. An existing .gitignore always gets
a .vb entry added; a missing one is created only once the file holds
credentials.
vibrate --harness=codex --profile=backend # pick an agent + stack
vibrate --extensions=ecc-developer # add a curated bundle
vibrate shell # a plain shell instead of the agent
vibrate reconfigure # re-run the wizard, keep credentials
See the CLI reference for every command and flag.
just # list all recipes
just build # build ./build/vibrate (native platform)
just build-all # cross-compile every supported platform
just test # unit tests with the race detector
just ci # what CI runs: lint + test + build
Releases are drafted in the GitHub UI; CI builds the per-platform binaries and attaches them. The documentation has the full development and release guide, plus an architecture overview.
MIT β see LICENSE.