Model or dataset
Tura-AI/tura avatar
Tura-AI/tura

Tura: a Rust agent harness that replaces the ReAct tool loop with one command_run graph

Across 348 long-horizon benchmark sessions, Tura used up to 83.1% fewer turns on the rewrite benchmark and improved the DeepSWE pass rate by up to 16.7 percentage points compared with Codex CLI.

646 stars35 forksRustAGPL-3.0

At a glance

What is it?
Tura is an open source coding agent runtime written in Rust, distributed on npm as tura-ai. Its published DeepSWE comparison reports fewer turns and tokens than Codex CLI, but the project's own README says the evidence does not cover every provider.
Who is it for?
Adopt Tura if you want a local, Rust-based coding agent whose macro command_run tool collapses multi-step shell and patch work into a single model turn, and you are willing to read ARCHITECTURE.md and docs/KNOWN_ISSUES.md before trusting it on a real repository. Do not adopt it if you need published, provider-neutral evidence across Anthropic, Gemini, OpenAI-compatible and local models, because the README states those measurements are still roadmap items.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 5 days ago.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The problem Tura targets: repeated model round trips inside a ReAct loop

In a ReAct session the model re-enters after every tool result, carrying the system prompt and a growing context each time. The README states this plainly: inspect, wait, patch, wait, build, wait, test, wait. The cost is not the commands themselves but the conversational overhead around them.

Tura is aimed at engineers running long-horizon coding tasks where the agent needs many shell commands, patches and test runs against a real repository. The README frames the audience as anyone who wants better results with fewer tokens, and the repository ships both a TUI and a GUI workspace plus a Tauri desktop app, so it is not a single-purpose CLI.

The project is written in Rust, licensed AGPL-3.0, and published to npm as tura-ai with a tura binary. The last push to the default branch was on 2026-08-16, and v0.1.37 was released the same day.

How command_run turns five LLM turns into one

The mechanism is visible in the README's side-by-side example. A conventional tool-calling agent is given many small tools and issues them one at a time: a ripgrep search, then a patch, then cargo build, then cargo test, then cargo clippy, each requiring the model to come back.

Tura exposes one macro tool instead, named command_run, and the model builds a multi-step execution tree inside it. Each entry carries a step number, a command_type and a command_line, so several shell commands can share step 1 and the patch can sit at step 2. The runtime executes that graph deterministically without another model round trip.

The README is explicit that this is not an ablation result: it states there is no test proving command_run alone causes the lower turn and token usage. Treat the mechanism as the design intent and the benchmark numbers as aggregate outcomes of the whole harness, not of this one tool.

The second design choice is backward reasoning. The README argues an LLM is a statistical induction model over token probabilities, so it favours common code and common logic, which is often mediocre. Tura instead guides the model to estimate the state before the goal and reason backward through the execution path, reconstructing the failure state rather than walking forward from the current state.

Installing tura-ai from npm and running a first command_run

The package.json declares the binary as npm/tura.mjs and requires Node 20 or newer, with darwin, linux and win32 listed as supported platforms. Installation is therefore an npm install of the tura-ai package, which is the only install path the material documents.

The package metadata also pins [email protected] as packageManager and the workspace uses edition 2024 with a rust-toolchain.toml at the repository root, so building from source needs a recent Rust toolchain in addition to Node.

bash
npm install -g tura-ai
tura --version

After that, the first real use is the macro tool itself. The README gives this shape for a command_run invocation, where commands is an array of steps:

json
{
  "name": "command_run",
  "arguments": {
    "commands": [
      {
        "step": 1,
        "command_type": "shell_command",
        "command_line": "rg -n \"TODO|command_run|handler\" crates/"
      },
      {
        "step": 2,
        "command_type": "apply_patch",
        "command_line": "*** Begin Patch\n*** Update File: crates/tools/src/command_run/handler.rs\n@@\n"
      }
    ]
  }
}

What you should see is the runtime executing both entries in order and returning the combined result to the model in one turn rather than two. The README does not document the CLI flags for selecting a provider or a session, so check ARCHITECTURE.md and the docs directory before assuming a configuration surface.

Where the published benchmark stops and the roadmap begins

The headline figures come from a specific test set: 20 DeepSWE v1.1 tasks run three times per agent, plus 5 rewrite tasks and 2 separately reviewed design tasks, across Tura Balanced, Tura Direct and Codex CLI. The README reports 77.5% fewer aggregate tokens for Direct at a 65.0% verifier success rate against Codex CLI's 63.3%, and 80.0% for Balanced, 16.7 percentage points higher while still using 31.1% fewer tokens.

