Skip to content

Built-in Templates

Bivvy includes 45+ built-in templates for common development tools. When you run bivvy init, these are auto-detected based on files in your project.

System Package Managers

TemplatePlatformsDetectsCommand
brewmacOS, LinuxBrewfilebrew bundle install
aptLinuxapt-get availablesudo apt-get install -y
yumLinuxyum availablesudo yum install -y
pacmanLinuxpacman availablesudo pacman -S --noconfirm

Windows Package Managers

TemplatePlatformsDetectsCommand
chocolateyWindowschoco availablechoco install -y
scoopWindowsscoop availablescoop install

Version Managers

TemplatePlatformsDetectsCommand
misemacOS, Linux, Windows.mise.toml, mise.tomlmise install
asdfmacOS, Linux.tool-versionsasdf install
voltamacOS, Linux, Windowsvolta availablevolta install node
nvmmacOS, Linux.nvmrcnvm install
fnmmacOS, Linux, Windows.nvmrc, .node-versionfnm install
rbenvmacOS, Linux.ruby-versionrbenv install
pyenvmacOS, Linux.python-versionpyenv install

Ruby

TemplatePlatformsDetectsCommand
bundlermacOS, Linux, WindowsGemfilebundle install
rails-dbmacOS, Linux, Windowsbin/rails, config/routes.rbbin/rails db:prepare

Node.js

TemplatePlatformsDetectsCommand
yarnmacOS, Linux, Windowsyarn.lockyarn install
npmmacOS, Linux, Windowspackage-lock.jsonnpm install
pnpmmacOS, Linux, Windowspnpm-lock.yamlpnpm install
bunmacOS, Linux, Windowsbun.lockbbun install
nextmacOS, Linux, Windowsnext.config.js, next.config.mjsnpm run dev
vitemacOS, Linux, Windowsvite.config.ts, vite.config.jsnpm run dev
remixmacOS, Linux, Windowsremix.config.jsnpm run dev

Python

TemplatePlatformsDetectsCommand
pipmacOS, Linux, Windowsrequirements.txtpip install -r requirements.txt
poetrymacOS, Linux, Windowspoetry.lockpoetry install
uvmacOS, Linux, Windowsuv.lockuv sync
djangomacOS, Linux, Windowsmanage.pypython manage.py migrate
alembicmacOS, Linux, Windowsalembic.inialembic upgrade head

Rust

TemplatePlatformsDetectsCommand
cargomacOS, Linux, WindowsCargo.tomlcargo build
version-bumpmacOS, Linux, Windowscargo set-version

version-bump

Bumps the version in Cargo.toml and updates Cargo.lock. Requires cargo-edit (cargo install cargo-edit).

Input: bump (required) — patch, minor, major, or an explicit semver string like 1.5.0.

Three ways to provide the bump value:

  1. Interactive prompt — add a prompts: section to your step config
  2. Template inputinputs: { bump: "minor" } in your step config
  3. Environment variableBUMP=minor bivvy run --workflow release
steps:
version-bump:
template: version-bump
prompts:
- key: bump
question: "Version bump type"
type: select
options:
- label: "Patch (x.y.Z)"
value: patch
- label: "Minor (x.Y.0)"
value: minor
- label: "Major (X.0.0)"
value: major

Java

TemplatePlatformsDetectsCommand
mavenmacOS, Linux, Windowspom.xmlmvn install
spring-bootmacOS, Linux, Windowsapplication.properties, application.yml./gradlew bootRun

.NET

TemplatePlatformsDetectsCommand
dotnetmacOS, Linux, Windows*.sln, *.csprojdotnet restore

Dart / Flutter

TemplatePlatformsDetectsCommand
dartmacOS, Linux, Windowspubspec.yamldart pub get
fluttermacOS, Linux, Windowspubspec.yaml (with Flutter SDK)flutter pub get

Deno

TemplatePlatformsDetectsCommand
denomacOS, Linux, Windowsdeno.json, deno.jsoncdeno cache

