Tori is a macOS app that puts every agent session you have going into one window: a tree of projects and branches, a real terminal and chat per session, an editor with language servers and debuggers, and a review panel that stages and commits what the agent wrote. It does not bundle an agent and it is not tied to one. Seven agent CLIs are supported out of the box, and any other is a TOML file away.
Getting started
Install the app and walk through setup.
Workspace
Spaces, projects and branches, the panes they open in, and how to jump around.
Agents and chat
The seven agent CLIs Tori drives, the chat view, and accounts.
- Chat
- Starting a chat
- The composer
- Steering and the queue
- Models, effort and modes
- Permissions and questions
- When nobody is watching
- Reading the transcript
- Subagents and background work
- Chats that work together
- Rewind and fork
- Side chats
- Limits and spending
- What work costs
- Accounts and usage
- Agents in Settings
- Supported agents and adapters
Git and review
Worktrees, the Changes panel, and pull requests from the window.
Editor and tools
An editor with language servers, a real terminal, themes and fonts.
Automation
Autopilot, Tori's own MCP server, and the tori CLI.
Phone app
Pair a phone and follow your sessions from anywhere.
Reference
Every setting, and every file Tori writes to disk.
Where to start
- New here: Install, then First run.
- Your first chat: Starting a chat and The composer.
- Talking to an agent while it works: Steering and the queue.
- Agents in parallel without collisions: Worktrees and branches.
- Undoing what an agent did: Checkpoints and Rewind and fork.
- Every key: Keyboard shortcuts.
Why
Running one agent in one terminal is fine. Running four, across three repositories and a couple of worktrees, is a tab-management problem, and the part you actually care about (which one is waiting on you) is the part a terminal cannot tell you.
Tori watches each agent’s own session transcripts and process state, so every row in the tree says working, needs you, or done, and a parent row rolls its children up. You look at one list and know where to go next.
What it does
Sessions. A tree of sessions grouped into spaces, with a git branch graph and worktree support. Clicking a session focuses its terminal or chat tab, or resumes it if it is not running. Turn level checkpoints snapshot the repo per prompt, so you can diff or revert a single turn.
Editor and review. A CodeMirror editor with language servers, diff gutters, and markdown, image and PDF preview. The Changes panel stages, unstages, commits, pushes, and opens a pull request, hunk by hunk if you want. You can send a review’s hunk comments as one message, or an editor selection, straight into a session, and search across the whole project.
Autopilot. Hand it a queue of issues and pull requests and it starts a worker session for each, watches them, and only stops for you when a decision needs to leave the machine: opening a pull request, submitting a review, or merging. Off by default.
Your phone. Pair a phone with a running Tori over Tailscale, from anywhere, and you get the session tree, chat, and autopilot’s decision cards there too.
Accounts and limits. Sign in to an agent more than once, see each account’s quota in the title bar, pin a client’s repository to that client’s login, and set spending ceilings per chat and per project.
Several repositories at once. A Topic is one branch across any set of repositories, opened as a single workspace with one chat that sees all of them.
Scriptable. A tori CLI in every shell Tori opens and an MCP server
for the agents themselves, so a script or an agent can start sessions, ask
you questions and open pull requests, behind approvals.
Interface. A command palette, quick open, a shortcut sheet, menu bar tray, OS notifications, and a dock badge for sessions that need you. 22 themes, dark and light.
Guard rails. A folder cannot run its own code until you trust it, a background session cannot push or post without an approval for that exact draft, and Tori never presses Enter in your terminal. See the security model.
Supported agents
Tori ships with adapters for five agent CLIs: Claude, Codex, Copilot, OpenCode, and Pi. It drives whichever of these you already have installed; it does not bundle any of them. Settings > Agents shows which ones it found, at what version, and what it can do with each, since the adapters do not all have the same capabilities: Claude is the most deeply integrated (live status from its own hooks, mid-turn steering, a fork-based rewind), and the others run over the Agent Client Protocol with a shared, smaller floor.
Adding another agent does not require a fork. Add one from the
catalog, or drop a TOML file into ~/.config/tori/packs/agents/
describing how to launch it; the schema is documented and stable.
Privacy
Tori sends no telemetry. There is no analytics, no automatic crash reporting (a crash file stays on your Mac until you choose to report it), and no usage tracking of any kind. Its own network requests are listed one by one in Files on disk and privacy: an update check, two public lists it caches, installs you accept, and the GitHub, GitLab or Claude usage calls you sign in or opt in to. Your agent’s own traffic, and your git pushes and fetches, go straight from your machine to your agent’s vendor and your remote; Tori starts the process, reads its output, and adds no endpoint of its own.
Everything Tori itself writes is a plain file on your machine, under
~/.config/tori/.