0,0
1920,0

Terminal for
agentic workflows.

Attyx is the terminal for the agentic era — built to run, watch, and coordinate AI agents without leaving your shell. Agent-aware end to end, scriptable over IPC, the attyx CLI, and MCP. GPU-accelerated, written in Zig, under 5 MB.

Install

$ brew tap semos-labs/tap

$ brew install attyx

$ attyx # launch it

Documentation GitHub macOS (Apple Silicon & Intel) · Linux (x64 & ARM64)
Zig / Metal · OpenGL / < 5 MB / IPC · CLI · MCP / macOS · Linux / MIT License
Agent dashboard

Every agent on one screen.

attyx dashboard — or ⌘⇧A — opens a full-screen, htop-style view of every agent across all your sessions: state, tokens, cost, and context window, live. Jump to an agent's pane, zoom, or close it without leaving the table.

Agent dashboard
Agent status

See every agent at a glance.

Attyx reads each agent's lifecycle — Claude, Codex, opencode, pi.dev — and paints a colored dot on its pane: working, waiting on you, or idle. Run a swarm and see which one needs you.

Agent workflows
CLI control

Drive it from anywhere.

Every pane has a stable ID. Over a Unix socket, one agent spawns panes, sends keystrokes, and reads output from any other. It speaks MCP too — attyx mcp hands the same tools to Claude and any MCP client.

IPC & CLI
Splits & sessions

Lay it out. Leave it running.

Vertical and horizontal splits, tabs, and floating popups — all built in, no plugin needed. Sessions are daemon-backed: close the window, reopen tomorrow, every pane exactly where you left it.

Tabs & splits
Command palette

Every command, a keystroke away.

⌘⇧P opens a fuzzy-searchable list of every action — split, theme, session, search. Forgot a shortcut? Type a few letters and run it.

Command palette
Themes

Twenty-two themes, ready to wear.

Catppuccin, Dracula, Gruvbox, Nord, Tokyo Night and more — preview them live in the palette, or drop a TOML file in your config to ship your own.

Themes
~/agents main 5:51 PM
Attyx — Agents 4 running · 1 needs input
Session State Cost
web working $0.42
web input needs input
api working ~$0.31
infra idle
TOTAL $0.73 (~est)
↑↓ select focus z zoom x close s sort / search q quit

$ attyx watch

test running 142 tests
lint ✓ 0 problems
build ✓ built in 1.2s
deploy Deploy to prod? [y/N]
working waiting on you idle
# spawn an agent in a new pane, capture its id
$ id=$(attyx split v --cmd "claude -p 'run tests'")
# read what it's doing — anytime, no focus change
$ attyx get-text -p $id
  test  PASS  142 passed (3.1s)
# nudge it when it pauses for input
$ attyx send-keys -p $id "yes{Enter}"
# clean up when it's done
$ attyx split close -p $id

nvim · main.zig

12pub fn main() void {

13 try term.init();

14 loop.run();

15}

npm run dev

VITE ready in 421 ms

➜ localhost:4322

git status

On branch main

nothing to commit

split
  • Split Vertically⌘D
  • Split Horizontally⌘⇧D
  • Split Rotate
  • Zoom Split
  • Close Split
theme
  • dracula
  • nord
  • catppuccin-mocha
  • gruvbox-dark
  • tokyo-night
  • + 17 more · preview live
MCP-native

Hand the terminal to an agent.

Attyx speaks the Model Context Protocol natively — every pane, tab, keystroke, and agent status is a typed tool. Point Claude Desktop, Claude Code, or any MCP client at it over stdio or a loopback HTTP endpoint, and it drives the real, running terminal.

stdio attyx mcp http 127.0.0.1:7333/mcp
MCP server
claude_desktop_config.json
{
  "mcpServers": {
    "attyx": { "command": "attyx", "args": ["mcp"] }
  }
}
Claude Code skill

$ attyx skill install # drops /attyx into Claude Code

Works with

Agent-aware, end to end.

Attyx reads each agent's lifecycle straight from the source and paints it as a per-pane status dot — working, waiting on you, idle. No polling, no guesswork.

Claude JSON lifecycle hooks
Codex JSON lifecycle hooks
opencode event-bus plugin
pi.dev event-bus extension

Small binary. Big throughput.

Attyx is a single native binary under 5 MB — no Electron, no Chromium, no bundled browser. Written in Zig and GPU-rendered on Metal and OpenGL, it scrolls hundreds of thousands of lines without dropping a frame.

Single binary / No Electron / Zig 0.15 / GPU-rendered / No tearing
Architecture
And more

Regex search across scrollback · vim-style visual mode · inline images via the Kitty protocol · a scriptable status bar · floating popups · TOML config with hot reload · native on macOS & Linux.

FAQ

Is this a tmux replacement?

Sessions, splits, tabs, and floating popups are all built in — no tmux, no config pile. A background daemon keeps sessions alive, so you can close the window and reattach with every pane intact.

Why Zig?

A single native binary under 5 MB — no Electron, no Chromium, no bundled browser. It's GPU-rendered on Metal and OpenGL, starts instantly, and sips memory.

Will it run my shell and TUIs?

Yes — it's a real terminal. Your shell, Neovim, htop, even inline images via the Kitty protocol all work, alongside regex scrollback search and a vim-style visual mode.

How does it track agents?

It reads Claude and Codex lifecycle through JSON hooks, and opencode and pi.dev through event-bus extensions, then paints a status dot on each pane and tab — working, waiting on you, or idle.

Can agents drive it?

That's the point. An IPC layer, the attyx CLI, and a native MCP server expose panes, keystrokes, and output as typed tools — so one agent can spawn, watch, and coordinate others.

Which platforms?

macOS (Apple Silicon & Intel) and Linux (x64 & ARM64), both native. Grab a build from the releases page or via Homebrew. MIT licensed, all of it.

Part of Semos Labs

A constellation of terminal-native tools — Attyx, Glyph, Aion, and Epist.

Get started

Try Attyx.

Install via Homebrew or grab a native build — you're up and running in seconds.

Install

$ brew tap semos-labs/tap

$ brew install attyx

$ attyx # launch it

Read the docs View source macOS (Apple Silicon & Intel) · Linux (x64 & ARM64)