Skip to content

Latest commit

 

History

History
126 lines (92 loc) · 4.64 KB

File metadata and controls

126 lines (92 loc) · 4.64 KB
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

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 --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

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

View All Documentation →


One CLI to rule them all.

Author: @0xjuanma
Star this project