Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,516 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ronin

Ronin

浪人 · a masterless samurai
Your agents. Your machine. No master but you.

Gallery · Why Ronin · Run it · Docs


Ronin is a lean desktop harness for coding agents — rebuilt UI, thinner surface, same sharp forge.

Drive the CLIs you already pay for (Codex, Claude Code, Cursor, Grok Build, OpenCode, Antigravity, Droid, Kilo, Pi) from a dark-first Electron shell: chat, terminal, preview, git, usage, and settings. Bring your own subscription. Nothing is sold here.

And you are not married to the agent you started with — hand a live thread to a different provider mid-conversation and it picks up where the last one left off. How it works ↓

This tree is a fork of T3 Code — event-sourced server, multi-provider adapters, remote-ready websockets — re-cut and re-skinned for a masterless desktop.


Gallery

Ronin workspace — new thread composer, slim sidebar, git actions in the top bar

Workspace — centered composer, resizable sidebar, project-aware threads, source control in the title bar.


Ronin Appearance settings — color scheme, built-in themes including OLED Void

Appearance — system / light / dark, first-party themes (Tsukimi, Aizome, Urushi, OLED Void…), typography you can tune.


Ronin Usage page — token cost charts and model breakdown

Usage — spend and tokens by provider and model, with a one-click path back to the editor.


How Ronin differs from T3 Code

T3 Code is an excellent open product with a wide surface. Ronin is that product after a deliberate cut — and a full UI pass.

T3 Code Ronin
UI Classic T3 shell New workspace chrome — slim sidebar, hairline topbar, calmer density
Identity Broad agent control surface Desktop-first fork with a sharper edge
Product surface Desktop + local web + cloud/Connect + mobile/marketing Desktop + local server/renderer only
Windows / WSL Dual backend, WSL distro orchestration Native backends only — no WSL
Preview Element pick, PiP, Playwright automation Tabs, navigate, screenshot, recording
Sidebar Legacy tree toggle + modern cards One modern sidebar — no legacy tree
Assistant output Optional token-by-token streaming Buffered only — cleaner read path
Provider binding Fixed once a thread starts Switchable mid-thread — the conversation is carried over
Themes Managed palettes Managed + deep OLED (Void, Azure, Phosphor, Plasma…) + Ronin brand theme
Git Full source control Kept — checkpoints, diffs, branches, PR flows
Packaging Multi-platform + WSL prebuilds Linux-first, Mac supported; artifacts named Ronin
Philosophy Feature-rich open default Measure twice, cut once

UI that changed

  • Workspace shell — resizable left rail, floating collapse control, single topbar strip for chat / settings / usage
  • Composer-first empty state — “What should we build in …?” with provider, effort, and plan controls in one card
  • Git in the chrome — Open / Commit (and related actions) live in the workspace topbar, not buried
  • Settings as a place — Appearance, providers, source control, connections in a dedicated nav (not a grab bag)
  • Usage as a first-class page — charts, model breakdown, Back to editor

What we cut

  • T3 Connect / hosted relay — no cloud pairing product, no Clerk-shaped hosted path
  • Mobile app & marketing site — not in this repo
  • WSL as a second OS — no wsl.exe orchestrator, distro picker, or dual Windows+Linux backend
  • Playwright preview fat — no element pick, no PiP window, no injected automation runtime
  • Legacy sidebar — original per-project tree UI and its settings toggle
  • Legacy token streaming — token-by-token paint path removed; assistants buffer cleanly
  • Packaging ballast — WSL node-pty prebuild job, dual-OS Windows stage deps for WSL

What we keep (on purpose)

  • Git features — checkpoints, restore, diffs, worktrees, source control UI, PRs
  • Multi-provider agents — Codex · Claude · Cursor · Grok · OpenCode · Antigravity · Droid · Kilo · Pi
  • Remote-ready architecture — local, LAN, Tailscale / SSH
  • Performance posture — no continuous GPU-burning chrome; careful websocket + render cost
  • Open source — forkable, inspectable, yours

Ronin is not “T3 Code but worse.” It is T3 Code with the masterless cut: fewer doors, same forge, new face.


What you get

