Skip to main content

Auto-route coding agent tasks to the best model in your IDE. Python library + MCP server for Claude Code, Codex, Gemini CLI, Copilot, Cursor, and Aider.

Project description

RouteSmith

Host-aware auto-routing for coding agents

PyPI version GitHub Release CI Python versions License Stars


routesmith automatically routes coding agent tasks to the best available model in your IDE — no manual model picking, no cross-provider hacks.

Give it a mixed prompt like "Plan this feature, implement it, add tests, write docs" and it decomposes, routes each step to the right capability class, and executes using your host's native model switching.

Why?

Most coding agents are stuck on one model. Mixed tasks (plan -> code -> test -> document) benefit from different model strengths. But each IDE host (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Aider) has different model families and switching capabilities.

routesmith solves this by being host-aware:

Host Models Strategy
Claude Code Claude Opus 4.7 / Sonnet 4.6 / Haiku 4.5 Dynamic model switching
Codex GPT-5.5 / GPT-5.4 / GPT-5.3-Codex Dynamic model switching
Gemini CLI Gemini 3.1 Pro / Flash / Flash-Lite Dynamic model switching
Copilot Claude 4.7 / GPT-5.5 / Gemini 3.1 Pro (plan-dependent) Prompt optimization
Cursor Claude 4.7 / GPT-5.5 / GPT-5.3-Codex / Gemini 3.1 Pro Prompt optimization
Aider Claude 4.7 / GPT-5.5 / Gemini 3.1 Pro Dynamic model switching

Quickstart

Install from PyPI with pip install routesmith.

If PyPI is unavailable or you want to install from the GitHub-hosted release artifacts instead, use the latest release source archive:

Use pip install https://github.com/sidrat2612/routesmith/releases/latest/download/routesmith-latest.tar.gz.

Direct downloads:

Core Python entry points:

  • routesmith.run(...) auto-detects the host, decomposes the prompt, and executes the route.
  • routesmith.explain_route(...) shows the route plan without execution.
  • routesmith.detect_host() and routesmith.get_host_capabilities() expose the detected environment.

CLI

Common CLI commands:

  • Route a mixed task prompt with routesmith run "Plan this feature, implement it, add tests, and write docs".
  • Preview the route plan with routesmith explain "Refactor auth module and add integration tests".
  • Inspect the environment with routesmith detect-host, routesmith capabilities, and routesmith doctor.

How It Works

routesmith is an advisory routing layer — it plans and recommends, it does not replace your host's execution engine.

Execution flow:

  1. Detect the active host, such as Claude Code or Copilot.
  2. Decompose the prompt into typed subtasks.
  3. Map each task to a capability class.
  4. Resolve those capabilities to host-native models.
  5. Switch models when possible, or optimize prompts when not.
  6. Report metrics, advisory messages, and effectiveness.

What it does

  • Decomposes mixed prompts into discrete, typed subtasks
  • Routes each subtask to the best capability class (deep_reasoning, coding, balanced, fast)
  • Switches models when the host supports it (Claude Code, Codex, Gemini CLI, Aider)
  • Applies routing preferences such as cost or quality on the same router path
  • Runs Python policy plugins when you need logic beyond static remaps
  • Falls back to prompt optimization when the host controls model selection
  • Reports timing, token estimates, effectiveness scores

What it does NOT do

  • Does not make LLM API calls — the host handles execution
  • Does not bypass host constraints — works within your IDE's limits
  • Does not fake model switches — tells you honestly what happened

Design Philosophy

Coding agents run inside a host that owns the LLM connection. routesmith sits alongside the host as a skill layer that makes smarter routing decisions. It's the routing brain, not the execution muscle.

Capability Classes

Instead of hardcoding model names, routesmith uses abstract capability classes:

Class Use Case Example Models
deep_reasoning Planning, architecture, review Claude Opus 4.7, GPT-5.5
coding Implementation, testing, refactoring Claude Sonnet 4.6, GPT-5.3-Codex
balanced Documentation, general tasks Claude Sonnet 4.6, GPT-5.4
fast Formatting, simple transforms Claude Haiku 4.5, GPT-5.4-mini

Each host adapter maps these to actual available models.

Task Types

routesmith classifies prompts into: planning, analysis, coding, testing, refactor, documentation, formatting, review

Dependencies are resolved automatically — tests wait for code, docs wait for implementation.

Configuration

Environment Variables

Variable Description Default
ROUTESMITH_DEFAULT_MODE Execution mode auto
ROUTESMITH_ALLOW_MODEL_SWITCH Allow model switching true
ROUTESMITH_FORCE_HOST Force a specific host
ROUTESMITH_DEBUG Enable debug output false

