Write a plugin once. Use it across the coding harnesses and supported model APIs you route through Torana.
The Go and Rust SDKs give your plugin a shared request/response format, typed hooks, and helpers for safe transformations. Torana handles provider parsing, WASM isolation and operator-approved resources.
With Torana installed:
torana plugin new my-plugin # Go
torana plugin new my-rust-plugin --language rustChoose one and follow Your first plugin: build, inspect, approve, enable, and see it handle a request. You do not need to fork this repo or register a plugin to share it.
| You want to… | Read |
|---|---|
| Get a plugin running | First plugin |
| Add hooks, settings, resources or tests | Authoring reference |
| Understand mutation, streaming and cache safety | Plugin semantics |
| Implement an SDK or inspect the ABI | WASM contract |
| Look up permissions | Capability reference |
| Work in Rust | Rust SDK |
| Find working plugins to learn from | Official plugins |
Plugins have no ambient filesystem or sockets. Files, HTTP endpoints, model services, pricing and credentials must be declared and approved for the exact bundle. Private cache entries belong to one plugin; cross-plugin exchange requires separate shared-cache permissions.
For optional JSON operations exposed to agents, see Add agent-facing operations.
SDK v0.6.1 implements ABI major 1, contract revision 1. SDK package versions and Edge releases are separate. Use the SDK version documented by your target host. Go uses the module tag, and Rust uses the matching crate release.
v0.7.0 adds typed suggestion and declared-model-capability
calls plus optional route effort. Those calls require a host that implements
them; UNSPECIFIED effort leaves the harness request unchanged. Neither SDK
version injects provider-specific conversation history to preserve an effort
change's prompt cache.
go test ./...
./scripts/check-doc-examples.shThe example check executes maintained Go recipes and compiles the Rust
examples; it is not a test of every prose snippet. Go WASM plugins require
reactor mode (-buildmode=c-shared), which torana plugin build supplies.
Both languages run compiled guests through Edge's conformance harness. ABI changes need matching Go/Rust helpers, generated bindings, host enforcement and cross-repository tests. Read AGENTS.md for repository contribution boundaries and RELEASING.md for release procedures.