The same README then qualifies all of it. It states the published results do not establish equivalent quality or performance for every configured provider, and that broader Anthropic/Claude, Google/Gemini, OpenAI-compatible, local-provider, UI-latency, runtime and session parsing, and cross-OS measurements remain part of the roadmap and known evidence gaps. That is an unusually direct admission, and it should shape how you read the numbers.

There is also a caveat about the benchmark itself: the README says there is no ablation test isolating command_run. If your workload is a single-file edit, the macro graph buys you little, because there are no intermediate results to batch.

The case against Tura, and how it differs from a plain ReAct agent

The honest comparison is not Tura versus another named product, because the material only names Codex CLI as a benchmark baseline. The real difference is architectural. A ReAct-style agent keeps the model in the loop after every tool result, which makes each step inspectable and interruptible. Tura moves that loop into the runtime, which is faster and cheaper but also means a mistake in a command graph runs to completion before you can react.

That is the failure mode worth naming. The README's own example batches a search, a patch, a build, a test and a lint into a planned sequence. If the patch is wrong, the build and test steps still execute against it. A ReAct agent would let you stop between steps. Tura trades that granular control for round-trip savings.

Tura is also the wrong tool if you need provider portability today. The README puts Anthropic, Gemini, OpenAI-compatible and local-provider measurements on the roadmap, so if your stack is not the one the benchmark artifacts cover, you are outside the tested envelope. And if you need a permissive licence, AGPL-3.0 is a real constraint for anything you intend to redistribute or run as a network service.

Maintenance cost, licence and what to check before upgrading

The repository is not archived and the last push was on 2026-08-16, with three releases inside a month: v0.1.35 on 2026-07-28, then v0.1.36 and v0.1.37 on 2026-08-16. That release cadence suggests active work, but the version numbers themselves are still 0.1.x, so expect churn in the workspace layout.

Upgrade cost is mostly structural. The Cargo workspace lists sixteen default members including crates/runtime, crates/router, crates/tools, crates/gateway, crates/session_log, agents and personas, and the npm package ships a large file list covering apps/tui, apps/gui and the Tauri app. The root requirements.txt states that root Python installs are intentionally unused and that command-owned dependencies are installed with uv in commands/read_media/requirements.txt and commands/web_discover/requirements.txt. If you pin the npm package but build the Rust crates separately, keep those two versions aligned: package.json is at 0.1.37 while the Cargo workspace package version is 0.1.0.

The licence is AGPL-3.0-or-later in both package.json and the Cargo workspace. That is a copyleft licence, and the practical question is whether your distribution model triggers its network-use clause. This is not legal advice; read LICENSE and decide with whoever handles your compliance.

Editorial conclusion

Adopt Tura if you want a local, Rust-based coding agent whose macro command_run tool collapses multi-step shell and patch work into a single model turn, and you are willing to read ARCHITECTURE.md and docs/KNOWN_ISSUES.md before trusting it on a real repository. Do not adopt it if you need published, provider-neutral evidence across Anthropic, Gemini, OpenAI-compatible and local models, because the README states those measurements are still roadmap items. Before you commit, verify that node is at least 20, that the tura-ai package version you install matches the Cargo workspace you intend to build, and that your provider configuration is one of the ones the published benchmark artifacts actually cover.

Frequently asked questions

What does Tura mean?

The repository does not define the name. The npm package is tura-ai, the binary is tura, and the project describes itself as an open-source agent runtime harness that delivers better results with fewer tokens. Nothing in the README or package.json expands it into an acronym.

How do I install Tura from npm?

The package.json declares the bin entry as npm/tura.mjs and requires Node 20 or newer, with darwin, linux and win32 as the supported platforms. Installing the tura-ai package is the only install path the material documents.

What is the command_run tool in Tura?

It is the single macro tool Tura exposes instead of many small tools. The README shows it taking a commands array where each entry has a step, a command_type and a command_line, allowing a search, a patch and a build to run as one runtime-managed graph.

Which models and providers does Tura support?

The README does not list a supported provider matrix. It states that broader Anthropic/Claude, Google/Gemini, OpenAI-compatible and local-provider measurements remain part of the roadmap and known evidence gaps, so the published comparison does not cover every configured provider.

What licence does Tura use?

Both package.json and the Cargo workspace declare AGPL-3.0-or-later. The repository root contains a LICENSE file alongside the README and ARCHITECTURE.md.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/tura-ai-tura.svg)](https://hysenlabs.com/projects/tura-ai-tura)