In development · no release yet GPLv3, royalty-free or commercial — your choice

runa.

Local-first AI CLI — fit-check a GGUF before you download it, run it locally via ggml / llama.cpp, or hit OpenAI and Anthropic.

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/pyrlyn/runa/releases/latest/download/runa-installer.sh | sh

runa has no published release yet, so the installer above works from the first GitHub release. Until then, build from source (see Install below).

The runa mark: a geometric rune stave with an ember glowing at its base, on warm charcoal glass.

See it run

runa, in the terminal.

runa — zsh
$ runa fit hf:unsloth/Qwen3-30B-A3B-GGUF:Q4_K_M --ctx 16384 --kv q8_0
$ runa fit --recommend --use code
$ runa fit --recommend --offline --top 5
$ runa run qwen "explain KV-cache quantization in one paragraph"
$ runa chat qwen --tui
$ runa serve --port 8080
Commands from the runa usage examples.

Overview

What runa does.

runa is one CLI binary that runs AI models locally (GGUF via ggml / llama.cpp) or through the OpenAI and Anthropic APIs. Thinking controls, structured output, tools and runa serve work the same way on both sides.

Before you download a model, runa fit tells you whether it runs on this machine and how fast, and the forecast calibrates to your device as you record runa bench runs. Release binaries are portable CPU builds for macOS arm64, Linux x86_64 and Windows x86_64; Metal, Vulkan and CUDA builds are extra artifacts. No telemetry.

runa is in development: the v0.1.0 tag has no GitHub release yet, so the installer and the Homebrew formula below work from the first release. Until then, build from source.

Features

Built for real workflows.

Install

Up and running in a minute.

Install

From a GitHub Release (portable CPU archives; Metal / Vulkan / CUDA are extra artifacts):

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/pyrlyn/runa/releases/latest/download/runa-installer.sh | sh

Or Homebrew from the formula on that Release:

brew install ./runa.rb

Host-tuned local build:

RUSTFLAGS='-C target-cpu=native' cargo build --release --features native

Usage

Fit-check a model before downloading it, and find the best catalog models for this machine:

runa fit hf:unsloth/Qwen3-30B-A3B-GGUF:Q4_K_M --ctx 16384 --kv q8_0
runa fit --recommend --use code
runa fit --recommend --offline --top 5

More examples below.

Usage examples

Real commands, straight from the docs.

Run, chat, or serve an OpenAI-compatible HTTP API:

runa run qwen "explain KV-cache quantization in one paragraph"
runa chat qwen --tui
runa serve --port 8080

Calibrate speed predictions with a measured run:

runa bench qwen2.gguf --mode cpu --pp 512 --tg 128
runa fit qwen2.gguf --json

Cap reasoning tokens, or let the model call MCP tools:

runa run qwen3-8b.gguf "What is 2+2?" --think-budget 32 --max-tokens 48 --json
runa run qwen3 "What is the weather in Paris?" --mcp 'python3 weather_server.py'

Transcribe audio with whisper.cpp:

runa media transcribe --model base --lang auto clip.wav

Links

License

You can use runa under any of the following licenses, at your choice:

  1. GNU GPLv3 — free for open-source applications on any platform, including embedded systems.
  2. Royalty-free license — free for proprietary desktop, mobile and web applications, as long as you disclose that your application uses the project. Embedded systems are not covered.
  3. Commercial license — for proprietary applications, including embedded systems, without the attribution requirement.

Pricing

Pro is a placeholder

Free forever. Pro when you need it.

Free · open source

GPLv3, royalty-free or commercial — your choice

$0forever

  • Fit check before any download
  • Local GGUF and cloud APIs, same controls
  • OpenAI-compatible runa serve
Install free

Try runa today.

Free and open source. Star it, file an issue, or send a pull request.