NAME
anvil — CLI to streamline config management and tool installation. Install your full dev tool-chain in one command and sync…
SYNOPSIS
brew install 0xjuanma/tap/anvilINFO
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 CLI
Save hours in your process — install the tools you need, sync your configs, and keep your environment consistent with a single command-line tool.
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
| Command | Description |
|---|---|
anvil init [--discover] | Initialize your Anvil environment, dependencies & optionally discovers apps in your system |
anvil doctor | Check 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 clean | Clean your anvil environment |
anvil update | Update your anvil installation |
anvil --version/-v | Show the version of anvil |
Try It Out
# Initialize Anvil (optionally discover existing apps) anvil init --discoverCheck 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 doctordetects and auto-fixes common issues - Zero Configuration: Works out of the box with sensible defaults
Documentation
| Guide | Description |
|---|---|
| Configuration Management | Config sync setup and workflows |
| Install Command | Installation command guide; leverages Homebrew for formulae/cask, and supports custom urls/installations scripts via sources |
| Import Groups | Import Anvil groups from files/URLs |
| Doctor Command | Health checks and validation |
| Clean command | Cleans Anvil non-critical dependencies |
One CLI to rule them all.
Author: @0xjuanma
Star this project