Documentation
Everything OpenTerm does today, including the parts the homepage never gets to. Written against the shipping app, not a roadmap.
Getting started
OpenTerm is a single Windows installer. No account, no sign-up, nothing to configure before it works.
- Install
- Download the installer from GitHub Releases and run it. Windows 10 and Windows 11, x64. macOS and Linux are not supported yet.
- First launch
- A short welcome asks for a theme, a terminal text size and the folder to open first. It appears once. You can walk through it again from Settings, About & Data, Replay welcome.
- Your first session
- Pick a project folder. OpenTerm opens it as a named session with three terminals already started in that folder. Everything after that is splitting, naming and launching agents.
- Updating
- OpenTerm checks GitHub Releases at startup and installs signed updates after you confirm. An update it cannot verify against the maintainer’s public key is refused.
Sessions
A session is one project: its own folder, split layout, color, tasks and running terminals. They stay alive in the background, so switching is instant and nothing scrolls away.
- Creating one
- Ctrl Shift T opens the wizard: name, how many terminals, the starting folder (folder picker or a small navigator terminal you can
cdaround in), and an optional startup command. Presets forclaude,codex,opencodeandn8n, or type your own. - Moving between them
- Alt 1 - 9 jumps straight to a session. Ctrl Tab cycles forward, Ctrl Shift Tab back. Drag sessions in the sidebar to reorder them.
- Status at a glance
- Each session carries a dot: an agent is working, an agent is waiting on you, or something errored. You can see which project needs you without opening it.
- Renaming and color
- Double-click the name or press F2. Session settings hold the name, one of eight colors and the starting directory.
- Archiving
- Archiving hides a session and stops its terminals while keeping the layout, tasks and remembered agent commands. Restore it from Settings, Sessions & Backups.
- The session menu
- Session settings, Stats (usage and cost for the whole folder), Git Map, Archive and Delete.
Panes
Every session is a grid you cut up yourself. A pane is usually a terminal, but it can also be a browser or a docked file.
- Splitting
- Ctrl Shift E splits right, Ctrl Shift O splits down, as many times as you want.
- Rearranging
- Drag a pane’s title bar onto another pane. Drop on an edge to split there, drop on the middle to swap the two. Drag the dividers to resize, or use Ctrl Alt Arrows.
- Zoom and fold
- Ctrl Shift Z blows one pane up to fill the session. Ctrl Shift D folds a pane down to just its title bar while it keeps running. Clicking the space a folded group leaves behind fills it with a fresh terminal.
- Naming panes
- Give a pane your own name, such as
apiorworker. With four agents running, “PowerShell” four times tells you nothing. - Knowing what is running
- The title bar draws the mark of whatever is in the pane: Claude, Codex, Gemini, OpenCode, Cursor, Grok, PowerShell, cmd, bash, zsh or WSL.
- The terminal itself
- xterm.js on WebGL, so it stays fast under heavy output. Clickable links, system clipboard copy and paste, and font size on Ctrl = / Ctrl - / Ctrl 0.
AI agents
Agent panes are ordinary terminals, so every feature on this page works with every agent. Anything that runs in a terminal runs here.
- One-click agents
- The sidebar
+menu opens a pane running PowerShell, Claude Code, Codex CLI, Gemini CLI, OpenCode, Cursor Agent, Grok Build, or a browser. - Recognized CLIs
claude,codex,gemini,opencode,cursor-agent,grok,aider,amp,goose,crushandcline, including when launched throughnpx,pnpm,yarn,bunx,uvxorpipx.- Resume after a restart
- OpenTerm remembers the agent command typed in each pane and replays it on the next launch. Claude Code and OpenCode continue the previous conversation. Claude Code, OpenCode and Codex can reopen one exact conversation by its session id. Switch it off to always start fresh.
- Keeping the CLIs current
- OpenTerm compares your installed Claude Code, Codex CLI, Gemini CLI, OpenCode, Amp and Aider against the published versions. An outdated one raises an inbox item with a one-click update, and panes running it are refreshed afterwards.
Agent updates can only run commands from a fixed list compiled into the app. Nothing an agent prints can talk OpenTerm into running something else.
Inbox
The problem with running six agents is not the agents. It is that one of them asked a yes-or-no question forty minutes ago in a pane you were not looking at.
- What lands there
- Approval prompts, errors, finished commands, exited processes, due tasks, delegation updates, backup notices, app updates, repos behind GitHub and agent CLI updates. Every item names its session and jumps you to the pane or task it came from.
- What counts as a prompt
- Real interactive questions: y/n, “press enter to continue”, and the numbered approval menus agents use. Ordinary agent chatter is ignored.
- Opening it
- Ctrl Shift I, or the bell in the title bar. A pane that is waiting also marks its own title bar.
- Readable titles
- With an OpenRouter key, a wall of box-drawing and stack trace becomes a short title and one sentence. The raw text stays available on hover, and the naming can be turned off.
- Getting your attention
- A built-in chime or your own sound file, plus a taskbar flash. Each is optional, and every notification type can be silenced on its own.
Command queue
Type the next command while the current one is still running, and have it sent the moment the pane is free.
- Queueing
- Ctrl Shift Enter in a pane. The command is typed in as soon as that pane is idle at its prompt again.
- Where it works
- PowerShell, cmd, bash, and agent CLIs including Claude Code and OpenCode. OpenTerm learns each pane’s prompt from your own typing rather than guessing at it.
- Stacking them
- Queue several in order: run the tests, then lint, then push.
Tasks and delegation
A task board per session, and the ability to hand any task straight to an agent instead of retyping it as a prompt.
The board
- Opening it
- Ctrl Shift K. List view or kanban, filtered to this session or across all of them, with a search box.
- What a task holds
- Status (to do, in progress, done), priority (low, medium, high), a description, subtasks with checkboxes, tags, a due date and attached local files.
- Due dates
- A task that comes due raises an inbox item, so deadlines land in the same place as everything else.
Handing work to an agent
- Who
- Claude Code, Codex CLI or OpenCode.
- When
- Right now, at a time you set, or when another terminal finishes what it is currently doing.
- What it sends
- OpenTerm opens a pane for the agent and types the task in as a prompt, including the description, the subtasks and the paths of any attached files. The task and the inbox both show how the delegation is going, and you can cancel it.
- Sharpening the prompt
- Optional: with an OpenRouter key, an AI rewrites the task into a clearer prompt before it is handed off.
Usage and costs
What each agent has spent, per pane and per project, without opening a billing dashboard.
- Rate limits
- Panes running Claude Code or Codex show how much of the current 5-hour window is left and when it resets, refreshed every 30 seconds.
- Per-terminal detail
- “Usage & Costs” in the pane menu breaks tokens into input, output, cache write, cache read and reasoning, with an estimated cost by model and by agent session.
- Per-project totals
- Session menu, Stats: every agent session ever run in that folder, added up.
- Coverage
- Claude Code is matched exactly. OpenCode and Codex are matched by timing and folder. History stays with the pane after the agent exits and survives restarts.
Dictation
Hold a key anywhere in Windows, say the prompt out loud, and it is typed in wherever your cursor is. Prompts are long; typing them is the slow part.
- Using it
- Hold the global shortcut (Ctrl Win by default), speak, release. Toggle mode is available if you would rather not hold.
- Tuning it
- Shortcut, hold or toggle, a pill or glow indicator and where it sits on screen, start sound, microphone, language or auto-detect, clean or verbatim style, your own vocabulary of project words, maximum recording length, and whether it works always or only while OpenTerm is open.
- Polish
- Optional: run the transcript through an AI for punctuation and cleanup before it is typed.
Dictation is off until you turn it on, because it arms a system-wide key hook and the microphone. Transcription runs through your own OpenRouter key.
Browser panes
A real Chromium pane beside the terminals, so the dev server the agent is editing is visible without leaving the window.
- The pane
- WebView2 with an address bar that also searches. URL, device and orientation are remembered across restarts.
- Capture
- The pane records the page’s console messages, JavaScript errors and fetch/XHR requests as they happen.
- Handing it to an agent
- Alt+drag a browser pane onto a terminal to paste its console and network log there. Alt+Shift+drag sends a screenshot instead. Both can also go to the clipboard.
- Device emulation
- Real viewport size, pixel ratio, user agent and touch, drawn inside a device frame, with portrait/landscape rotation and a free responsive mode.
30 device presets
Phones
- iPhone 16 Pro Max
- iPhone 16 Pro
- iPhone 16 Plus
- iPhone 16
- iPhone 15 / 14 Pro
- iPhone 14 / 13
- iPhone 13 mini
- iPhone SE
- Pixel 9 Pro
- Pixel 8
- Pixel 7a
- Galaxy S24 Ultra
- Galaxy S24
- Galaxy A54
Foldables
- Galaxy Z Fold 6
- Galaxy Z Fold 5
- Galaxy Z Flip 6
- Pixel Fold
Tablets and laptops
- iPad Pro 13"
- iPad Air 11"
- iPad (10th gen)
- iPad mini
- Galaxy Tab S9
- Surface Pro 9
- Laptop 13"
- Laptop 15"
- Desktop 1080p
- Desktop 1440p
Files and editor
The session folder is in the sidebar, and files open in panes beside the terminals rather than in another app.
- The explorer
- The Files tab lists the active session’s folder, with a filter and refresh. Right-click for Open in Explorer, Copy Path, Rename and Delete.
- Dragging paths in
- Drag a file from the sidebar, from Windows Explorer or from the desktop onto a terminal to type its path, quoted when it needs to be.
- The code editor
- CodeMirror with syntax highlighting, autocomplete, bracket matching, folding, rectangular selection, undo history and search. Ctrl S saves. JavaScript, TypeScript, Python, Rust, C, C++, Java, PHP, SQL, HTML, CSS, JSON, YAML, XML, Markdown and more.
- Markdown, visually
- A toolbar editor for bold, italic, strikethrough, code, headings, lists, quotes, links, rules and tables. A file only opens in visual mode if it survives a round-trip unchanged, so your Markdown is never quietly rewritten behind you.
- Previews
- Images (PNG, JPG, GIF, WebP, BMP, ICO, AVIF, SVG), video (MP4, WebM, MOV, MKV, AVI and more), audio (MP3, WAV, OGG, FLAC, M4A, AAC, Opus), documents (PDF, .docx) and spreadsheets (.xlsx, .xlsm, .xlsb, .xls, .ods, CSV, TSV).
Git and GitHub
Read-only, always. OpenTerm looks at your repository and tells you things. It never pulls, merges or resets on its own.
- Freshness check
- A background
git fetchper session, and an inbox item when your branch falls behind GitHub. It also flags local commits you have not pushed and uncommitted changes. - Review with AI
- From that inbox item, open Claude Code, Codex or OpenCode in the session with a prompt already written to review the sync state.
- Git Map
- From the session menu. A tree of the working tree, branches, remotes, tags, stashes and contributors, with nested branch names becoming folders.
- The graph
- Commits in branch lanes, with a filter, zoom and copy-sha, ahead/behind counts against upstream, and commits per week for the last 12 weeks. Local git data only.
Search
- Find in terminal
- Ctrl Shift F, then Enter and Shift Enter to step through matches.
- Highlight every match
- Ctrl S lights up every occurrence in the focused pane and keeps them lit while you scroll, until Esc.
Windows integration
OpenTerm behaves like part of the system rather than a window you have to go find.
- Open a folder from Explorer
- Type
OpenTerminto any folder’s address bar, the same waycmdworks there, or right-click a folder and choose “Open in OpenTerm”. Closed, it starts with a session for that folder. Open, the session joins the existing window. Already open as a session, it switches to it instead of making a duplicate. - How that is wired
- Three current-user registry keys, so it needs no admin rights. Turning it off in Settings removes them cleanly.
- Docking outside terminals
- Drag a terminal window that was opened outside OpenTerm into a pane to dock it there. Can be switched off.
- Taskbar
- The taskbar icon flashes when a pane needs you, alongside the sound and the inbox item.
Backups and undo
Your whole workspace is one local file, so OpenTerm keeps snapshots of it and gives you a way back.
- What is kept
- Every save also writes a backup to
%APPDATA%\com.openterm.app\backups: the last 30 changes plus one snapshot a day, kept for seven days. Saves close together coalesce, so the 30 slots hold 30 distinct moments rather than one busy minute. - Automatic recovery
- If the state file is ever missing or corrupt, OpenTerm restores the newest valid backup on startup and says so in the inbox.
- The timeline
- Settings, Sessions & Backups lists every snapshot with its time, the sessions it held and its pane count. Search it, preview what a restore would bring back or remove, and restore in one click. Your current state is stashed first, so the restore is itself undoable.
- Find in backups
- Optional, with an OpenRouter key: describe what you are after, such as “the session where I was rewriting the checkout flow”. Only timestamps and session names are sent, never terminal content.
- Undo close
- Closing a session, pane or task raises an undo toast. The last three closed things can be brought back for ten minutes with Ctrl Shift U.
Themes and appearance
22 themes, applied to the whole app: chrome, terminals and the code editor all at once.
Minimal
- OpenTerm
- Paper
- Slate
- Mono
- Ice
Classic
- Nord
- Solarized Dark
- Solarized Light
- Gruvbox Dark
- Dracula
- One Dark
- Tokyo Night
- Monokai
- Rosé Pine
Wild
- Ocean Deep
- Forest
- Cyberpunk Neon
- Synthwave
- Matrix
- Galaxy
- Blood Moon
- Sunset
- Terminal text
- Font family (Cascadia Mono by default), font size, cursor style (bar, block or underline), cursor blink and pane padding.
- Scrollback
- 8,000 lines by default, adjustable.
- Sidebar
- Resizable, and hidden entirely with Ctrl B.
Shortcuts and gestures
Every action has a shortcut, every one can be rebound, and conflicts are flagged when you set them. Shortcuts follow physical keys, so they work on QWERTZ, AZERTY and anything else. The mouse gestures below are fixed.
| Action | Default |
|---|---|
| New session | CtrlShiftT |
| Close session | CtrlShiftQ |
| Rename session | F2 |
| Next session | CtrlTab |
| Previous session | CtrlShiftTab |
| Jump to session 1 to 9 | Alt1 - 9 |
| New terminal in this session | CtrlT |
| Split right | CtrlShiftE |
| Split down | CtrlShiftO |
| Close pane | CtrlShiftW |
| Move focus between panes | CtrlArrows |
| Resize the focused pane | CtrlAltArrows |
| Zoom the focused pane | CtrlShiftZ |
| Fold the focused pane | CtrlShiftD |
| Toggle the sidebar | CtrlB |
| Switch sidebar tab | Alt` |
| Font size up | Ctrl= |
| Font size down | Ctrl- |
| Reset font size | Ctrl0 |
| Find in terminal | CtrlShiftF |
| Highlight every match | CtrlS |
| Queue a command | CtrlShiftEnter |
| Open tasks | CtrlShiftK |
| Open the inbox | CtrlShiftI |
| Undo the last close | CtrlShiftU |
| Shortcut cheat sheet | Ctrl/ |
| Open settings | Ctrl, |
Ctrl / opens the cheat sheet over whatever you are doing, so you never have to come back here for one of these.
Mouse and drag: panes
- Drag a title bar
- Onto another pane. Drop on an edge to split there, drop on the middle to swap the two panes.
- Alt + drag a terminal
- Onto another pane, to hand that terminal over as context: its recent output is typed into the target’s stdin, which is how you get one agent to read what another one just did. Only terminal panes can receive it, since it needs a stdin. Press or release Alt mid-drag to switch between moving and handing over. The state at the moment you let go is the one that counts.
- Alt + drag a browser pane
- Onto a terminal, to paste that page’s console messages, JavaScript errors and network requests in as text.
- Alt Shift + drag a browser pane
- Onto a terminal, to send a screenshot of the page instead of the log.
- Alt + click a split button
- Duplicates the pane you split from instead of opening a blank shell. The same applies to holding Alt with the split shortcuts, and to the “New terminal” button that appears in the space a folded pane leaves behind.
- Double-click a title bar
- Folds the pane down to just its bar, or unfolds it. Works on terminal, browser and file panes.
- Drag a divider
- Resizes the panes on either side of it.
- Drag an outside terminal in
- A terminal window opened outside OpenTerm docks into the pane you drop it on.
Mouse and drag: files and sessions
- Drag a file onto a terminal
- Types its full path in, quoted when it needs to be. Works from the Files sidebar, from Windows Explorer and from the desktop.
- Ctrl Alt + drag a file
- Docks the file itself as a pane instead of typing its path, with the edge you drop on deciding where it lands. Folders have nothing to open, so they ignore it. Alt on its own stays path mode on purpose, so dragging paths into an agent keeps working the way it always did.
- Alt + drag a file pane
- Expands that file to full screen. Without Alt it moves around the grid like any other pane.
- Alt + drag the full-screen file back
- Grab the viewer’s title bar and drop it into the grid to dock it as a pane again. Holding Alt marks the bar as grabbable before you start, so the gesture is visible rather than hidden.
- Alt + drag a session
- Drag a session row from the sidebar onto a terminal to type that session’s folder path in. Without Alt, dragging a session row reorders the sidebar.
- Right-click a file
- Open in Explorer, Copy Path, Rename and Delete.
Inside a terminal
- Ctrl C
- Copies when there is a selection. With nothing selected it stays a plain interrupt, so it never swallows the one thing you need it for.
- Ctrl Shift V
- Pastes, honouring bracketed-paste mode. Windows Terminal semantics throughout.
- Alt + click a link
- Opens the URL in a browser pane beside that terminal. A plain click hands it to your default browser instead.
- Right-click a title bar
- Opens the pane menu.
- Ctrl + scroll in Git Map
- Zooms the commit graph.
Settings
What lives where, at a glance.
- Appearance
- Theme, terminal font and size, cursor, padding.
- Terminal
- Shell (PowerShell, PowerShell 7, Command Prompt, Git Bash or a path of your own), scrollback, docking outside terminals.
- AI & Agents
- Resuming agent conversations, AI names for inbox items, your OpenRouter key, and the installed versions of every agent CLI.
- Dictation
- Everything described under Dictation above.
- Notifications
- Sound, a custom sound file, taskbar flash, and a switch per item type.
- Keyboard
- Every shortcut, rebindable, with conflict warnings.
- Sessions & Backups
- Archived sessions, and the backup timeline.
- About & Data
- Version and updates, where the state file lives, replaying the welcome, and resetting everything.
Privacy
No account, no sign-up, no telemetry. Terminal content never leaves your machine.
- Where your data is
- Sessions, layouts, tasks, settings and keybinds live in
%APPDATA%\com.openterm.app\state.jsonon your computer, and nowhere else. - When OpenTerm uses the network
- Checking for app updates (GitHub), checking agent CLI versions (npm and PyPI),
git fetchfor the freshness check, pages you open in browser panes, and the optional AI features. That is the whole list. - The optional AI features
- Inbox titles, prompt clarification, find in backups and dictation run through your own OpenRouter key. With no key set, nothing is sent anywhere.
- Updates
- Signed. An update that does not verify against the maintainer’s public key is refused.
- License
- Source-available under the Elastic License 2.0, public on GitHub. Free, with no account.
Something here wrong, missing or out of date? Open an issue and it gets fixed.