by matrixmapai
OpenABCode is an LLM-routing coding agent that dynamically routes tasks to the best-suited models
# Add to your Claude Code skills
git clone https://github.com/matrixmapai/openabcodeopenabcode is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by matrixmapai. OpenABCode is an LLM-routing coding agent that dynamically routes tasks to the best-suited models. It has 51 GitHub stars.
openabcode's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/matrixmapai/openabcode" and add it to your Claude Code skills directory (see the Installation section above).
openabcode is primarily written in TypeScript. It is open-source under matrixmapai on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh openabcode against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
OpenABCode is an LLM-routing coding agent that dynamically routes tasks to the best-suited models:
Google ecosystem-centric tasks are routed to Gemini.
Primary code development is routed to Claude.
Testing and automation scripts are routed to ChatGPT.
To learn more about OpenABCode:
Install with the hosted installer:
curl -fsSL https://openabcode.com/install.sh | sh
Or use a package manager:
npm install -g @openabcode/coding-agent --ignore-scripts
bun install -g @openabcode/coding-agent
brew install matrixmapai/tap/openabcode
Then start OpenABCode:
openabcode
Inside the interactive CLI:
/login Sign in to OpenABCode or another provider
/model Select fixed models and Route family models
/route-model Select the model that classifies Route tasks
/route Turn automatic task routing on or off
When Route is on, the footer shows the configured execution models. Every completed routing decision is also stored in the session JSONL for audit.
Route rules, heuristic keywords, file extension mappings, project markers, and the default provider can all be customized in ~/.openabcode/agent/settings.json (global) or .openabcode/settings.json (project-level). When a field is set, it fully replaces the corresponding built-in default.
{
"router": {
"rules": {
"openai": "Test and automation — algorithms, code review, testing, data analysis, scripting",
"google": "Google ecosystem — Android, Flutter, Firebase, Google Cloud, Kotlin",
"anthropic": "General development — all code writing, editing, debugging, architecture, UI"
},
"keywords": {
"openai": ["algorithm", "unit test", "benchmark", "data analysis", "pipeline"],
"google": ["android", "flutter", "dart", "firebase", "gcp"],
"anthropic": ["refactor", "debug", "architecture", "implement", "fix"]
},
"fileExtensions": {
".kt": "google",
".dart": "google",
".rs": "anthropic",
".ts": "anthropic",
".sh": "openai"
},
"projectMarkers": {
"pubspec.yaml": "google",
"cargo.toml": "anthropic",
"package.json": "anthropic",
"main.tf": "openai"
},
"defaultProvider": "anthropic"
}
}
Each field is optional and independent — only configure what you want to override.
User prompt
-> @openabcode/coding-agent Route configuration and model selection
-> @openabcode/ai Classifier and provider API requests
-> @openabcode/agent-core Agent loop, state, and tool execution
| Package | Description |
|---|---|
| @openabcode/coding-agent | Route-first terminal coding agent CLI |
| @openabcode/tui | Terminal UI renderer behind OpenABCode's interactive editor, model selectors, Route footer, and session views |
| @openabcode/ai | Unified multi-provider LLM API (OpenAI, Anthropic, Google, etc.) |
OpenABCode does not include a built-in permission system for restricting filesystem, process, network, or credential access. By default, it runs with the permissions of the user and process that launched it.
If you need stronger boundaries, containerize or sandbox OpenABCode. See packages/coding-agent/docs/containerization.md for three patterns:
openabcode and provider auth on the host while routing built-in tools and ! commands into a local Linux micro-VM.openabcode process in a local container for simple isolation.openabcode process in a policy-controlled sandbox.See CONTRIBUTING.md for contribution guidelines and AGENTS.md for project-specific rules (for both humans and agents).
npm install --ignore-scripts # Install all dependencies without running lifecycle scripts
npm run build # Build all packages
npm run check # Lint, format, and type check
./test.sh # Run tests (skips LLM-dependent tests without API keys)
./openabcode-test.sh # Run openabcode from sources (can be run from any directory)
We treat npm dependency changes as reviewed code changes.
.npmrc sets save-exact=true and min-release-age=2 to avoid same-day dependency releases during npm resolution.package-lock.json is the dependency ground truth. Pre-commit blocks accidental lockfile commits unless OPENABCODE_ALLOW_LOCKFILE_CHANGE=1 is set.npm run check verifies pinned direct deps, native TypeScript import compatibility, and the generated coding-agent shrinkwrap.packages/coding-agent/npm-shrinkwrap.json, generated from the root lockfile, to pin transitive deps for npm users.npm run release:local to build, pack, and create isolated npm and Bun installs outside the repo before tagging a release.openabcode update --self use --ignore-scripts where supported.npm ci --ignore-scripts, and a scheduled GitHub workflow runs npm audit --omit=dev plus npm audit signatures --omit=dev.AGPL-3.0
Portions derived from Pi remain licensed under the MIT License. See NOTICE for attribution.