Local-first · open source · pluggable · extensible

A programmable proxy for coding agents.

Torana sits between your AI coding agent and its model. Add plugins to check for secrets, track usage, or let a local model help—without changing your agent.

Install on macOS or Linux

curl -fsSL https://torana.sh/install.sh | sh
Windows (PowerShell)
$installer = Join-Path $env:TEMP ("torana-install-" + [guid]::NewGuid() + ".ps1")
Invoke-WebRequest https://torana.sh/install.ps1 -OutFile $installer
& $installer
Remove-Item -LiteralPath $installer

Direct downloads ↗

Runs on your machine. No cloud deployment or Torana account required.

How it works

Your coding agent sends a request through Torana and its approved plugin pipeline to your configured provider. The response returns through Torana to your agent. The agent and Torana run on your machine; a remote provider is shown here.

On your machine

Your coding agentYour tools. Your workflow.
ToranaYour approved plugin pipeline
  • Observe
  • Apply policy
  • Transform
Your model providerThe endpoint you configured

Remote provider shown. You can also connect a supported local model endpoint.

Your workflow, beyond one harness.

Keep the reusable parts of your setup in Torana. Try an existing plugin, or write the small piece you keep rebuilding.

Connect different models.

Keep your provider, or connect to a supported model with a different API. Torana translates the requests and responses; your coding agent still runs its own tools and asks for approvals.

Set up a bridge →

Write the logic once.

Keep your workflow tweaks in a plugin, not in one agent’s setup. Torana gives plugins a shared format across supported OpenAI, Anthropic, and Gemini APIs.

How formats work →

Go or Rust. Compiled to WASM.

Build small plugins with the provided SDKs, without modifying Torana itself. Start with an example and make it fit your workflow.

Explore the SDKs ↗

Choose what plugins can do.

Inspect requested permissions, approve access, and control the plugin pipeline running on your machine. Installation alone does not grant access or enable a plugin.

Review the lifecycle →

Let your agent ask Torana.

Your agent can check this chat’s usage, ask why a plugin acted, or request a change for you to approve. Connect it through MCP—the standard interface agents use to discover tools.

Connect MCP tools →

Install a plugin. Share yours.

Install a maintained plugin by name, then review and approve it locally. Your own workflow hacks can live in your own repository too—no central publishing step required.

A few plugins to start with.

Three examples. Pick what helps your workflow.

Browse all 12 plugins →

pii

Use an operator-bound local model for contextual checks before new tool output—including failed commands—reaches the primary provider. Your harness can ask for value-free categories and line numbers from the latest protection.

Details →

usage_logger

Write one content-free JSONL record for each completed response, then let your harness read best-effort token totals for its verified session without exposing prompts or log contents.

Details →

tool_governor

Restrict or replace model-visible tool definitions. Your harness can also request a reversible, user-confirmed allowance for a tool your allowlist omits; explicit denies always apply, and execution approval still belongs to the harness.

Details →

One binary. One local port.

Start, stop, inspect requests and manage your plugins from the terminal. Try a focused local model checking tool output while your agent keeps using its hosted model. No local model yet? Start with usage logging or deterministic checks.

Open the walkthrough →

Send one request through the proxy. See it in the local feed. Then add a plugin.

Make it part of your workflow.

Try Torana on a coding task. Hack together a plugin for your own use case—a context policy, a tool integration, or that bit of glue you keep rebuilding. Share what you make.

Torana runs locally; your requests still reach the provider you choose. Check compatibility before trying your agent.