GPU TERMINAL // v0.4.0 SHIPPED

A terminal that works with you.

Cyberterm is a native Rust terminal for developers. Splits, tabs and sessions that survive the window are built in. Every command becomes a block you can rerun, diff or search later. And when something breaks, it can explain why — with your consent, with any AI you like.

v0.4.0·crates.io · Linux · macOS·MIT
cyberterm — api — 2 panes
PTY LIVE
1 api
2 web
3 logs
raven@box:~/api$ npm run dev ✓ 0 · 1.2s
ready on http://localhost:3000
raven@box:~/api$ cargo test ✗ 101 · 4.2s
error[E0425]: cannot find value `cfg` in this scope
--> src/routes.rs:42:9
◆ AI · Explain `cargo test`claude-opus-5-5
`cfg` was renamed to `config` in the last commit; line 42 still uses the old name.
$ sed -i 's/\bcfg\b/config/' src/routes.rs
risk: caution — overwrites a file
Enter type it at the prompt · c copy · Esc close
:3000 ◆ claude-code
● BLOCKS● HISTORY● SESSION: work● LUA LOADED
01 // WORKSPACESplits, tabs, sessionstmux built in
02 // BLOCKSEvery command a blockrerun · diff · search
03 // AIBoth directionsMCP bridge · explain · ask
04 // SCRIPTLua, built inevents · keys · commands

the workspace

Stop reaching for tmux.

Splits and tabs with familiar keys, an optional tmux-style leader, and sessions that outlive the window.

Cyberterm with three tabs and three panes: recent commands on the left, a dev server with a :5173 port chip top right, a log tail bottom right
● 3 tabs · 3 panes · a dev server with its live portreal screenshot
Splits and tabsSplit right or down, zoom a pane, type into every pane at once, drag dividers. Ghostty-style keys, or set leader = "ctrl+b" and keep your tmux habits.
Sessions that surviveTurn on the session daemon and closing (or crashing) the window only detaches. cyberterm +attach brings it all back — in a window, or inside any terminal over SSH.
Layouts as codeCommit a .cyberterm/layout.toml and cyberterm +layout opens the whole project: server, tests, logs.
ScriptableA local control socket (cyberterm +ctl) lists, reads, types into and arranges panes from any script.

command blocks

Every command is a block.

With shell integration (zsh, bash, fish), each command gets a colored gutter and a badge with its exit code and run time — and goes into a history you can search.

Three command blocks: a passing git status, a failing make test with its traceback and an exit-code badge, and a passing ls
● blocks · exit codes · run timesreal screenshot
The history browser listing recent commands with pass or fail marks and a preview of the selected command's output
● history · ctrl+shift+hreal screenshot
Act on any commandRight-click to copy its output, rerun it, run it in a new pane, watch it every 2 s, or diff it against its previous run.
History that remembers outputEvery command and its output goes into a local SQLite database, with secrets stripped. Search it with Ctrl+Shift+H or cyberterm +history.
Smart outputsrc/main.rs:42:7 opens in your editor at that line. JSON opens as a collapsible tree. Ctrl+Shift+F searches the scrollback.
Notified when it mattersA long build finishing while you're in another window sends a desktop notification.

ai, both ways

Your agent can see the terminal. You stay in charge.

Any AI you choose, connected in either direction — and nothing runs without you seeing it.

The AI panel explaining a failed test: DATABASE_URL isn't set, with a suggested export command rated safe
● explain this error · ctrl+shift+jreal ui · example answer
A consent prompt: claude-code wants to run a command in a new pane, with allow once, allow from now on, and deny
● an agent asks firstreal screenshot
Agents in, through MCPclaude mcp add cyberterm -- cyberterm +mcp lets Claude Code, Codex, Gemini CLI, Cursor or Zed read panes and run commands in a new pane you can see. Everything asks first and is logged.
Explain this errorCtrl+Shift+J on a failed command: what went wrong and a fix, from the command, its output, your directory and git state.
Plain English to a commandCtrl+Shift+I: "undo my last commit but keep the changes". One command, a risk rating Cyberterm double-checks, typed at your prompt — never run.
Bring your own modelAnthropic, any OpenAI-compatible API (local Ollama included), or a command-line tool like claude -p. Output is redacted before it's sent.

agent workspace · parallel agents new in 0.4

Run any agent. Watch it work. Review what it changed.

Claude Code, Codex, Copilot, Gemini, Cursor, opencode, Crush — whatever is on your PATH. Each one gets its own worktree, its own tab, and a flight log of everything it does.

An agent tab with the Flight log beside it: the prompt, commands with pass and fail marks and timings, edits, and a needs-you request; the tab is marked as needing attention
● flight log · ctrl+shift+lreal ui · scripted agent
The Changes view: three changed files with counts on the left and the diff of app/config.py on the right
● changes · ctrl+shift+mreal ui · scripted agent
Any agent, its own worktreecyberterm +agent claude "fix the flaky test" opens a tab on a new branch in ../repo-fix-the-flaky-test. Agents never trample your checkout or each other.
A flight log, for every agentEvery command with ✓/✗ and how long it took, the files it edited, when it needs you. Native hooks for Claude Code, Codex, Gemini CLI, Copilot CLI, Cursor and Hermes; a bash and zsh recorder for any other agent.
Know who needs youTabs show ◆ working, ◆! needs you, ✓ done — and a desktop notification arrives when an agent you're not watching wants an answer.
Review before you mergeCtrl+Shift+M: every change since the agent started, as a diff. Open a file at its first change, or put it back the way it was.
Several agents, one taskcyberterm +agent claude,codex,gemini "fix the flaky test" gives each agent its own attempt, worktree and tab, so you can compare them side by side.
The TowerCtrl+Shift+S: every agent session at once, with its state, branch, lines changed and live flight log. Jump to its tab, open its Changes, merge or discard.
Merge or discard, safely+agent merge squashes an agent's work into the branch it started from, after checking for conflicts first; it changes nothing if it can't finish. Merging one attempt offers to discard the rest.
The agent homecyberterm +agent on its own shows the agents found on your machine, how much each one reports, and your sessions, in your theme's colours.