Go

TemplatePlatformsDetectsCommand
gomacOS, Linux, Windowsgo.modgo mod download

Swift

TemplatePlatformsDetectsCommand
swiftmacOS, LinuxPackage.swiftswift package resolve

Database Migrations

TemplatePlatformsDetectsCommand
rails-dbmacOS, Linux, Windowsbin/rails, config/routes.rbbin/rails db:prepare
prismamacOS, Linux, Windowsprisma/schema.prismanpx prisma migrate dev
dieselmacOS, Linux, Windowsdiesel.tomldiesel migration run
alembicmacOS, Linux, Windowsalembic.inialembic upgrade head

Containers & Orchestration

TemplatePlatformsDetectsCommand
docker-composemacOS, Linux, Windowscompose.yml, docker-compose.ymldocker compose up -d
helmmacOS, Linux, WindowsChart.yamlhelm dependency build

Infrastructure as Code

TemplatePlatformsDetectsCommand
pulumimacOS, Linux, WindowsPulumi.yamlpulumi up
ansiblemacOS, Linuxansible.cfg, playbook.ymlansible-playbook playbook.yml

Cross-cutting Tools

TemplatePlatformsDetectsCommand
env-copymacOS, Linux, Windows.env.examplecp .env.example .env
pre-commitmacOS, Linux, Windows.pre-commit-config.yamlpre-commit install

Monorepo / Workspace

TemplatePlatformsDetectsCommand
nxmacOS, Linux, Windowsnx.jsonnpx nx run-many --target=build
turborepomacOS, Linux, Windowsturbo.jsonnpx turbo run build
lernamacOS, Linux, Windowslerna.jsonnpx lerna bootstrap

Example Usage

steps:
deps:
template: brew
ruby:
template: bundler
depends_on: [deps]
node:
template: yarn
depends_on: [deps]

Template Details

Each template provides:

  • Command - The shell command to run
  • Completed check - How to tell if the step already ran (skip if so)
  • Watches - Files that trigger a re-run when changed
  • Environment impact - PATH or shell changes the step makes

brew

Installs Homebrew packages from a Brewfile.

  • Platforms: macOS, Linux
  • Detects: Brewfile
  • Command: brew bundle install
  • Completion check: brew bundle check
  • Watches: Brewfile, Brewfile.lock.json

bundler

Installs Ruby gems from a Gemfile.

  • Platforms: macOS, Linux, Windows
  • Detects: Gemfile
  • Command: bundle install
  • Completion check: bundle check
  • Watches: Gemfile, Gemfile.lock

yarn

Installs Node.js dependencies using Yarn.

  • Platforms: macOS, Linux, Windows
  • Detects: yarn.lock, package.json
  • Command: yarn install
  • Completion check: yarn check --verify-tree
  • Watches: yarn.lock, package.json
  • Environment: Sets NODE_ENV=development

npm

Installs Node.js dependencies using npm.

  • Platforms: macOS, Linux, Windows
  • Detects: package-lock.json, package.json
  • Command: npm install
  • Completion check: node_modules directory exists
  • Watches: package.json, package-lock.json
  • Environment: Sets NODE_ENV=development

pnpm

Installs Node.js dependencies using pnpm.

  • Platforms: macOS, Linux, Windows
  • Detects: pnpm-lock.yaml
  • Command: pnpm install
  • Completion check: node_modules directory exists
  • Watches: package.json, pnpm-lock.yaml
  • Environment: Sets NODE_ENV=development

bun

Installs Node.js dependencies using Bun.

  • Platforms: macOS, Linux, Windows
  • Detects: bun.lockb
  • Command: bun install
  • Completion check: node_modules directory exists
  • Watches: package.json, bun.lockb

volta

Installs pinned Node.js version using Volta.

  • Platforms: macOS, Linux, Windows
  • Detects: volta command available
  • Command: volta install node
  • Completion check: volta which node
  • Watches: package.json

mise

