Show HN: Ghostty-based terminal with vertical tabs and notifications

Published: (February 19, 2026 at 04:30 PM EST)
2 min read

Source: Hacker News

Overview

I run many Claude Code and Codex sessions in parallel. Previously I used Ghostty with split panes and relied on native macOS notifications to know when an agent needed attention. Claude Code’s notification body is always just “Claude is waiting for your input”, which provides no context, and with many tabs open the titles become unreadable.

To solve this, I built cmux, a native macOS app written in Swift/AppKit. It uses libghostty for terminal rendering and reads your existing Ghostty configuration (themes, fonts, colors, etc.).

Features

  • Sidebar with vertical tabs
    Shows the git branch, working directory, listening ports, and the latest notification text for each workspace.

  • Notification system

    • Picks up terminal sequences (OSC 9/99/777).
    • Provides a CLI (cmux notify) that can be wired into agent hooks for Claude Code, OpenCode, etc.
    • When an agent is waiting, its pane gets a blue ring and the corresponding tab lights up in the sidebar.
    • Cmd+Shift+U jumps to the most recent unread notification.
  • In‑app browser

    • Scriptable API ported from agent‑browser1.
    • Agents can snapshot the accessibility tree, obtain element references, click, fill forms, evaluate JavaScript, and read console logs.
    • You can split a browser pane next to a terminal pane, allowing Claude Code to interact directly with your development server.
  • Full scriptability

    • CLI and socket API let you create workspaces/tabs, split panes, send keystrokes, and open URLs in the browser.

Demo

Demo video on YouTube

Repository

cmux (AGPL) on GitHub


Footnotes

  1. https://github.com/vercel-labs/agent-browser (source of the in‑app browser API)

0 views
Back to Blog

Related posts

Read more »

Instalar OpenClaw en MacMini, Parte 2.

Fase 1: Configuración limpia de macOS Paso 6: Borrar la Mac Mini y crear Apple ID En la Mac Mini mientras aún está corriendo su macOS actual, ve a: System Sett...