-
-
Notifications
You must be signed in to change notification settings - Fork 17
Contributing
Ari Mayer edited this page Mar 23, 2026
·
1 revision
Contributions are welcome! This page covers everything you need to get started.
- Rust (stable) -- install via rustup
- mise (optional, recommended) -- task runner that wraps cargo commands
- Git
git clone https://github.com/arimxyer/models
cd models
cargo build
cargo runIf you have mise installed:
mise run build
mise run runRun these before every PR:
# With mise (recommended)
mise run fmt && mise run clippy && mise run test
# Without mise
cargo fmt && cargo clippy -- -D warnings && cargo testAll three must pass. CI enforces the same checks on pull requests.
-
Clippy runs with
-D warnings-- all warnings are errors -
No
eprintln!in TUI code -- stderr output corrupts ratatui's alternate screen buffer. UseMessagevariants or status bar updates instead.eprintln!is fine in CLI-only code paths. -
Enum-based message passing -- the TUI uses an Elm-architecture pattern with a
Messageenum. No callbacks. -
New
BenchmarkEntryfields must use#[serde(default)] -
Commit
Cargo.lockalongsideCargo.tomlwhen changing dependencies or the version
The easiest way to contribute is by adding a new AI coding agent to the catalog. This requires no Rust knowledge or build tools.
Edit data/agents.json and add an entry following this format:
{
"my-agent": {
"name": "My Agent",
"repo": "owner/repo",
"categories": ["cli"],
"installation_method": "cli",
"pricing": {
"model": "usage",
"free_tier": false,
"usage_notes": "Pay per token"
},
"supported_providers": ["openai"],
"platform_support": ["macos", "linux", "windows"],
"open_source": true,
"cli_binary": "my-agent",
"version_command": ["--version"],
"version_regex": "([0-9]+\\.[0-9]+\\.[0-9]+)",
"config_files": [],
"homepage": "https://example.com",
"docs": "https://docs.example.com"
}
}Key fields:
| Field | Description |
|---|---|
name |
Display name |
repo |
GitHub repo in owner/repo format |
categories |
["cli"], ["ide"], or both |
cli_binary |
Binary name for version detection |
version_command |
Args to get version (e.g., ["--version"]) |
version_regex |
Regex to extract version from command output |
open_source |
Whether the source code is publicly available |
-
data/agents.json-- curated agent catalog. Contributions welcome! -
data/benchmarks.json-- auto-generated from the Artificial Analysis API every 30 minutes. Do not edit manually.
- Branch from
mainand keep changes focused - Reference related issues in your PR description
- CI runs format checking, clippy, and tests on every PR (doc-only changes are skipped)
When opening an issue, please include:
- Steps to reproduce the problem
- Expected vs actual behavior
- Your environment (OS, terminal, Rust version)
For detailed architecture documentation, key file locations, async patterns, and module structure, see the Architecture page.
This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
Repository · Issues · Releases · brew install models · MIT License