┌─────────────────────────────────────────────────────────┐
│  Ronin (Electron)                                       │
│  ┌──────────┐  ┌────────────────────────────────────┐   │
│  │ Sidebar  │  │ Workspace topbar · git · panels    │   │
│  │ Threads  │  │ Chat · composer · terminal         │   │
│  │ PRs ·    │  │ Usage · Settings · OLED themes     │   │
│  │ Usage    │  └──────────────────▲─────────────────┘   │
│  └────┬─────┘                     │                     │
│       │ typed WS / IPC            │                     │
│  ┌────▼───────────────────────────┴─────────────────┐   │
│  │  Server · event-sourced · provider adapters      │   │
│  │  checkpoints · reactors · receipts               │   │
│  └──────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────┘
  • Desktop app — primary surface (Electron embeds the web renderer)
  • Local server — Node backend on your machine
  • Your providers — if the CLI works in a terminal, Ronin can drive it
  • Source control — first-class git, not an afterthought
  • Provider switching — hand a live thread from one agent to another; it resumes its own session, or reads a brief of the conversation and the files changed so far (docs)
  • Agent skills — reusable SKILL.md workflows, including a portable ~/.ronin/skills folder that works on every provider (docs)
  • Slash commands/clear, /compact, /model, /review, /fork, /status and friends, alongside your provider's own commands (docs)

Switch provider mid-thread

Every other harness binds a thread to the agent that opened it. Ronin does not. Pick another provider in the composer, confirm, and the next message goes to the new agent — same thread, same history, same checkpoints.

  • Been here before? It resumes its own session and only catches up on what it missed while it was away.
  • New to the thread? It starts fresh and reads a brief built from the thread itself — the conversation, the working directory and branch, and the files changed so far.

The transcript marks the handover, so you always know who wrote what. Switching back later resumes the earlier agent rather than re-briefing it; each provider keeps its own place in the thread.

Ronin asks before a handover: the incoming agent writes code its own way, so later edits can drift from the approach already in your files.

Full details: docs/user/switching-providers.md.


Run it

Important

Install and authenticate at least one provider first:

Provider Install Auth
Codex Codex CLI codex login
Claude Claude Code claude auth login
Cursor Cursor CLI agent login
Grok Build Grok Build CLI grok login
OpenCode OpenCode opencode auth login
Antigravity Antigravity CLI (agy) sign in via agy
Droid Factory Droid droid / FACTORY_API_KEY
Kilo Kilo CLI kilo auth
Pi Pi pi

From this fork

# Node 22.16+ / 23.11+ / 24.10+
curl -fsSL https://vite.plus | bash   # install vp (macOS/Linux)

vp i
vp run dev            # server + web
# or
vp run dev:desktop    # Electron shell

Ports are worktree-stable; read the [dev-runner] line for the real URL. Pairing needs the full URL including the token.

Desktop artifact

vp run build:desktop
vp run dist:desktop:linux          # primary path
vp run dist:desktop:dmg:arm64      # macOS

Artifacts ship as Ronin-${version}-${arch}.${ext}.


Themes

Dark-first by default. Built-ins include Ronin, Paper, Graphite, Obsidian, Carbon, and pure-black OLED Void (plus Azure / Phosphor / Plasma siblings). Import or create your own. On Wayland+Vulkan, desktop softens glass so backdrop blur does not fall over.

Theme picker


Documentation

Audience Start here
Using Ronin docs/user/install.md
Keybindings docs/user/keybindings.md
Switching provider docs/user/switching-providers.md
Agent skills docs/user/agent-skills.md
Slash commands docs/user/slash-commands.md
Source control docs/user/source-control.md
Remote / Tailscale docs/user/remote-access.md
Architecture docs/internals/overview.md
Glossary docs/internals/glossary.md

Full tree: docs/.


Status

Early. Expect bugs. Prefer small fixes over grand PRs unless we ask.

Read CONTRIBUTING.md before opening an issue or PR.


Lineage

Ronin stands on T3 Code by Theo and the T3 tools team.

Some later product surfaces — portable Agent skills, composer slash commands, and the extra providers Antigravity, Droid, Kilo, and Pi — were adapted from Synara by Emanuele. We kept Ronin’s existing Codex / Claude / Cursor / Grok / OpenCode adapters and its event-sourced core; Synara was the reference for how those extra tools should feel.

upstream  →  pingdotgg/t3code
reference →  Emanuele-web04/synara
this fork →  0veek/Ronin

Screenshots live in Screenshots/ (Code.png, Themes.png, Usage.png).


浪人 — cut free. Keep the blade sharp.

About

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages