Routsi banner
muthuishere muthuishere

Routsi

AI community

Description

OpenAI-compatible endpoint that dynamically routes each request to the right API model or agent (Devin, Codex, Copilot, Claude Code)

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

routsi

One OpenAI-compatible endpoint that routes each request to the right **model or agent** — API models (OpenRouter, OpenAI, DeepSeek, …) *and* local agent CLIs (Devin, Codex, Copilot, Claude Code) — with per-task routing, per-conversation stickiness, a live dashboard, and metrics. A single Go binary; point any OpenAI SDK at it.

**New here? → [Get started](docs/getting-started.md)** — a copy-paste config with a cheap and a strong rung on OpenRouter (Qwen 3.7), running in five minutes.

Quick start

task build                       # -> bin/routsi
cp models.yaml ~/.config/routsi/ # or keep ./models.yaml
routsi serve                     # listens on :11080 by default

Install via npm

npm install -g @muthuishere/routsi

`postinstall` best-effort prefetches the prebuilt `routsi` binary for your OS/arch from [GitHub Releases](https://github.com/muthuishere/routsi/releases) — no Go toolchain needed. The launcher is self-healing: if postinstall didn't run (blocked by `allow-scripts`, offline, whatever), the first `routsi` invocation fetches the binary itself, so the command always works either way. See [`docs/adr/006-npm-distribution.md`](docs/adr/006-npm-distribution.md) for how it works.

Point any OpenAI client at `http://localhost:11080/v1`. Then:

curl localhost:11080/v1/chat/completions -H 'content-type: application/json' \
  -d '{"model":"auto","messages":[{"role":"user","content":"hello"}]}'
  • model: "auto" — routsi classifies the task and picks a tier.
  • model: "dynamic-1" — a named group you define (low/medium/high members).
  • model: "openrouter/anthropic/claude-haiku-4.5" — a concrete model, no routing.
  • model: "devin/opus" — an agent as a model.

Custom decider

`auto`/dynamic routing normally classifies with the built-in `Rules` heuristic. To plug in your own routing brain, add a `decider:` block to `models.yaml`:

decider:
  command: "node examples/decider.js"   # any executa