Config File

Create .routesmith.toml in your project root:

Recommended config shape:

  • Add a [routesmith] section with values such as default_mode = "auto", allow_model_switch = true, and routing_preference = "cost" when you want cheaper model selection.
  • Add a [routesmith.policy_overrides] section when you want static remaps such as planning = "balanced" or documentation = "fast".
  • Add a policy_plugins list when you want importable Python hooks such as my_project.routing:plugin or my_project.routing:CustomPlugin to participate in route resolution.

Built-in routing preferences are balanced, cost, and quality. policy_overrides handles static remaps, while policy_plugins lets you run real Python logic that can adjust capability classes, force explicit models, and attach advisory messages.

MCP / Stdio Server

routesmith exposes an MCP-compatible JSON-RPC 2.0 server for tool integration:

Start it with routesmith serve-stdio.

This lets IDE extensions and agents call routesmith as a tool.

Performance Tracking

routesmith records per-model task outcomes (duration, success/failure, capability class) across runs. Data is stored in .routesmith/performance.json and accumulates over time within a project.

View stats with routesmith stats. Filter to a specific model with routesmith stats --model claude-sonnet-4-6. Clear tracked data with routesmith stats --clear.

When a model's historical success rate drops below 70% or average latency exceeds 5 seconds, routesmith injects performance advisory messages into run results automatically.

Install Configs for Hosts

Generate host-specific configuration files:

  • routesmith install claude writes CLAUDE.md.
  • routesmith install codex writes AGENTS.md.
  • routesmith install gemini writes GEMINI.md.
  • routesmith install copilot writes .github/copilot-instructions.md.
  • routesmith install cursor writes .cursorrules.
  • routesmith install aider writes .aider.conf.yml.

Auto Mode (Default)

Auto mode is the default. For a single mixed prompt, routesmith:

  1. Detects the host environment
  2. Classifies the prompt into task types
  3. Splits into ordered subtasks with dependency resolution
  4. Chooses the best host-compatible model per subtask
  5. Executes (or recommends) the route
  6. Returns metrics and advisory messages

Truthful Switching

  • If the host supports dynamic switching → routesmith switches
  • If the host does NOT support switching → routesmith uses prompt strategy
  • The result always tells you exactly what happened — no black boxes

Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

Development setup:

  1. Clone the repository from https://github.com/sidrat2612/routesmith.git.
  2. Change into the routesmith directory.
  3. Create and activate a virtual environment with python -m venv .venv and source .venv/bin/activate.
  4. Install dev dependencies with pip install -e ".[dev]".
  5. Run the test suite with pytest.

Roadmap

  • Host detection and capability mapping
  • Weighted task decomposition planner
  • Dependency-aware execution loop
  • Persistent route state
  • MCP stdio server
  • Structured observability
  • Config-driven policy overrides
  • Cost-aware routing
  • Python policy plugins
  • Gemini CLI host adapter
  • Real-time model performance tracking
  • Additional host adapters

License

MIT — use it anywhere.


Built for the multi-model future of coding agents.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

routesmith-0.1.5.tar.gz (55.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

routesmith-0.1.5-py3-none-any.whl (61.3 kB view details)

Uploaded Python 3

File details

Details for the file routesmith-0.1.5.tar.gz.

File metadata

  • Download URL: routesmith-0.1.5.tar.gz
  • Upload date:
  • Size: 55.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for routesmith-0.1.5.tar.gz
Algorithm Hash digest
SHA256 a0dc676113346091746e515598718fb4aca5428b88bb41f52b02f8082fd769c2
MD5 bd4614bde781c129e9df1ba415590b34
BLAKE2b-256 3439d49e4c02fd0b94891ea27b50fc211d90946c56c18373d2817f4453f40d76

See more details on using hashes here.

Provenance

The following attestation bundles were made for routesmith-0.1.5.tar.gz:

Publisher: workflow.yml on sidrat2612/routesmith

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file routesmith-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: routesmith-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 61.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for routesmith-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 3b1ab33df4c1aca7d123ba6a213233e7b4db4abc27c4f47ecbbf43dcd6bce543
MD5 aa520e742323ee8f1063ddc8a34e737d
BLAKE2b-256 c4c751da7a5707f060423d6ab0793e280145337a597699555ff4fa9f7fa18a66

See more details on using hashes here.

Provenance

The following attestation bundles were made for routesmith-0.1.5-py3-none-any.whl:

Publisher: workflow.yml on sidrat2612/routesmith

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page