Cross-language development environment setup automation, built in Rust.
Bivvy replaces ad-hoc bin/setup scripts with declarative YAML configuration, smart state tracking, and a polished CLI.
Quick install (macOS/Linux):
curl -fsSL https://bivvy.dev/install | shHomebrew:
brew install https://raw.githubusercontent.com/bivvy-dev/bivvy/main/dist/homebrew/bivvy.rbCargo:
cargo install bivvygem:
gem install bivvypip:
pip install bivvySee Installation docs for details on each method.
cd my-project
bivvy initbivvy runbivvy status# .bivvy/config.yml
app_name: myapp
steps:
brew:
template: brew
ruby:
template: bundler
watches: [Gemfile.lock]
node:
template: yarn
watches: [yarn.lock]
db:
command: "rails db:prepare"
depends_on: [ruby]
workflows:
default:
steps: [brew, ruby, node, db]- State tracking — only re-runs what's needed
- Watch files — detects when dependencies change
- Error recovery — retry, fix, skip, or drop to shell
- Template registry — reusable, shareable step definitions
- Remote sources — central team templates via HTTP or Git
- Secret masking — sensitive values hidden in output
- Multiple output formats — human, JSON, SARIF for lint
| Command | Description |
|---|---|
bivvy run |
Run setup workflow |
bivvy init |
Initialize configuration |
bivvy status |
Show current status |
bivvy list |
List steps and workflows |
bivvy lint |
Validate configuration |
bivvy last |
Show last run info |
bivvy history |
Show execution history |
bivvy config |
Show resolved configuration |
bivvy cache |
Manage template cache |
bivvy feedback |
Capture friction points |
bivvy completions |
Generate shell completions |
bivvy completions bash > ~/.local/share/bash-completion/completions/bivvybivvy completions zsh > ~/.zfunc/_bivvybivvy completions fish > ~/.config/fish/completions/bivvy.fish| Platform | Architecture |
|---|---|
| Linux | x64, arm64 |
| macOS | x64, arm64 |
| Windows | x64 |
FSL-1.1-Apache-2.0 - Functional Source License with Apache 2.0 future license (converts to Apache 2.0 after 2 years)