# mai
**AI Tooling Package Manager** — Manage skills, commands, and MCP connectors for AI agents.
## Quick Start
```bash
# Build
cargo build --release
cp target/release/mai ~/.local/bin/
# Switch AI tool
mai use qwen
# Install packs
mai install aif
mai install mcp/postgres
# List packs
mai list
```
## Commands
| `mai use <tool>` | Switch active AI tool |
| `mai install <pack>` | Install pack (skill/command/mcp) |
| `mai list` | List installed packs |
| `mai remove <pack>` | Remove pack |
| `mai update <pack>` | Update pack |
| `mai project init` | Create `mai.toml` |
| `mai project sync` | Generate `mai.lock` |
| `mai completions` | Shell completions |
**Pack format**: `[type/]name[@version]`
Example: `skill/aif@1.0.0`, `mcp/postgres`, `latest`
## Configuration
### Directories
```
~/.config/mai/ # Config (config.toml)
~/.local/share/mai/ # Pack storage
~/.cache/mai/ # Cache
```
### Project Files
**mai.toml** — Project manifest:
```toml
[project]
name = "my-ai-project"
[dependencies]
dependencies = [
{ name = "aif", type = "skill", version = "^1.0.0" },
{ name = "postgres", type = "mcp", version = "latest" },
]
```
**mai.lock** — Pinned versions (auto-generated).
## Development
```bash
cargo build
cargo test
cargo clippy -- -D warnings
```
Logging: `LOG_LEVEL=debug cargo run -- list`
## Documentation
| [Getting Started](docs/getting-started.md) | Quick start tutorial |
| [CLI Reference](docs/cli-reference.md) | Complete command docs |
| [Project Config](docs/project-config.md) | `mai.toml` and `mai.lock` |
| [Versioning](docs/versioning.md) | Semver and version ranges |
## License
MIT