# Installing Checkmate
## Requirements
- **Rust**: 1.70+ (for building from source)
- **Git**: For version control integration
- **OS**: Linux, macOS, Windows
## From Source
### 1. Clone Repository
```bash
git clone https://github.com/your-org/checkmate
cd checkmate
```
### 2. Build
```bash
# Debug build (faster compilation)
cargo build
# Release build (optimized)
cargo build --release
```
### 3. Install Binary
Option A: Add to PATH temporarily
```bash
export PATH="$PATH:$(pwd)/target/release"
```
Option B: Copy to system path
```bash
sudo cp target/release/cm /usr/local/bin/
```
Option C: Cargo install (builds and installs)
```bash
cargo install --path crates/checkmate-cli
```
### 4. Verify Installation
```bash
cm --version
cm --help
```
## Shell Completion
### Bash
```bash
# Generate completion script
cm completions bash > ~/.local/share/bash-completion/completions/cm
# Or add to .bashrc
eval "$(cm completions bash)"
```
### Zsh
```bash
# Generate completion script
cm completions zsh > ~/.zfunc/_cm
# Ensure ~/.zfunc is in fpath (add to .zshrc)
fpath=(~/.zfunc $fpath)
autoload -Uz compinit && compinit
```
### Fish
```bash
cm completions fish > ~/.config/fish/completions/cm.fish
```
## Directory Structure
After building, you'll have:
```
checkmate/
├── target/
│ ├── debug/cm # Debug binary
│ └── release/cm # Release binary
├── crates/
│ ├── checkmate-cli/ # CLI crate
│ └── clove-lang/ # Query language crate
└── claude-plugin/ # Claude Code plugin
```
## Updating
```bash
cd checkmate
git pull
cargo build --release
```
## Uninstalling
### If installed via cargo
```bash
cargo uninstall checkmate-cli
```
### If copied to system path
```bash
sudo rm /usr/local/bin/cm
```
### Remove project data
```bash
# Remove user config (optional)
rm -rf ~/.config/checkmate
# Remove from individual projects
rm -rf /path/to/project/.checkmate
```
## Troubleshooting
### "command not found: cm"
Ensure the binary is in your PATH:
```bash
which cm
echo $PATH
```
### Build fails with missing dependencies
Install Rust toolchain:
```bash
```
### Permission denied
Make binary executable:
```bash
chmod +x target/release/cm
```
## Next Steps
- [Quick Start](QUICKSTART.md) - Get running in 5 minutes
- [CLI Reference](CLI_REFERENCE.md) - All commands