power features

Things other terminals don't do.

Small, sharp tools for the moments that usually cost you.

A pane on a production host with a red border; typing sudo rm -rf shows a confirmation: deletes recursively, runs as root
● danger modestaged prod session
01⚠ ssh prod-db

Danger mode

A pane on a production host, a root shell or a folder you mark turns red. Type rm -rf or git push --force there and Enter waits for a second Enter. Ctrl+Shift+D marks any pane.

The command palette with split typed, listing the split actions with their shortcuts
● command palettectrl+shift+p
02ctrl+shift+p

Command palette

One fuzzy search over every action, your Lua commands, open panes and tabs, themes and recent commands. What you use often floats to the top.

Rewind showing a deploy halfway through, with the rewind bar at the bottom
● rewind6/9 · 4s ago
03⏪

Rewind

Ctrl+Shift+U steps back through what a pane showed: a TUI two minutes ago, output wiped by clear, a progress bar halfway through.

An image shown inline in the terminal with kitten icat
● inline imageskitten icat
04kitty graphics

Inline images

Speaks the kitty graphics protocol, so kitten icat and other kitty-protocol tools show real images right in the pane. They scroll with the text and appear in rewind.

A pane running a dev server with a :5173 port chip in its corner
● live ports:5173
05:5173

Live ports

Start a dev server and a port chip appears on its pane. Click it to open the browser. Stop the server and it's gone.

deploy@web1:/srv/app$ tail -f log/app.log
… Ctrl+Shift+O
raven ❯ ssh deploy@web1 -t 'cd /srv/app && exec "$SHELL" -l'
deploy@web1:/srv/app$
illustrationsame host, same directory
06ssh

SSH-aware splits

Split a pane that's in an SSH session and the new pane opens on the same host, with the same options — and in the same directory when the remote shell reports it.

.cyberterm/layout.toml+layout
[[tab]]
title = "api"
cwd = "~/work/api"

[tab.layout]
split = "right"

[[tab.layout.panes]]
command = "npm run dev"

[[tab.layout.panes]]
command = "npm test -- --watch"
~/.config/cyberterm/init.lualua · hot reload
-- Show failures with their first line of output
cyberterm.on("command_finished", function(ev)
  if ev.exit ~= 0 then
    cyberterm.status(ev.command .. " failed: "
      .. ev.output():match("[^\n]+"))
  end
end)

-- Ctrl+Alt+G: lazygit below
cyberterm.bind("ctrl+alt+g", function()
  cyberterm.split{ direction = "down", command = "lazygit" }
end)

keys worth knowing

Command paletteCtrl+Shift+P
Split right / downCtrl+Shift+O Ctrl+Shift+E
New tabCtrl+Shift+T
Search historyCtrl+Shift+H
Find in scrollbackCtrl+Shift+F
Ask AI / explain errorCtrl+Shift+I Ctrl+Shift+J
RewindCtrl+Shift+U
Danger mode on/offCtrl+Shift+D
The theme picker filtered to catppuccin: 13 of 1,508 themes grouped by collection, with a live preview of Catppuccin Frappe
● 13 of 1,508 · live previewreal screenshot

This page right now: cyberterm classic

theme engine

Your terminal, your frequency.

129 themes come with Cyberterm, and the big collections are one command away. The picker filters as you type and previews the whole window live. Try the theme menu at the top of this page: it uses the same shared Cybercore palettes.

Cyberterm built-in12
Popular (Catppuccin, Tokyo Night, Gruvbox…)36
Cybercore catalog81
iTerm2 collection+768
Kitty collection+418
Cyberterm extras+203
# add more (each keeps its own license)
cyberterm +themes install iterm2
cyberterm +themes install all      # 1,500+ themes

Open the picker with Ctrl+Shift+, · Choosing a Cybercore theme switches every Cybercore app · Any Kitty .conf theme drops in unmodified

boot sequence

Put it on the desk.

Prebuilt for Linux (x86_64, ARM64) and Apple Silicon Macs, packaged on the AUR, or built from crates.io.

Release binary

curl -fsSL https://raw.githubusercontent.com/cybercore-tech/cyberterm/main/install.sh | sh

Downloads the latest release, checks its SHA-256 and installs to ~/.local/bin.

Arch Linux (AUR)

yay -S cyberterm-bin

Prebuilt, with a desktop entry and icon. Or yay -S cyberterm to build it from source.

From crates.io

cargo install cyberterm

Needs Rust 1.88+ and a C compiler (for the embedded Lua).

Shell integration

eval "$(cyberterm +shell-integration zsh)"

Add to ~/.zshrc (or use bash / fish). Command blocks, history and AI explanations rely on it.

Linux x86_64 · ARM64macOS Apple SiliconAUR ↗crates.io ↗MIT licensed
Good to know: danger mode, live ports and SSH-aware splits read Linux's /proc, so on macOS they stay off for now. The session daemon is opt-in ([daemon] enabled = true).

Docs and every option: README ↗ · Releases ↗ · crates.io ↗

dev@cybercoretech.net