Oh My Terminal · latest release

A terminal workspace for running coding agents side by side.

Projects, sessions and split panes in one native window. See which agent needs you, what each turn changed, and keep Git, an editor and a browser next to your shells. Check on it all from your phone.

curl -fsSL https://github.com/fachrihawari/omaterm/releases/latest/download/install.sh | sh

Knows when these are working, waiting or done: Claude Code · Codex · Gemini · OpenCode · Pi

tour

Everything omaterm does

Shortcuts say Ctrl; on macOS it’s Cmd, and tabs and projects are Cmd+1 and Option+Cmd+1, not Alt+1 and Alt+Shift+1: Option types there.

01 · agent status

See which agent needs you

Every session shows whether it is working, needs you, failed or is done, in the sidebar, on its tab and on each pane. When an agent asks for permission while you look elsewhere, you get a notification.

needs you working done failed
  • Jump to the agent that needs youCtrl+Shift+J
  • Next or previous sessionAlt+↓ Alt+↑
  • Teach your agents to report their statusomaterm skill setup

02 · sessions and splits

Projects, sessions and split panes

A project is a folder you work in. Each one has its own sessions, and each session holds split panes: an agent, a dev server and your shell, side by side. Switching projects keeps the other project’s shells running.

  • New sessionCtrl+T
  • Split right or downCtrl+Shift+R Ctrl+Shift+D
  • Zoom the pane you’re inCtrl+Shift+Enter

Drag a pane’s header onto another pane to move it, and drag the dividers to resize.

03 · last turn

What did that turn change?

In the Git tab, Last turn lists only what the agent changed in its last turn, apart from everything else you haven’t committed. Open a file to see its diff, then keep or revert each hunk.

  • Open Last turnCtrl+Shift+A
  • The same diff, from a script or another agentomaterm diff --turn

omaterm takes a snapshot when a turn starts. No branch or commit is made.

04 · git and diffs

Git, without leaving the window

Stage, commit, amend, stash, fetch, pull and push from the Git tab, across every repository in the project. Diffs open side by side or inline, images included, and the graph shows every branch.

05 · files and editor

Find a file, read it, fix it

The Files tab browses the project. Open any file in the editor, with syntax highlighting and a Markdown preview, for the quick fix an agent didn’t need to make.

  • Go to a fileCtrl+P
  • Search the whole projectCtrl+Shift+F
  • The Files tabCtrl+Shift+E

06 · processes and ports

What’s running, and where

The Info tab lists what your project’s sessions run, with CPU and memory, and the ports they listen on. Stop a runaway process, or open a port in the browser, in one click.

  • The Info tabCtrl+Shift+I
  • Show or hide the side panelCtrl+Shift+B

07 · browser panes

Your app, next to the code that makes it

Open a web page as a pane, beside your shells: your dev server reloads where you can see it. Agents can read it, click, type and take screenshots to check their own work.

  • Open a browser paneCtrl+Shift+O
  • From a script or an agentomaterm split --url localhost:5173
  • Let agents drive the pageSetting: Let Agents Control the App

08 · sessions keep running

Close the window. Your agents carry on.

A session daemon runs your shells and agents, not the window. Close omaterm and they keep going; open it again and every pane is as you left it, scrollback included. (On Linux and macOS: Windows has no daemon yet, and omaterm asks before quitting ends a running agent.)

  • Bring sessions back at loginomaterm daemon install-service
  • See what it runsomaterm daemon status

After a reboot, Claude Code, Codex, OpenCode and Pi resume the same conversation.

09 · from your phone

Your sessions, in any browser

Turn on web access and your sessions open in a browser: projects and sessions beside a live terminal on a computer, one at a time on a phone, with keys for Esc, Ctrl and the arrows. Answer the agent that needs you from the couch.

Web access in a desktop browser: sessions in a sidebar, an agent asking to allow an edit
Web access on a phone: the sessions, one needing you
Web access on a phone: a session’s terminal with a key bar

Pair a phone in a scan

