{"slug": "show-hn-gwae-infinite-scroll-terminal-multiplexer-for-ai-agent-fleets", "title": "Show HN: Gwae – infinite-scroll terminal multiplexer for AI agent fleets", "summary": "Developer hongnoul released gwae, an open-source infinite-scroll terminal multiplexer for running fleets of CLI AI coding agents, installable via curl or Homebrew on macOS. Gwae adds a heads-up display over OSC 133 with Running, Idle, and Failed agent states, a smart jump (⌥+g) that cycles Idle panes with Failed ranked first, a spawn-directory picker (⌥+d), an agent harness picker (⌥+Shift+;), and a caffeinate toggle (⌥+w) to keep long jobs awake. The tool is developed and tested only on macOS, with Windows contributions welcomed and Linux users pointed to the niri scrolling window manager that inspired it.", "body_md": "**Lightweight, Lightspeed**\n\nTested with [Ghostty](https://github.com/ghostty-org/ghostty) and [Jcode](https://github.com/1jehuang/jcode) on MacBook Pro M4\n\nDeveloped and tested on macOS only. Contributions for Windows are welcome.\n\nLinux users: I recommend [niri](https://github.com/YaLTeR/niri), the scrolling window manager that inspired gwae.\n\n```\ncurl -fsSL https://hongnoul.github.io/gwae/install.sh | bash\n```\n\nor with Homebrew:\n\n```\nbrew install hongnoul/tap/gwae\n```\n\nOfficial docs are still WIP.\n\n| Feature | Default | What it does | \n|---|---|---|\n| Heads-up display | hold ⌥ | Live agent status minimap over standard OSC 133 with Running, Idle, and Failed states | \n| Smart jump | ⌥+g | Cycles through Idle panes with Failed states ranked first | \n| Hatchery | ⌥+d | Opens the spawn-directory picker to choose where the next pane process starts | \n| Agent selector | ⌥+Shift+; | Opens the harness picker to spawn a specific agent instead of your default choice | \n| Drag to copy | drag | Left-drag selects and copies on release via pbcopy with OSC 52 fallback for remote sessions | \n| Caffeinate | ⌥+w | Toggles the macOS caffeinate assertion so a long-running job never sleeps mid-task | \n\n**When to use gwae** (and [how it compares vs tmux and herdr](https://github.com/hongnoul/gwae/blob/main/docs/when-to-use.md)): running several CLI coding agents at once, tmux panes shrinking into slivers, or wanting niri's scrolling layout in the terminal.\n\n`⌥` + `/` opens the cheat sheet.\n\nVim-style movement, like a tiling WM: `h` left · `j` down · `k` up · `l` right\n\nPaste this into an agent pane:\n\n```\nYou are teaching me gwae, a scrolling terminal multiplexer. I am inside a\ngwae pane talking to you. I am a beginner: assume I know nothing beyond\ntyping in a terminal. Walk me through each step below one at a time. For\neach step, tell me exactly what to press, what I should see, and how to\nconfirm it worked. Wait for my confirmation before moving on. If something\ndoes not work, stop and help me fix it before continuing. Do not skip\nahead and do not dump all steps at once.\n\n0. Fix the modifier key first. Nothing below works without this. Have me\npress ⌥+/ . If the cheat sheet opens, it works; press Esc to close it.\nIf a special character types instead, tell me to set Option to act as\nMeta in my terminal (Terminal.app: Preferences, Profiles, Keyboard, Use\nOption as Meta Key; iTerm2, Ghostty, WezTerm have the equivalent), then\nretry. Do not proceed until ⌥+/ opens the cheat sheet.\n1. Open a pane: have me press ⌥+Enter once. Confirm a new shell pane\nappears to the right.\n2. Move: have me press ⌥+h and ⌥+l to move between the two panes.\nConfirm the focus ring follows. Then have me press ⌥+k and ⌥+j.\nMention click-to-focus only after these work.\n3. Open more: have me press ⌥+Enter until there are 6 panes. If I get\nlost, remind me ⌥+h/l moves between panes. Point out the viewport\nscrolling right while every pane keeps its width.\n4. Reshape: have me press ⌥+r to cycle the focused column's width, then\n⌥+b to split below. Mention ⌥+f\n(full width) and ⌥+Shift+h/j/k/l (move pane in all four directions)\nonly after these work.\n5. Agents: have me press ⌥+; to spawn an agent (first press offers what\nis installed and remembers it). Confirm Cmd+V pastes text into the pane\n(native terminal paste). Mention ⌥+Shift+; (picker), ⌥+d (spawn\ndirectory), and gwae run \"claude\" (CLI start) after.\n6. History: have me press ⌥ plus the up and down arrows to scroll the\nfocused pane's history (add Shift for a bigger jump). Then have me\npress ⌃+⇧+K and ⌃+⇧+J for the three-line transcript scroll, noting it\ngoes to the agent itself inside agent panes. Left and right arrows\nalways type into the pane, never scroll. Confirm history moves without\nmoving focus.\n7. Stuck panes: have me hold ⌥ for the dashboard (» working, ! needs\ninput, ✗ failed), then ⌥+g to jump to the neediest pane. Mention\nclicking a tile focuses it.\n8. Help and quit: show ⌥+/ (cheat sheet), ⌥+q (close pane),\n⌥+Shift+q (quit; last pane exiting quits gwae). Mention ⌥+w\n(keep-awake) last.\n9. Health: only now, have me type exit in panes until one shell is left,\nthen run gwae doctor in it and confirm exit 0. If anything fails, run\ngwae init. Mention ~/.config/gwae/gwae.toml (all keys optional,\nlive-reloads) only here, at the end.\ngit clone https://github.com/hongnoul/gwae\ncd gwae\ncargo build\ncargo test --workspace\n```\n\n| Metric | Method | gwae | herdr 0.9.1 | tmux 3.7c | \n|---|---|---|---|---|\n| Echo p50 | Keystroke to visible echo in a real PTY harness, median | 0.34 ms | 0.48–0.50 ms | 0.36–0.37 ms | \n| Echo p90 | Keystroke to visible echo in a real PTY harness, 90th pct | 0.36–0.38 ms | 0.54 ms | 0.42–0.43 ms | \n| Spawn p50 | New pane request to first painted frame, median | 0.48–0.52 ms | 0.63–0.70 ms | 4.1–4.7 ms | \n\nif you are an ai agent driving gwae, read [`docs/agents.md`](https://github.com/hongnoul/gwae/blob/main/docs/agents.md) before spawning panes.", "url": "https://wpnews.pro/news/show-hn-gwae-infinite-scroll-terminal-multiplexer-for-ai-agent-fleets", "canonical_source": "https://github.com/hongnoul/gwae", "published_at": "2026-09-23 08:10:01+00:00", "updated_at": "2026-09-23 08:24:08.987441+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools"], "entities": ["gwae", "hongnoul", "Ghostty", "Jcode", "niri", "Homebrew", "macOS", "tmux"], "alternates": {"html": "https://wpnews.pro/news/show-hn-gwae-infinite-scroll-terminal-multiplexer-for-ai-agent-fleets", "markdown": "https://wpnews.pro/news/show-hn-gwae-infinite-scroll-terminal-multiplexer-for-ai-agent-fleets.md", "text": "https://wpnews.pro/news/show-hn-gwae-infinite-scroll-terminal-multiplexer-for-ai-agent-fleets.txt", "jsonld": "https://wpnews.pro/news/show-hn-gwae-infinite-scroll-terminal-multiplexer-for-ai-agent-fleets.jsonld"}}