Installs tool versions using mise.

  • Platforms: macOS, Linux, Windows
  • Detects: .mise.toml, mise.toml
  • Command: mise install
  • Completion check: mise current
  • Watches: .mise.toml, mise.toml

asdf

Installs tool versions using asdf.

  • Platforms: macOS, Linux
  • Detects: .tool-versions
  • Command: asdf install
  • Completion check: asdf current
  • Watches: .tool-versions

pip

Installs Python packages from requirements.txt.

  • Platforms: macOS, Linux, Windows
  • Detects: requirements.txt
  • Command: pip install -r requirements.txt
  • Completion check: pip check
  • Watches: requirements.txt

poetry

Installs Python dependencies using Poetry.

  • Platforms: macOS, Linux, Windows
  • Detects: poetry.lock
  • Command: poetry install
  • Completion check: poetry check
  • Watches: pyproject.toml, poetry.lock

uv

Syncs Python dependencies using uv.

  • Platforms: macOS, Linux, Windows
  • Detects: uv.lock
  • Command: uv sync
  • Completion check: .venv directory exists
  • Watches: pyproject.toml, uv.lock

cargo

Builds a Rust project using Cargo.

  • Platforms: macOS, Linux, Windows
  • Detects: Cargo.toml
  • Command: cargo build
  • Completion check: target directory exists
  • Watches: Cargo.toml, Cargo.lock

go

Downloads Go module dependencies.

  • Platforms: macOS, Linux, Windows
  • Detects: go.mod
  • Command: go mod download
  • Completion check: go mod verify
  • Watches: go.mod, go.sum

swift

Resolves Swift Package Manager dependencies.

  • Platforms: macOS, Linux
  • Detects: Package.swift
  • Command: swift package resolve
  • Completion check: .build directory exists
  • Watches: Package.swift, Package.resolved

nvm

Installs Node.js version using nvm.

  • Platforms: macOS, Linux
  • Detects: .nvmrc
  • Command: nvm install
  • Completion check: nvm current
  • Watches: .nvmrc

fnm

Installs Node.js version using fnm (Fast Node Manager).

  • Platforms: macOS, Linux, Windows
  • Detects: .nvmrc, .node-version
  • Command: fnm install
  • Completion check: fnm current
  • Watches: .nvmrc, .node-version

rbenv

Installs Ruby version using rbenv.

  • Platforms: macOS, Linux
  • Detects: .ruby-version
  • Command: rbenv install
  • Completion check: rbenv version
  • Watches: .ruby-version

pyenv

Installs Python version using pyenv.

  • Platforms: macOS, Linux
  • Detects: .python-version
  • Command: pyenv install
  • Completion check: pyenv version
  • Watches: .python-version

maven

Installs Java dependencies using Maven.

  • Platforms: macOS, Linux, Windows
  • Detects: pom.xml
  • Command: mvn install
  • Completion check: target directory exists
  • Watches: pom.xml

spring-boot

Sets up a Spring Boot project (Gradle-based).

  • Platforms: macOS, Linux, Windows
  • Detects: application.properties, application.yml
  • Command: ./gradlew bootRun
  • Completion check: build directory exists
  • Watches: build.gradle, build.gradle.kts, application.properties, application.yml

dotnet

Restores .NET project dependencies.

  • Platforms: macOS, Linux, Windows
  • Detects: *.sln, *.csproj
  • Command: dotnet restore
  • Completion check: dotnet build --no-restore succeeds
  • Watches: *.sln, *.csproj, Directory.Build.props

dart

Installs Dart package dependencies.

  • Platforms: macOS, Linux, Windows
  • Detects: pubspec.yaml
  • Command: dart pub get
  • Completion check: .dart_tool directory exists
  • Watches: pubspec.yaml, pubspec.lock

flutter

Installs Flutter package dependencies.

  • Platforms: macOS, Linux, Windows
  • Detects: pubspec.yaml (with Flutter SDK dependency)
  • Command: flutter pub get
  • Completion check: .dart_tool directory exists
  • Watches: pubspec.yaml, pubspec.lock

