ANVIL(1)

NAME

anvilCLI to streamline config management and tool installation. Install your full dev tool-chain in one command and sync…

SYNOPSIS

$brew install 0xjuanma/tap/anvil

INFO

108 stars
2 forks
0 views

DESCRIPTION

CLI to streamline config management and tool installation. Install your full dev tool-chain in one command and sync configurations across machines seamlessly, leverages homebrew and private repos.

README

Anvil Logo

Anvil CLI

Go Version License Go Report Card GitHub Release Platform Build Status

Save hours in your process — install the tools you need, sync your configs, and keep your environment consistent with a single command-line tool.

Anvil Demo

What Anvil Does

  • Batch App Installation: Install development tools in groups or individually via Homebrew
  • Configuration Sync: Sync dotfiles across machines using simple commands and private GitHub repositories
  • Health Checks: Auto-diagnose and fix common setup issues

Why Choose Anvil?

  • Fast Setup: Get coding in minutes, not hours
  • Consistency: Same configs and tools across all machines
  • Built-in Safety: Dry-run mode, private repo enforcement and automatic backups

Quick Start

Installation

Via install script (Recommended for fresh machines):

curl -sSL https://github.com/0xjuanma/anvil/releases/latest/download/install.sh | bash

Note: Ideal for new machines without Homebrew - Anvil will install it during the anvil init step.

Via Homebrew (If you already have Homebrew installed):

brew install 0xjuanma/tap/anvil

Update existing installation:

anvil update

Available Commands

CommandDescription
anvil init [--discover]Initialize your Anvil environment, dependencies & optionally discovers apps in your system
anvil doctorCheck system health
anvil install [group-name]Install tools by groups
anvil config show [app-name]Show your anvil settings or app settings
anvil config push [app-name]Push your app configurations to GitHub
anvil config pull [app-name]Pull your app configurations from GitHub
anvil config sync [app-name]Sync your pulled app configurations to your local machine
anvil cleanClean your anvil environment
anvil updateUpdate your anvil installation
anvil --version/-vShow the version of anvil

Try It Out

# Initialize Anvil (optionally discover existing apps)
anvil init --discover

Check environment health

anvil doctor

Install development tools

anvil install essentials # sample essentials group anvil install terraform # Individual apps

Import tool groups from shared configs

anvil config import https://example.com/team-groups.yaml

Or start with example configurations

anvil config import https://raw.githubusercontent.com/0xjuanma/anvil/master/docs/import-examples/juanma-essentials.yaml

Sync configurations (after setting up GitHub repo)

anvil config push neovim anvil config pull neovim anvil config sync neovim

Features

  • Smart Installation: Install individual apps or user-defined groups (dev, essentials, etc) holding many apps
  • Group Import: Import groups from local files or URLs with validation and conflict detection
  • Auto-tracking: Automatically tracks installed apps and prevents duplicates
  • Secure Config Sync: Uses private GitHub repositories with automatic backups
  • Health Diagnostics: anvil doctor detects and auto-fixes common issues
  • Zero Configuration: Works out of the box with sensible defaults

Documentation

GuideDescription
Configuration ManagementConfig sync setup and workflows
Install CommandInstallation command guide; leverages Homebrew for formulae/cask, and supports custom urls/installations scripts via sources
Import GroupsImport Anvil groups from files/URLs
Doctor CommandHealth checks and validation
Clean commandCleans Anvil non-critical dependencies

View All Documentation →


One CLI to rule them all.

Author: @0xjuanma
Star this project

SEE ALSO

clihub3/4/2026ANVIL(1)