Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md
Termio

The Terminal-first Agentic Development Environment

Release License Discord

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

Download for macOS  •  Website  •  Docs  •  Changelog  •  Discord

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

What it is Terminal-first ADE

When agents write most of the code, the environment's job is to run them and to tell you which one needs you. Termio is that environment, and it's a real terminal because that's where the agents already live.

It wires up each agent's own hooks on first launch. A session reports working, idle, or needs you — a dot in the sidebar, a menu-bar tray that rings when one is blocked, the same signal on your phone. Claude Code, Codex, OpenCode, Pi, Amp, Cursor, Copilot, Kimi, Antigravity, Crush, Grok, and any other CLI agent.

A tmux alternative

Many people tell you to learn tmux. You don't have to. Every session's shell lives in termiod, a daemon, so quitting the app only detaches. Close the laptop, reopen Termio — the agent is where you left it, same process, same scrollback. Only Close Session (⌘W) ends one.

Remote ADE

Any Linux VPS you can ssh to. Termio reads ~/.ssh/config and never rewrites it. Settings ▸ Devices ▸ Set Up copies one binary into ~/.local/bin over SSH, starts the daemon, and installs the agents' hooks there. Local and remote sessions run through the same host. The session lives on the box, not in the connection. Drop the link and the agent keeps working; reattach restores the exact screen.

Install

Download Termio for macOS — free, no account, macOS 14+. Or 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.

What you get

Projects hold sessions

One project per checkout, its terminals and agents underneath. Chats sit above that — scratch agent sessions that don't belong to any project.

The Termio sidebar showing Terminals, Chats, projects, worktrees, and their nested sessions

Git worktrees

One branch per parallel task, created from the sidebar. Worktrees nest under the project they came from.

A worktree in the Termio sidebar, with its nested sessions and a context menu to add another

Split panes

⌘D splits right, ⇧⌘D splits down. An agent, a dev server, and a shell in one window.

Termio with a Codex session grouped beside two shell panes

Status at a glance

Working, idle, done, or needs you — a mark on every row. The same list is termio sessions list.

The Termio sidebar reporting working, done, and needs-you, with termio sessions list in the terminal

File editor

Click a file in the tree. Syntax highlighting, autosave. The terminal stays the place where you commit.

The Termio Files inspector with a Swift file open in the syntax-highlighted editor beside a terminal

Changes

A read-only git pane with the current unified diff. Commit, push, and PR stay in the terminal.

The Termio Changes tab with a file selected and its red and green unified diff beside the terminal

Search

Project-wide content search, jumping to the matching line in the editor.

The Termio Search tab listing matches for DiffGapText across four files

Command palette

⌘⇧P. Split, focus, anything you'd hunt a menu for.

The Termio command palette open on split, with Split Right selected

Drive it from the terminal

The termio CLI drives the running app. An agent inside Termio can spawn a sibling, hand it a task, and read back the reply:

termio .                                    # open the current directory as a project
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 run "pnpm test --watch"     # start a plain terminal session on a command
termio sessions send ab12cd34 "1"           # answer a sibling's permission prompt
termio sessions read ab12cd34 --lines 40    # print what's on a session's screen
termio sessions watch                       # stream status changes as they happen
termio sessions focus ab12cd34              # bring a session forward in the app
termio sessions close ab12cd34              # close it
termio notify "the migration finished"      # post a macOS notification

--wait blocks until the turn settles and comes back with the final status and the transcript range to read. --json makes any sessions command machine-readable. --agent picks which agent spawn starts. --direction / --ratio decide where the new pane lands and how big it is.

termio sessions spawn "run the migration" --agent codex --wait

Session control installs a termio agent skill into each agent's skills folder (~/.claude/skills, ~/.codex/skills) and keeps it current on every launch. Any other agent can install the same skill from this repo:

npx skills add termio-sh/termio --skill termio

On your iPhone

The Termio iOS mirrors every session live — full TUI. A key bar puts esc, tab, ctrl, and arrows above the keyboard, and hold-to-speak transcribes into the prompt. Public beta on TestFlight.

Termio on iPhone: the home screen, with Needs You above the projectsTermio on iPhone: the sessions in a project, each reporting its statusTermio on iPhone: a live agent session with the key bar above the keyboard

Architecture

Every session lives in termiod. Clients only attach. Closing a client does not kill the agent. One protocol; only the pipe changes.

  ┌─────────────────┐ unix  ┌────────────┐         ┌─────────────────┐
  │ Mac app         │──────►│            │         │                 │
  ├─────────────────┤ unix  │            │         │                 │
  │ Windows (soon)  │──────►│            │         │                 │
  ├─────────────────┤ wss   │            │         │                 │
  │ iPhone          │──────►│  termiod   │── PTY ─►│  shell / agent  │
  ├─────────────────┤ unix  │   (Mac)    │         │                 │
  │ TUI (soon)      │──────►│            │         │                 │
  ├─────────────────┤ wss   │            │         │                 │
  │ Android (soon)  │──────►│            │         │                 │
  └─────────────────┘       └────────────┘         └─────────────────┘

  ┌─────────────────┐ ssh   ┌────────────┐         ┌─────────────────┐
  │ Mac app         │──────►│            │         │                 │
  ├─────────────────┤ ssh   │            │         │                 │
  │ Windows (soon)  │──────►│            │         │                 │
  ├─────────────────┤ wss   │            │         │                 │
  │ iPhone          │──────►│  termiod   │── PTY ─►│  shell / agent  │
  ├─────────────────┤ ssh   │  (Linux)   │         │                 │
  │ TUI (soon)      │──────►│            │         │                 │
  ├─────────────────┤ wss   │            │         │                 │
  │ Android (soon)  │──────►│            │         │                 │
  └─────────────────┘       └────────────┘         └─────────────────┘

The phone attaches to termiod on the box, not through the Mac. A session on a VPS is the same object as one on your laptop.

The reasoning is in termiod/ARCHITECTURE.md.

Roadmap

  • TUI client — attach from any terminal, the way you would to tmux.
  • TUI → GUI on mobile — an optional GUI rendering of agent sessions on the phone, built on top of the live mirror.
  • Android — the same companion as iPhone.
  • Windows support — Termio as a native Windows app. Same idea, same termiod core.
  • Web support — attach to your sessions from any browser, with terminals you can share by link.
  • Issue triage — GitHub, GitLab, and Linear issues inside the app, ready to hand straight to an agent.

Follow along or weigh in on GitHub Issues.

Community

Termio is looking for long-term maintainers. If you love using it and would like to own an area of the roadmap above — the web client, Windows, or the iOS companion — join the Discord and say hi, or just pick up an issue.

  • Discord — chat with the developer and other users
  • WeChat group — Chinese-speaking users, scan the QR code below
  • GitHub Issues — bugs and feature requests
WeChat group QR code

The WeChat code expires every few days. If it has, ask in Discord and it gets refreshed.

Contributors

Contributors

License

MIT.

关于 About

A terminal-first agentic development environment for agentic coding. Build for CLI/TUI agent. Runtime for Coding Agent, tmux alternative, Remote Linux VPS supported
adeagenticai-agentsclaude-codeclicodexcoding-agentsdevtoolslibghosttymacosmobile-appmultiplexeropencodeparallel-agentsswiftterminalterminal-emulator

语言 Languages

Swift67.9%
Rust21.3%
TypeScript4.3%
MDX2.1%
Python2.0%
Shell1.3%
CSS0.6%
JavaScript0.3%
HTML0.1%
Dockerfile0.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
1874
Total Commits
峰值: 361次/周
Less
More

核心贡献者 Contributors