Experimental software. Expect changes and rough edges.

The
high-performance
coding agent

Fast. Accurate. Light on RAM.
Extensible in any language.

Read code, make changes and run tests with your choice of model. See how light the harness is

Installation guide
curl -fsSL https://octet.skaft.org/install | bash
octet v0.9.5
/changelog · what's new
permissions: full access
Ctrl+D to exit
ExploredlistProjects src/
src/api/projects.ts:12 export function listProjects
Readsrc/api/projects.ts
Editsrc/api/projects.ts
−return projects;
+const start = cursor ? indexAfter(projects, cursor) : 0;
+const items = projects.slice(start, start + limit);
+const hasMore = start + limit < projects.length;
+return { items, nextCursor: hasMore ? items.at(-1)?.id : null };
Writesrc/api/projects.test.ts
First page · next cursor · empty result · page limit
Bashnpm test -- projects --runInBand
PASS src/api/projects.test.ts
Tests: 4 passed, 4 total

Pagination, covered.

The endpoint now returns bounded items and a nextCursor.

export async function fetchProjects(cursor?: string) {
  const page = await api.get('/projects', { cursor });
  return { items: page.items, next: page.nextCursor };
}
  • Existing callers keep the first-page default.
  • Jest covers empty pages and cursor boundaries.
✓ completed
›
Scripted examples of coding, delegated workers and web research. Animation pacing is illustrative, not measured model performance. Pause the animation to read the transcript.

Less overhead.
More room for your work.

Native Rust. Your choice of model. No Node or Python required by the core.

Measured by Buffon Provisional results

One prompt with tools · compared with Pi on Node

less peak memory
94.7%
less CPU time
95.3%

Octet 0.9.4 vs Pi 1.3.0 on Node 24.19.0. Linux x64; 12 measured rounds. Peak memory includes all processes.

Octet also scored higher than Codex on Terminal-Bench 2.1 with the same model.

What was measured? Read the figures and limitations.

The figures are reductions from Pi on Node’s median in Buffon’s “One prompt with tools” workload. CPU time measures processor work, not elapsed waiting time. Buffon’s all-process peak-memory metric is separate from single-process RSS.

Same workload, same scripted model
MeasurementOctet 0.9.4Pi 1.3.0 on Node
Peak memory, all processes4.57 MiB86.35 MiB
CPU time24.21 ms517.58 ms

This is one workload, not an overall ranking. Octet is not ahead in every metric: the CSV reports about 9.8% more harness-added time per turn in the separate RPC test. Some modes were not measured. These results do not measure the current v0.9.5 release.

The export and published report were checked together on 2026-10-20. Buffon labels its combined results provisional; hardware and measurement conditions matter. Its authors also develop PiG, another tested harness.

Separate historical Terminal-Bench runs: Octet/Ygg 0.6.2 and Codex 0.144.0 used GPT-5.6 Sol at maximum reasoning, with 89 tasks and 5 trials per task. Raw verifier scores are compared on the same 445-trial basis, before either audit. Run dates and adjudication differ; this is not an official combined ranking or a measurement of v0.9.5. Codex submission.

Explore all Buffon results Inspect the source report

Extensible in any language.

Build tools in the language you already use.

Source SDKs. C/C++ use native wrappers.

Start building

One agent.
Your choice of model.

Cloud or local. A familiar provider or your own endpoint. Switch models without switching tools, and keep your workflow yours.

The provider you prefer.

Use native routes for Anthropic, OpenAI, Gemini, Bedrock and more. Choose a model with /model and keep working in the same session.

Setup guide
octet --model anthropic/claude-sonnet-5

Set the provider’s credentials before starting.

AnthropicOpenAIGeminiOpenRouterBedrockSee all providers ↗

Easy to get into.
Open to build on.

Start with guided setup. Keep your preferences in a simple configuration file. Go further with your own instructions, skills and tools.

Set it up your way.

Choose your model, reasoning and permissions. Bring repository instructions and reusable prompts. The terminal’s model-aware palette keeps your current model in view.

model = "gpt-6-astra"
reasoning = "high"
Make it your default

Build your kind of agent.

Add tools through local processes that speak JSON-RPC. Optional integrations bring subagents, codemode, computer use, web search and MCP into the workflow.

Understand.
Change. Verify.

Ask a question about a codebase. Trace a bug. Make a change and run its tests. octet works with the files and tools already in your repository.

Sessions stay on disk. Resume where you left off, branch from an earlier message, or export the conversation for a handoff.

A few useful answers.

What is octet?

octet is a free, open-source, high-performance coding agent built in Rust. It works in your repository: read code, make changes and run tests, using your choice of cloud or local model. Run your first task ↗

Is octet Pi in Rust?

octet draws on Pi’s agent architecture and terminal interaction patterns; its TUI crate is a Rust port of Pi’s TUI architecture. octet is a separate project, not a drop-in replacement for Pi extensions. Review the migration guide before moving a Pi setup. Moving from Pi ↗

Can I extend the coding agent in any language?

Yes. Extensions are local processes that speak JSON-RPC over stdin and stdout. Use any language that can read and write JSON lines; Rust and Python are not required. Installing, enabling and trusting a package are separate steps. Write an extension ↗

Can octet use OpenRouter and local models?

Yes. Choose OpenRouter or another hosted provider, or connect a local OpenAI-compatible model server. Model capabilities depend on the selected model and route. The website does not make inference requests or transmit your documentation searches. Choose a provider ↗

Make yourself at home.

Free and open source. MIT licensed.

Run your first task