deno

Caches Deno module dependencies.

  • Platforms: macOS, Linux, Windows
  • Detects: deno.json, deno.jsonc
  • Command: deno cache
  • Completion check: deno info succeeds
  • Watches: deno.json, deno.jsonc, deno.lock

next

Detects a Next.js project. Uses the project’s Node.js package manager for dependency installation.

  • Platforms: macOS, Linux, Windows
  • Detects: next.config.js, next.config.mjs
  • Command: npm run dev
  • Completion check: .next directory exists
  • Watches: next.config.js, next.config.mjs, package.json

vite

Detects a Vite project. Uses the project’s Node.js package manager for dependency installation.

  • Platforms: macOS, Linux, Windows
  • Detects: vite.config.ts, vite.config.js
  • Command: npm run dev
  • Completion check: node_modules directory exists
  • Watches: vite.config.ts, vite.config.js, package.json

remix

Detects a Remix project. Uses the project’s Node.js package manager for dependency installation.

  • Platforms: macOS, Linux, Windows
  • Detects: remix.config.js
  • Command: npm run dev
  • Completion check: node_modules directory exists
  • Watches: remix.config.js, package.json

django

Runs Django database migrations.

  • Platforms: macOS, Linux, Windows
  • Detects: manage.py
  • Command: python manage.py migrate
  • Completion check: python manage.py showmigrations --plan shows no unapplied migrations
  • Watches: manage.py, */migrations/*.py

rails-db

Prepares the Rails database (creates, migrates, seeds).

  • Platforms: macOS, Linux, Windows
  • Detects: bin/rails, config/routes.rb
  • Command: bin/rails db:prepare
  • Completion check: bin/rails db:version succeeds
  • Watches: db/migrate/*, db/schema.rb, db/seeds.rb

prisma

Runs Prisma database migrations.

  • Platforms: macOS, Linux, Windows
  • Detects: prisma/schema.prisma
  • Command: npx prisma migrate dev
  • Completion check: npx prisma migrate status shows no pending migrations
  • Watches: prisma/schema.prisma, prisma/migrations/*

diesel

Runs Diesel database migrations (Rust).

  • Platforms: macOS, Linux, Windows
  • Detects: diesel.toml
  • Command: diesel migration run
  • Completion check: diesel migration pending returns empty
  • Watches: diesel.toml, migrations/*

alembic

Runs Alembic database migrations (Python/SQLAlchemy).

  • Platforms: macOS, Linux, Windows
  • Detects: alembic.ini
  • Command: alembic upgrade head
  • Completion check: alembic current matches head
  • Watches: alembic.ini, alembic/versions/*

docker-compose

Starts services defined in a Docker Compose file.

  • Platforms: macOS, Linux, Windows
  • Detects: compose.yml, docker-compose.yml
  • Command: docker compose up -d
  • Completion check: docker compose ps shows running services
  • Watches: compose.yml, docker-compose.yml, Dockerfile

helm

Builds Helm chart dependencies for Kubernetes deployments.

  • Platforms: macOS, Linux, Windows
  • Detects: Chart.yaml
  • Command: helm dependency build
  • Completion check: charts/ directory exists
  • Watches: Chart.yaml, Chart.lock, values.yaml

pulumi

Deploys infrastructure using Pulumi.

  • Platforms: macOS, Linux, Windows
  • Detects: Pulumi.yaml
  • Command: pulumi up
  • Completion check: pulumi stack succeeds
  • Watches: Pulumi.yaml, Pulumi.*.yaml

ansible

Runs an Ansible playbook.

  • Platforms: macOS, Linux
  • Detects: ansible.cfg, playbook.yml
  • Command: ansible-playbook playbook.yml
  • Completion check: Command succeeds
  • Watches: ansible.cfg, playbook.yml, inventory/*, roles/*

env-copy

Copies .env.example to .env if it doesn’t already exist.

  • Platforms: macOS, Linux, Windows
  • Detects: .env.example
  • Command: cp .env.example .env
  • Completion check: .env file exists
  • Watches: .env.example

pre-commit

Installs pre-commit hook scripts into your Git repository.

  • Platforms: macOS, Linux, Windows
  • Detects: .pre-commit-config.yaml
  • Command: pre-commit install
  • Completion check: .git/hooks/pre-commit file exists
  • Watches: .pre-commit-config.yaml

nx

Sets up an Nx monorepo workspace.

  • Platforms: macOS, Linux, Windows
  • Detects: nx.json
  • Command: npx nx run-many --target=build
  • Completion check: node_modules directory exists
  • Watches: nx.json, workspace.json, package.json

turborepo

Sets up a Turborepo monorepo workspace.

  • Platforms: macOS, Linux, Windows
  • Detects: turbo.json
  • Command: npx turbo run build
  • Completion check: node_modules directory exists
  • Watches: turbo.json, package.json

lerna

Bootstraps a Lerna monorepo workspace.

  • Platforms: macOS, Linux, Windows
  • Detects: lerna.json
  • Command: npx lerna bootstrap
  • Completion check: node_modules directory exists
  • Watches: lerna.json, package.json

Install Templates

Install templates are used by the requirements system to install missing tools. They are triggered automatically when a requirement gap is detected and the user accepts the install prompt.

TemplateDescriptionPlatforms
brew-installInstall Homebrew package managermacOS, Linux
docker-installInstall Docker Desktop or Docker EnginemacOS, Linux, Windows
mise-installInstall mise version managermacOS, Linux
mise-nodeInstall Node.js using misemacOS, Linux
mise-pythonInstall Python using misemacOS, Linux
mise-rubyInstall Ruby using misemacOS, Linux
postgres-installInstall PostgreSQL server and client toolsmacOS, Linux
redis-installInstall Redis in-memory data storemacOS, Linux
rust-installInstall Rust toolchain via rustupmacOS, Linux, Windows

brew-install

Installs Homebrew package manager.

  • Platforms: macOS, Linux
  • Command: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • Completion check: brew --version

docker-install

Installs Docker Desktop (macOS) or Docker Engine (Linux).

  • Platforms: macOS, Linux, Windows
  • Command: Platform-specific (manual on macOS, curl -fsSL https://get.docker.com | sh on Linux)
  • Completion check: docker info

mise-install

Installs the mise version manager.

  • Platforms: macOS, Linux
  • Command: curl https://mise.run | sh
  • Completion check: mise --version

mise-node

Installs Node.js using mise. Requires mise to be installed first.

  • Platforms: macOS, Linux
  • Requires: mise
  • Command: mise install node
  • Completion check: mise where node

mise-python

Installs Python using mise. Requires mise to be installed first.

  • Platforms: macOS, Linux
  • Requires: mise
  • Command: mise install python
  • Completion check: mise where python

mise-ruby

Installs Ruby using mise. Requires mise to be installed first.

  • Platforms: macOS, Linux
  • Requires: mise
  • Command: mise install ruby
  • Completion check: mise where ruby

postgres-install

Installs PostgreSQL database server and client tools.

  • Platforms: macOS, Linux
  • Command: Platform-specific (Homebrew on macOS, apt-get on Debian/Ubuntu)
  • Completion check: pg_isready -q

redis-install

Installs Redis in-memory data store.

  • Platforms: macOS, Linux
  • Command: Platform-specific (Homebrew on macOS, apt-get on Debian/Ubuntu)
  • Completion check: redis-cli ping

rust-install

Installs the Rust toolchain via rustup.

  • Platforms: macOS, Linux, Windows
  • Command: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
  • Completion check: rustc --version

Overriding Template Defaults

You can override any field from a template in your step config:

steps:
deps:
template: bundler
env:
BUNDLE_WITHOUT: "production"
command: "bundle install --jobs=4"

The template provides the base configuration, and your overrides take precedence.