AgentTerm: Your portal to AI
AgentTerm is a full terminal where your existing and new AI CLI sessions run as usual. But it turns each session's terminal window into a rich visual workspace for the new way of working with multiple agents, docs, and code (autoplays after loading):
View a frame: Tell apart 1 · Tell apart 2 · Resume · Comment · Docs 1 · Docs 2 · Docs 3 · Code 1 · Code 2 · Code 3 · Phone 1 · Phone 2.
Dive deeper: Tell apart · Resume · Comment · Docs · Code · Phone.
Quick start: ask your agent. macOS, or Windows through WSL.
Check first? Read the setup steps and what AgentTerm touches.
Copy this prompt:
Clone https://github.com/albertwujj/agent-term to ~/agent-term.
Follow the recommended setup in its docs/setup.md for my current
project, then launch AgentTerm there.
Phone access, including recording and transcription, and IDE integration have separate setup.
Once a window opens, resume your previous session or start a new one, and work as usual.
Press Ctrl/Cmd+Shift+U to find and open a Markdown file by name, even if it hasn’t appeared in the terminal. Explore other additions shown in the demo above, and follow the guides below to start using them.
You can use AgentTerm as is, or adapt it with your agents.
If you are a terminal fan and want to get straight to it, skip ahead to what AgentTerm adds.
The terminal is a natural home for coding agents: text in, text out, with the shell and repo close by. Claude Code and Codex started there; Cursor and Copilot added CLIs alongside their IDE interfaces.
An IDE or desktop app offers richer views and interactions than a text-centric interface alone. Expanding the terminal lets AgentTerm add those capabilities while keeping your existing AI CLIs in the familiar text interface.
As agents take on more implementation, traditional IDE functions take a back seat, and your energy and focus shift toward plans, reviews, and managing several agents at once. The expanded terminal supports that work visually, like an IDE.
AgentTerm controls both the terminal and the visual pages in it, so it can coordinate presentation, focus, and feedback. A document or review takes the center when needed and gets out of the way as your focus shifts. In a CLI conversation, revisions usually arrive as more output. Here, plans and drafts are revised in place, while comments and replies accumulate beside the relevant passage. Your feedback goes back to the same agent. The design note goes deeper into AgentTerm’s design for this workflow.
Work on a document right in the terminal. The document area expands in full and closes as your focus shifts. Green highlights show the agent’s changes in response to your feedback.
Persistent panels can compete with the agent conversation for your attention. Here the window is dedicated to one agent, shaped by your work, and full screen if you like, resulting in fewer distractions (one OS window per agent).
A vendor's desktop app moves the conversation out of the terminal and into an interface built around its own agent and workflow. With AgentTerm, you keep your choice of AI CLIs in the terminal's familiar text interface.
Some terminals combine support for AI CLIs with an agent and platform of their own. AgentTerm's whole purpose is to make your existing AI CLIs work better for you.
Tools like tmux and manager apps hold every agent session in one window. AgentTerm gives each session its own window instead, since the OS already provides familiar, mature tools for arranging windows and switching between tasks: the taskbar, Dock, Mission Control, and alt-tab. Separate windows and processes let AgentTerm build on those strengths and add what agent sessions need. Each session has a unique visual identity that helps you find it in the taskbar or Dock and recognize it when previewing or switching windows. To keep the taskbar or Dock easy to scan, AgentTerm hides sessions you haven't used recently; the session picker brings them back. The design note on this decision goes deeper, including its challenges.
A manager app that oversees agents across machines can still be used: AgentTerm already sends each session's state to the phone view, and a connector could share it with a manager too.
This path can look hacky: the host parses text and reacts to it. Useful text conventions tend to persist, and in practice the patterns we rely on have held up well. We occasionally add support for new patterns, and those updates have been among the easier parts to maintain. It works from both sides: guide files instruct agents to print what the host understands, and the parser recognizes output styles agents already use. This integration does not require a vendor SDK or API. The design note on this text interface covers its parsing and trade-offs.
With a host that understands its agents, and agents that understand the host, an agent can use capabilities beyond those built into its CLI. For example, a plan the agent mentions can open inside the same window, rendered for you to read and write on. Through its protocol with the host, the agent treats what you write as intent and updates the plan in place.
You and your agents can change and extend this terminal, down to its code, to fit your work and your team's.
Use it and explore first; what you need may already be there. When you find something is indeed missing while you work, you are best placed to evaluate and fill the gap, with the scenario right in front of you.
This terminal makes that quick: it is already a better tool for working with your agents, including the work to fix itself. Change its source, and every window opened afterward picks up your improvement. Read Why I run AgentTerm from source.
Below are just examples. Follow the links to explore more features.
| Plain terminal | AgentTerm |
|---|---|
| Sessions hard to tell apart |
Each session has its own OS window, with a unique taskbar button or Dock tile (a preview on Windows, the session title on macOS), so you tell them apart at a glance. |
| Resume hard to find |
Type a few letters to find and resume a closed session; the picker searches your prompts and session titles to help you return to the session. |
| Comment manually quote past output |
Select anything the agent prints and comment. |
| Docs append-only, not rendered |
Ask for a plan as a Markdown file and click its name. On the rendered page, comment on any passage or write changes directly. Your edits are proposals: the agent discusses your feedback in a thread beside the passage and updates the document to reflect your intent. AgentTerm shows what you proposed and what the agent changed. |
| Code scrolling fragments, or a wall of diff |
The agent hands you a curated review, rendered, with a narrative you can follow and the parts that need your attention called out; you comment inline, it fixes and replies in place. |
| Phone phone access depends on the CLI vendor; without it, travel back to check |
See which agents need you across your machines. Open the same terminal on your phone, with the same layout so you recognize at once what you left behind; reply by voice. |
| Copy every paste needs cleanup |
Copy what the agent wrote and it pastes into a chat or email ready to send, one clean paragraph instead of chopped lines. A doc in the viewer copies the same way. |
| View can't click a file name to see it |
Click a file the agent mentions (a doc, an image, a video, a PDF) and see it right in the window, above your prompt; it gets out of the way as your focus shifts. |
| Shared checkout collisions test ports, even with worktrees |
Type one @ mention (@proceed-b completes to the guide doc's path) and the agent takes the checkout lock and cuts a branch before its first edit; a padlock at the top right of each window shows who holds it. |
| Long jobs unresponsive, or a missed finish |
The agent starts a CI run or other long job and hands the terminal back; the job reports its own completion through the terminal and the idle agent is prompted to pick it up, even across a session restart; a runner icon at the top right shows what is running. |
| Not an IDE can't jump from a cited symbol or line to the code |
Click any file:line or symbol the agent cites and your IDE jumps to that exact line after a brief pause for selection; Ctrl/Cmd-click jumps immediately. The editor stays read-only so a stray key changes nothing. |
AgentTerm runs your existing AI CLI in a full terminal, using Electron for the window, xterm.js for terminal emulation, and node-pty for the shell connection. The host parses terminal output for file references and recognized conventions, and keeps track of mentioned documents even when the CLI redraws the screen.
Those references connect the conversation to host capabilities. A Markdown path identifies a document the host can render. A review:// reference can trigger validation, rendering, and automatic opening of a review. Document viewing and review build on this mechanism. Guide files tell agents how to follow these conventions. For example, agent-threads provides the guides and file protocol for document and review feedback.
To keep the terminal responsive, repeated scans are combined and scheduled, while file checks and review rendering run asynchronously.
The quick start sets up the terminal together with plans, reviews, the checkout lock, long jobs, and the voice interpretation guide. Sessions started before you switched to AgentTerm work too.
Follow the suite guides to start using them. For example, ask your agent for a curated review with @produce-r, which completes to produce-review.md. The agent curates and presents the changes for you to review and comment on.
Add phone access when you want to continue remotely, or IDE integration if you use an IDE. These have separate setup; phone voice input also needs recording and transcription configured on the hub.
Try a change with your agents. The next window you open picks it up, since every window starts from the latest source (how a window opens).
My design notes share some of the thinking behind AgentTerm.
If you've improved AgentTerm for your work, share the change so others can use it too.
MIT licensed. No telemetry, no account.
