skip to content

⚔️ シュヴァリエ | Shuvarie

The AI coding agent
for chivalrous people.

Shuvarie lives in your terminal. It reads your code, edits files, runs tools and keeps a forkable history of every decision — all under explicit, granular permissions you control.

shuvarie

// features

A toolkit that keeps its oaths

Everything the agent touches passes a permission ward first. Nothing is reverted behind your back — only fate is re-chosen.

01

Bring your own model

OpenAI-compatible, Anthropic, Google, Bedrock, Ollama and more, configured in one connections.kdl and switchable on the fly with /model.

02

Codemode

One tool that runs a Rhai script, and the script calls the others: dependent calls become one round trip, intermediate results never reach the context.

03

Sessions & forking

Every session is a tree. Inspect it with /tree, roll back with /undo, replay a turn, and export or import the whole thing as JSON.

04

Tabs

A tab is a separate agent: its own workspace, conversation and composer. /newtab ~/another-project runs a second one there, Alt+←/→ switch, Alt+1…9 jump.

05

Skills

Reusable prompts and procedures stored as markdown, discovered from .agents/skills and invoked straight from the prompt as /skill:<name>.

06

Scenes & themes

Built-in Advisor, Reviewer and Orchestrator scenes plus five theme families. Drop in scene.d and themes.d files, switch live with /scene.

07

Attachments

/attach fuzzy-finds a PDF, office document, spreadsheet, EPUB or image to send with the prompt — as a chip on the pending strip, never as text. /manage-attachments reorders and prunes them.

08

Permissions & trust

A workspace trust prompt on first run, plus a granular allow / deny / ask policy for paths, shells and tools — optionally backed by decision models.

09

Keyboard-first

Every action has a keybinding, and Ctrl+M puts every command one keystroke away. Emacs editing keys work where you expect them.

10

Headless mode

shuvarie run "…" drives the agent without the TUI, streaming the reply to stdout and the tool log to stderr — same config, permissions and sessions.

// spotlight

Codemode: the tool that calls the tools

Most agents burn a round trip per tool call. Shuvarie hands the model one tool that runs a Rhai script — and inside that script, every other tool is callable. Dependent calls collapse into one turn, and only what the script returns ever reaches the context window.

  • ▸One round trip for a whole chain of lookups.
  • ▸Intermediate output is filtered in the script, not the context.
  • ▸On by default; timeouts, call caps and inline budgets in shuvarie.kdl.
  • ▸/codemode switches the offer, the roster and state keeping mid-session.
read the codemode docs →
codemode · script.rhai run by the model, once
// one call, many tools — results stay in the script
let hits = tools::grep({# pattern: "fn export", path: "src" });

let sources = hits.map(|h| tools::read_file({# path: h.path }));

let offenders = sources.filter(|s| !s.contains("dry_run"));

text(`${offenders.len} call sites miss dry-run`);
✓ 3 tools · 0 context tokens spent on the middle steps

// install

Summon it in millis

A single binary. Pick a provider on first launch — a local Ollama needs no key — and answer the workspace trust prompt. Then type.

x86_64-linux aarch64-linux x86_64-darwin aarch64-darwin
full install guide →
shuvarie

An agentic AI pair-programmer that lives in your terminal — for chivalrous people.

elsewhere github license mail

白き騎士 / コードの闇へ / 光差す — moonshotai/Kimi-K2.6

© 2026 Charles Dong