Open Source · Built with Rust · MIT / Apache-2.0

Forge Your Perfect
Workstation

Declarative configuration management for developer workstations. Define your environment in YAML — Anvil installs packages, copies configs, runs commands, and validates health.

$ cargo install anvil-dev

Everything you need to
manage your workstation

📦

Package Management

Install software via winget with version pinning and custom overrides. Homebrew and APT support on the roadmap.

📁

File Synchronization

Deploy configuration files and dotfiles with automatic backup, hash verification, and template rendering.

🧬

Workload Inheritance

Compose configurations using DRY principles. Extend base workloads and override only what differs.

Health Assertions

Declarative predicates validate your system state — check commands, files, directories, environment, and registry.

⌨️

Command Execution

Run pre- and post-install commands with conditions, timeouts, elevation control, and error handling.

📊

Multiple Formats

Output results as formatted tables, JSON, YAML, or HTML reports. Pipe into other tools or share with your team.

Define Once,
Deploy Everywhere

Write a workload once. Anvil handles installation, configuration, and validation.

workload.yaml
name: rust-developer
version: "1.0.0"
description: "Complete Rust development environment"

extends:
  - essentials

packages:
  winget:
    - id: Rustlang.Rustup
    - id: LLVM.LLVM

files:
  - source: config.toml
    destination: "~/.cargo/config.toml"
    backup: true

assertions:
  - name: "Cargo is available"
    check:
      type: command_exists
      command: cargo
Terminal
$ anvil install rust-developer

  ▸ Resolving workload inheritance...
   Merged: essentials → rust-developer

  ▸ Installing packages...
   Rustlang.Rustup
   LLVM.LLVM

  ▸ Deploying configuration files...
   ~/.cargo/config.toml

  ▸ Running assertions...
   Cargo is available

   Workload installed successfully

Install in
Seconds

Recommended

From crates.io

Install with Cargo — Rust 1.75+ required. Works on all platforms.

cargo install anvil-dev

Pre-built Binary

Download from GitHub Releases for your platform.

# github.com/kafkade/anvil/releases
Expand-Archive anvil.zip C:\Tools\anvil
$env:PATH += ";C:\Tools\anvil"
# github.com/kafkade/anvil/releases
tar xzf anvil-*-linux-gnu.tar.gz
sudo mv anvil /usr/local/bin/

From Source

Clone and build the latest from main.

git clone https://github.com/kafkade/anvil
cd anvil
cargo build --release
# Binary: target\release\anvil.exe
git clone https://github.com/kafkade/anvil
cd anvil
cargo build --release
# Binary: target/release/anvil

Support kafkade's
open-source work

Anvil and all kafkade projects are free and open source. Your support funds development, infrastructure, and documentation.

Ready to forge
your workstation?