Skip to content

Repository files navigation

termio

The Terminal-first Agentic Development Environment

Release License Discord

English | 简体中文 | 繁體中文 | 日本語 | 한국어


Run Claude Code, Codex, and any CLI agent side by side in a native Mac app —
every session live in the sidebar, and a menu-bar dot that tells you who needs you.


Download for macOS  •  Website  •  Docs  •  Changelog  •  Discord


termio in dark mode: a live Claude Code session next to the project sidebar

Built for watching agents work

The IDE was built around a person typing code. When agents write most of the code, the environment's job changes: it's where agents work and where you direct, review, and unblock them. termio is that environment — Terminal-first, because that's where the agents already live — built for the new shape of the work: several agents going at once, most of them fine without you, one of them stuck. (The longer argument: From IDE to ADE.)

  • A real terminal, not a web view. Swift + AppKit on libghostty (Ghostty's terminal core), rendered with Metal. No Electron, no xterm.js.
  • Projects → sessions. The sidebar mirrors how you actually work: each project holds its terminals and agents, with git worktrees nested beneath it for parallel tasks.
  • Status with zero setup. termio wires up each agent's own hooks and reads the signals agents already emit. Working, idle, or needs you — per-session dots, and a menu-bar tray that stays calm, pulses while agents work, and rings when one is blocked on you.
  • Review without leaving. A read-only git pane (changes, history, unified diffs), a file tree with a click-to-edit editor, and project-wide content search — the terminal stays the place where you commit.
  • Free. No account, no license keys, no paid tier. MIT-licensed.

Features

Sessions, side by side

Every project keeps its own terminals and agent sessions. Switch instantly from the sidebar — each session is a live PTY that keeps running while you look elsewhere.

A Codex session running beside the session sidebar

Knows when an agent needs you

Session dots show working / idle / needs-you, aggregated into a menu-bar tray you can glance at from any app. Pick a session from the tray and termio brings it to the front.

The menu-bar tray with a roster of sessions grouped by project

Split panes

Ghostty-style splits inside a session: an agent on the left, a dev server and a shell on the right.

A Claude Code session split alongside a dev server and a shell

Files and a built-in editor

A file tree beside the terminal; click a file and edit it in place with syntax highlighting and auto-save. Images and PDFs open in Quick Look. ⌘-click any path an agent prints to preview it.

The built-in editor showing a Markdown file next to the file tree

The inspector

Everything about the session at hand: git changes and history with unified diffs, project-wide content search, a readable trace of the agent's conversation, and working-directory actions.

The inspector panel beside a Claude Code session

Command palette

Jump to any session, project, or action from one search box.

The command palette

Also in the box:

  • Git worktrees: create a worktree from the sidebar and it appears as a nested folder under the project — one branch per parallel task. Worktrees you create from the CLI show up too.
  • Chats: scratch agent conversations that don't belong to any project, one keystroke away.
  • Usage meters: your Claude and Codex plan limits, read locally from their own credentials, in Settings → Usage.
  • Themes: light, dark, and a glass appearance that follows the system.
  • Auto-update: notarized DMG with Sparkle updates; new versions install themselves.

Works with your agents

Claude Code, Codex, Gemini CLI, Grok, Cursor Agent, Copilot, Amp, OpenCode, Pi, Kimi — and any other CLI agent, because a session is just a real terminal. For the built-in agents, termio installs each one's own hook or plugin automatically, so status detection works the first time you launch them.

Drive it from the terminal

termio ships a termio CLI, so sessions are scriptable — including by the agents themselves. An agent running inside termio can spawn a sibling, hand it a task, and read back the reply:

termio sessions list                       # who's working, idle, or waiting on you
termio sessions spawn "fix the flaky test" # start a new agent session on a prompt
termio sessions send claude@ab12cd34 "1"   # answer a sibling's permission prompt
termio sessions watch                      # stream status changes as they happen

On your iPhone

The companion app mirrors every Mac session live on your phone — the full TUI, not a chat summary. A key bar puts esc, tab, ctrl, and arrows above the keyboard, and hold-to-speak transcribes straight into the prompt. Free, in public beta: join on TestFlight.

A live Claude Code session mirrored on the iPhone The key bar with esc, tab, ctrl, and arrow keys above the keyboard Hold-to-speak voice input transcribing into the prompt

Install

Download termio for macOS — free, no account. Requires macOS 14+.

Or install with Homebrew:

brew install --cask termio-sh/tap/termio

On iPhone: get the companion beta on TestFlight, then pair it by scanning the QR code in the Mac app's Settings ▸ Mobile.

Community

Contributors

Contributors

License

MIT.

About

Resources

Contributing

Security policy

Stars

13 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages