A E M E A T H
Next-generation multi-model CLI coding tool
Agent teams · Split-panel coordination · Role-based routing
╔══════════════════════════════════════════════╗
║ Welcome to AemeathCLI ║
║ Multi-Model CLI Coding Tool v1.0.10 ║
╚══════════════════════════════════════════════╝
AemeathCLI orchestrates multiple AI models across parallel agent teams in your terminal. Route Claude for planning, GPT for coding, Gemini for reviews -- with real-time streaming, tmux-backed visual orchestration when enabled, cost tracking, and enterprise-grade security.
Most AI coding tools lock you into a single model. AemeathCLI breaks that ceiling:
# Install globally
npm install -g aemeathcli
# Authenticate with your providers
aemeathcli login
# For orchestrator mode, also configure API keys
export ANTHROPIC_API_KEY=your_key_here
export OPENAI_API_KEY=your_key_here
# Start coding
aemeathcli "Refactor the authentication module to use JWT tokens"
That's it. AemeathCLI detects your project, picks the best model, and starts streaming.
node-pty and better-sqlite3
npm install -g aemeathcli
The CLI installs two commands: aemeathcli and the shorthand ac.
aemeathcli --version
# 1.0.10
aemeathcli config init
This launches an interactive setup wizard that walks you through provider authentication, detects installed agent CLIs, and lets you choose the master provider used for swarm orchestration. SDK-backed swarm features still need aemeathcli auth set-key <provider> or matching environment variables when browser login is not enough.
AemeathCLI supports four cloud providers with native OAuth PKCE login:
# Browser-based OAuth login (recommended)
aemeathcli auth login claude # Anthropic
aemeathcli auth login codex # OpenAI
aemeathcli auth login gemini # Google
aemeathcli auth login kimi # Moonshot
# Or set API keys directly
aemeathcli auth set-key claude sk-ant-api03-...
aemeathcli auth set-key codex sk-...
aemeathcli auth set-key gemini AIza...
# Check status
aemeathcli auth status
claude ● Logged in (user@example.com) — Pro plan
codex ● Logged in (user@example.com) — Plus plan
gemini ● Logged in (user@gmail.com)
kimi ○ Not logged in
Credentials are stored in your OS keychain (macOS Keychain, Windows Credential Vault, or Linux libsecret). An AES-256-GCM encrypted fallback is used when keychain is unavailable.
# Manage sessions
aemeathcli auth logout codex # Single provider
aemeathcli auth logout --all # All providers
aemeathcli auth switch claude # Set default provider
# Start interactive session
aemeathcli
# Start with a message
aemeathcli "Explain the architecture of this project"
# Specify model and role
aemeathcli chat --model gpt-5.2 --role coding "Add input validation to the API"
# With a custom system prompt
aemeathcli chat --system "You are a security auditor" "Review this codebase"
# Planning mode — uses Claude Opus by default
aemeathcli plan "Design a caching layer for the API"
# Code review — analyzes specified files
aemeathcli review src/auth/ src/api/middleware.ts
# Test generation — uses Haiku/Flash for speed
aemeathcli test "Generate tests for the recent changes"
Swarm orchestration now lives inside the default TUI:
# Start the CLI
aemeathcli
# Or start with a first task
aemeathcli "Refactor the authentication module"
Inside the TUI:
Shift+Tab to switch into swarm mode.SDK-backed swarm planning still needs a tool-calling-capable provider, so browser login alone may not be enough; configure an API key or environment variable for the provider you want to sponsor the swarm.
┌───────────────────────┬───────────────────────┐
│ LeadArchitect │ BackendDev │
│ (Claude Opus 4.6) │ (Claude Sonnet 4.6) │
│ Role: planning │ Role: coding │
│ ├───────────────────────┤
│ Coordinates team, │ SecurityAuditor │
│ synthesizes results │ (GPT-5.2 Codex) │
│ │ Role: review │
└───────────────────────┴───────────────────────┘
AemeathCLI ships with 9 models across 5 providers:
| Model | Provider | Context | Output | Input $/M | Output $/M |
|---|---|---|---|---|---|
| claude-opus-4-6 | Anthropic | 200K | 32K | $15.00 | $75.00 |
| claude-sonnet-4-6 | Anthropic | 200K | 16K | $3.00 | $15.00 |
| claude-haiku-4-5 | Anthropic | 200K | 8K | $0.80 | $4.00 |
| gpt-5.2 | OpenAI | 256K | 32K | $2.50 | $10.00 |
| gpt-5.2-mini | OpenAI | 256K | 16K | $0.15 | $0.60 |
| o3 | OpenAI | 256K | 100K | $10.00 | $40.00 |
| gemini-2.5-pro | 2M | 64K | $1.25 | $10.00 | |
| gemini-2.5-flash | 2M | 64K | $0.15 | $0.60 | |
| kimi-k2.5 | Moonshot | 128K | 8K | $0.50 | $2.00 |
Local models via Ollama (Llama, Mistral, etc.) are also supported with a configurable base URL.
AemeathCLI automatically selects the best model for each task through a 4-step resolution pipeline:
User Override → Role Config → Fallback Chain → System Default
| Role | Primary Model | Fallback Chain |
|---|---|---|
| Planning | Claude Opus 4.6 | GPT-5.2 → Gemini 2.5 Pro |
| Coding | Claude Sonnet 4.6 | GPT-5.2 → Gemini 2.5 Flash |
| Review | Claude Opus 4.6 | Gemini 2.5 Pro |
| Testing | Claude Haiku 4.5 | Gemini 2.5 Flash |
| Bugfix | Claude Sonnet 4.6 | GPT-5.2 |
| Documentation | Gemini 2.5 Flash | Claude Haiku 4.5 |
Override at any time:
# Session-level override
aemeathcli chat --model gpt-5.2 --role planning
# Or interactively
/model gemini-2.5-pro
/role review
Customize routing in ~/.aemeathcli/config.json:
{
"roles": {
"coding": {
"primary": "gpt-5.2",
"fallback": ["claude-sonnet-4-6", "gemini-2.5-flash"]
}
}
}
Create parallel agent teams through the default swarm experience. The master agent sponsors specialized workers, optional tmux panes open when enabled, and every team follows a hub-and-spoke model.
aemeathcli, press Shift+Tab, and describe the task. The configured master agent decomposes the work.developer, reviewer, tester, and architect.AemeathCLI auto-detects your terminal and picks the best split backend:
| Environment | Backend | How |
|---|---|---|
| macOS — iTerm2 | AppleScript | Splits sessions via iTerm2's native AppleScript dictionary |
| macOS — Ghostty | System Events | Simulates Ghostty keybindings (Cmd+D / Cmd+Shift+D) for hub-spoke splits |
| macOS — Terminal.app | System Events | Simulates Cmd+D to create native split panes |
| Windows — Windows Terminal | wt.exe | Uses wt split-pane commands for hub-spoke layout |
| Linux (any terminal) | tmux | Creates or reuses a tmux session with split panes |
| Fallback | In-process | Tab-switchable agent panels when no native pane support is detected |
Following the patterns established by Claude Code Agent Teams and OpenAI Codex Multi-Agent:
┌─────────────────────┐
│ Shared Board │
│ /tmp/aemeathcli-*/ │
│ board/ │
└──┬──────┬──────┬───┘
│ │ │
┌──────┘ │ └──────┐
│ │ │
┌─────┴─────┐ ┌────┴────┐ ┌──────┴─────┐
│ Lead │ │ Agent 2 │ │ Agent 3 │
│ Writes: │ │ Writes: │ │ Writes: │
│ coord.md │ │ own .md │ │ own .md │
│ SUMMARY.md│ │ │ │ │
└───────────┘ └─────────┘ └────────────┘
team-manifest.json) -- Full team structure visible to every agent: names, roles, models, output file pathscoordinator.md with the task breakdown and assignments, then reads all agent outputs to produce SUMMARY.mdEach agent runs a different model selected by the LLM based on role suitability:
[
{ "name": "AuthArchitect", "model": "claude-opus-4-6", "role": "planning" },
{ "name": "BackendDev", "model": "claude-sonnet-4-6", "role": "coding" },
{ "name": "SecurityReviewer", "model": "gpt-5.2-codex", "role": "review" },
{ "name": "TestWriter", "model": "gemini-2.5-flash", "role": "testing" }
]
| Action | How |
|---|---|
| Enter swarm mode | Start aemeathcli and press Shift+Tab |
| Run one task | aemeathcli "Build X" then switch to swarm mode if needed |
| Focus next agent | Tab |
| Cycle input mode | Shift+Tab |
| Stop the active team | /team stop |
Extend AemeathCLI with reusable, model-agnostic skill files.
| Skill | Trigger | Description |
|---|---|---|
| Code Review | $review | Structured code review with severity ratings |
| Commit | $commit | Conventional commit message generation |
| Plan | $plan | Architecture and implementation planning |
| Debug | $debug | Systematic debugging with hypothesis testing |
| Test | $test | Test generation with coverage analysis |
| Refactor | $refactor | Safe refactoring with before/after validation |
Create a SKILL.md file with YAML frontmatter:
---
name: my-skill
description: Custom skill for my workflow
version: 1.0.10
triggers:
- $my-skill
- my-skill
allowed-tools:
- read
- write
- bash
model-requirements:
preferred-role: coding
min-context: 100000
---
# My Custom Skill
Instructions for the AI when this skill is active...
Skill resolution priority: Project (.aemeathcli/skills/) > User (~/.aemeathcli/skills/) > Built-in
Connect external tools via the Model Context Protocol:
// ~/.aemeathcli/mcp.json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "./"],
"env": {}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "${DATABASE_URL}"
}
}
}
}
Features:
mcp__serverName__toolName prevents conflictsDuring a chat session:
| Command | Description |
|---|---|
/help | Show available commands |
/model [name] | Switch model or show current |
/model list | List all available models |
/role [name] | Switch role (planning, coding, review, testing, bugfix) |
/cost | Show session cost breakdown |
/clear | Clear conversation history |
/compact | Compress context to free token budget |
/quit | Exit the session |
~/.aemeathcli/
config.json # Global configuration
credentials.enc # Encrypted credential fallback
mcp.json # MCP server definitions
skills/ # User-level custom skills
teams/ # Team configurations
tasks/ # Task persistence
db/aemeathcli.db # SQLite database (WAL mode)
logs/ # Structured logs (pino)
.aemeathcli/ # Project-level overrides
config.json # Project configuration (merges over global)
skills/ # Project-specific skills
mcp.json # Project-specific MCP servers
AGENTS.md # Agent instructions
{
"defaultModel": "claude-sonnet-4-6",
"permissions": {
"mode": "standard",
"allowedPaths": ["./"],
"blockedCommands": ["rm -rf /", "git push --force"]
},
"splitPanel": {
"enabled": true,
"backend": "auto",
"defaultLayout": "auto",
"maxPanes": 6
},
"cost": {
"budgetWarning": 5.00,
"budgetHardStop": 20.00,
"currency": "USD"
}
}
| Mode | Behavior |
|---|---|
| strict | All operations require explicit approval |
| standard | Reads auto-approved; writes and shell require approval |
| permissive | All operations auto-approved (trusted environments only) |
aemeathcli --permission-mode strict "Delete all unused imports"
aemeathcli/
src/
cli/ Command-line interface (Commander.js)
ui/ Terminal UI components (Ink 5 / React)
core/ Model router, event bus, context manager, cost tracker
providers/ AI provider adapters (Vercel AI SDK)
tools/ Built-in tools (bash, read, write, edit, glob, grep, git, web-fetch)
auth/ OAuth PKCE login, credential store, session management
teams/ Agent process management, message bus, task store
panes/ Split-pane backends (iTerm2, Ghostty, Terminal.app, Windows Terminal, tmux), IPC hub, layout engine
skills/ Skill loader, registry, executor
mcp/ MCP client, server manager, tool bridge
storage/ SQLite store, config store, conversation persistence
types/ TypeScript type definitions, error hierarchy
utils/ Logger, sanitizer, path resolver, retry, token counter
| Layer | Technology |
|---|---|
| Runtime | Node.js 20+ |
| Language | TypeScript 5.7+ (maximum strict mode) |
| CLI Framework | Commander.js 13 |
| Terminal UI | Ink 5 (React 18 for CLI) |
| AI Integration | Vercel AI SDK + provider adapters |
| Database | better-sqlite3 (WAL mode) |
| Validation | Zod |
| Logging | pino (structured, redacted) |
| Auth | keytar (OS keychain) + AES-256-GCM fallback |
| Build | tsup (ESM-only, sourcemaps, DTS) |
| Testing | Vitest |
| Linting | ESLint v9 + typescript-eslint (strict type-checked) |
AemeathCLI is built with defense-in-depth:
0o700.0o600, directories with 0o700.catch(e) anywhere.git clone https://github.com/AemeathCLI/AemeathCLI.git
cd AemeathCLI
npm install
npm run build # Build with tsup
npm run dev # Watch mode
npm run typecheck # tsc --noEmit
npm run lint # ESLint (strict type-checked)
npm run format # Prettier
npm run test # Vitest
npm run test:coverage # With coverage report
MIT
No reviews yet. Be the first to rate this tool.
Sign in to leave a review.