A browser sees nothing until you pair it. Web Access: Pair a Device in the palette shows a QR code; scan it and that browser is signed in. Each code works once, for ten minutes, and you can sign any device out.

  • Turn it onSetting: Web Access, or omaterm web on
  • Pair a deviceomaterm web pair
  • Paired devices, and signing one outomaterm web devices omaterm web revoke

Reach it from anywhere

omaterm serves it on your machine only. Carry it with a tunnel you trust, or serve it on your home network:

# your own devices, on your tailnet
$ tailscale serve --bg 7370
# a public https URL
$ cloudflared tunnel --url http://127.0.0.1:7370
# devices on the same Wi-Fi (plain HTTP)
$ omaterm web on --network
The Pair a Device dialog with a QR code and a one-time code

10 · themes

Themes, dark and light

Pick a dark or light theme, or follow your desktop’s, in Settings or the command palette. The window, the terminals and the editors share one palette, and its colors are checked for contrast so text stays readable. On Omarchy, omaterm uses the active Omarchy theme and follows when you switch, with no restart needed.

11 · agents drive it

Agents can use it too

The omaterm command lets agents and scripts open panes, run commands, wait for them, read the screen and report their status. It works even while the window is closed.

  • Teach Claude Code, Codex, Pi and OpenCode to use itomaterm skill setup
  • Run the tests in a pane belowomaterm split --down -- go test ./...
  • Tell the user you need themomaterm report blocked "Which database?"

12 · settings

Every preference, in one window

Settings has a page for each part of omaterm: the theme, the terminal’s font, cursor and clipboard, the editor, notifications, the agents’ integration, web access and its paired devices, the browser’s search engine and updates. Search finds any setting, and changes apply as you make them.

  • Open SettingsCtrl+,
  • Or from a terminal, on a pageomaterm settings terminal

13 · agents on branches

An agent on a branch of its own

New Agent in Worktree… starts an agent on a new branch, in a git worktree under the repository’s .worktrees folder, with your .env files copied in. Run several at once: none touches another’s files, or yours. The session shows its branch, and the Git tab follows it, with a Branch view of everything the branch changed.

  • Start one, from the palette or a project’s menuNew Agent in Worktree…
  • Or from an agent or a scriptomaterm new --worktree fix-login -- claude
  • When it’s done, from the session’s menuMerge into main… · Update from main · Push & Create PR · Discard Worktree…

A merge that would conflict isn’t made: conflicts are resolved in the worktree, never in your checkout. Closing a session asks before dropping work that isn’t in main.

14 · agents working together

A lead, its workers, and a reviewer

An agent can lead others. It starts workers in worktrees made from its own branch, which nest under its session, and hands each its part with omaterm ask. omaterm types the message into the worker’s prompt once it’s free and you aren’t typing there, and the answer comes back to the lead, waking it. The lead merges each worker into its own branch; merging into main stays yours.

  • Hand a worker its task, and get on with yoursomaterm ask w1 "Write the parser, with tests" --no-wait
  • Answer the agent that askedomaterm reply "Done: 4 tests pass, committed"
  • Take a worker’s branch into your ownomaterm merge w1
  • Have another agent review a session’s workAsk for Review…

The reviewer reads what the session changed, changes nothing itself, sends the agent what to fix for up to three rounds, then tells you its verdict, under its session.

and more

The rest of the kit

Updates itself
Signed updates arrive inside the app, with release notes written for you.
Every shortcut
Ctrl+Shift+/ lists them all.
Click a path
Ctrl+click src/app.go:42:7 in any pane, and the editor opens there.
The agent’s last word
What an agent last said of its turn shows under its session, in the sidebar, the palette and on your phone.
Notifications
Choose which ones you get: needs you, finished, failed, with or without a sound. Each is a setting.
Zoom
Ctrl+= and Ctrl+- scale the whole window; Ctrl+0 resets it.
Native
A native app written in Go. It runs on Linux first, and on macOS and Windows too.
Open source
MIT licensed, on GitHub.

Install omaterm

Free and open source under the MIT license. It keeps itself up to date.

curl -fsSL https://github.com/fachrihawari/omaterm/releases/latest/download/install.sh | sh