Introduction
Your portable dev identity. Shell, editor, AI prefs, themes — one kit, any machine.
Welcome to Pact
Pact stores your entire development environment configuration in a single GitHub repo. Edit locally or in the browser, sync from terminal, apply anywhere.
The Problem
Setting up a new machine sucks. Dotfiles repos are messy, unstructured, and hard to share. Your AI prompts, editor configs, and shell setup live in different places.
The Solution
One pact.json manifest + organized files in a GitHub repo. CLI to edit and sync, web UI for visual editing, cross-OS support built in.
Quick Start
1. Install the CLI
# macOS/Linux (Homebrew)
brew install cloudboy-jh/tap/pact
# Or download from GitHub Releases
# https://github.com/cloudboy-jh/pact/releases2. Initialize Pact
cd my-project
pact initThis authenticates with GitHub, creates your my-pact repo, and clones it to ./.pact/.
3. Sync your configs
pact syncSelect which modules to sync or sync everything at once.
What's in a Pact
username/my-pact/
├── pact.json # Manifest
├── shell/ # .zshrc, .bashrc, profile.ps1
├── editor/ # nvim, vscode, cursor configs
├── terminal/ # Ghostty, Kitty, Alacritty
├── git/ # .gitconfig, .gitignore_global
├── prompts/ # AI prompts (default.md, code-review.md)
├── skills/ # Custom AI skills
├── agents/ # CLAUDE.md, .cursorrules
├── tools/ # lazygit, ripgrep, fzf configs
├── keybindings/ # Editor keybindings
├── snippets/ # Code snippets
├── fonts/ # Font preferences
└── theme/ # Colors, wallpapers, iconsDesign Principles
- GitHub is the database — No separate backend, your repo is the source of truth
- Edit anywhere — Local editor or web UI, your choice
- Cross-OS by default — Darwin, Windows, Linux configs coexist
- Secrets stay local — API keys in OS keychain, never in repo
Next Steps
- Installation — Install the Pact CLI
- Quick Start — Get up and running in minutes
- CLI Reference — Learn all CLI commands
- Configuration — Understand pact.json