cd /news/ai-agents/show-hn-gwae-infinite-scroll-termina… · home topics ai-agents article
[ARTICLE · art-137958] src=github.com ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

Show HN: Gwae – infinite-scroll terminal multiplexer for AI agent fleets

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.

read4 min views1 publishedSep 23, 2026
Show HN: Gwae – infinite-scroll terminal multiplexer for AI agent fleets
Image: Michielbdejong (auto-discovered)

Lightweight, Lightspeed

Tested with Ghostty and Jcode on MacBook Pro M4

Developed and tested on macOS only. Contributions for Windows are welcome.

Linux users: I recommend niri, the scrolling window manager that inspired gwae.

curl -fsSL https://hongnoul.github.io/gwae/install.sh | bash

or with Homebrew:

brew install hongnoul/tap/gwae

Official docs are still WIP.

Feature Default What it does
Heads-up display hold ⌥ Live agent status minimap over standard OSC 133 with Running, Idle, and Failed states
Smart jump ⌥+g Cycles through Idle panes with Failed states ranked first
Hatchery ⌥+d Opens the spawn-directory picker to choose where the next pane process starts
Agent selector ⌥+Shift+; Opens the harness picker to spawn a specific agent instead of your default choice
Drag to copy drag Left-drag selects and copies on release via pbcopy with OSC 52 fallback for remote sessions
Caffeinate ⌥+w Toggles the macOS caffeinate assertion so a long-running job never sleeps mid-task

When to use gwae (and how it compares vs tmux and herdr): running several CLI coding agents at once, tmux panes shrinking into slivers, or wanting niri's scrolling layout in the terminal.

+ / opens the cheat sheet.

Vim-style movement, like a tiling WM: h left · j down · k up · l right

Paste this into an agent pane:

You are teaching me gwae, a scrolling terminal multiplexer. I am inside a
gwae pane talking to you. I am a beginner: assume I know nothing beyond
typing in a terminal. Walk me through each step below one at a time. For
each step, tell me exactly what to press, what I should see, and how to
confirm it worked. Wait for my confirmation before moving on. If something
does not work, stop and help me fix it before continuing. Do not skip
ahead and do not dump all steps at once.

0. Fix the modifier key first. Nothing below works without this. Have me
press ⌥+/ . If the cheat sheet opens, it works; press Esc to close it.
If a special character types instead, tell me to set Option to act as
Meta in my terminal (Terminal.app: Preferences, Profiles, Keyboard, Use
Option as Meta Key; iTerm2, Ghostty, WezTerm have the equivalent), then
retry. Do not proceed until ⌥+/ opens the cheat sheet.
1. Open a pane: have me press ⌥+Enter once. Confirm a new shell pane
appears to the right.
2. Move: have me press ⌥+h and ⌥+l to move between the two panes.
Confirm the focus ring follows. Then have me press ⌥+k and ⌥+j.
Mention click-to-focus only after these work.
3. Open more: have me press ⌥+Enter until there are 6 panes. If I get
lost, remind me ⌥+h/l moves between panes. Point out the viewport
scrolling right while every pane keeps its width.
4. Reshape: have me press ⌥+r to cycle the focused column's width, then
⌥+b to split below. Mention ⌥+f
(full width) and ⌥+Shift+h/j/k/l (move pane in all four directions)
only after these work.
5. Agents: have me press ⌥+; to spawn an agent (first press offers what
is installed and remembers it). Confirm Cmd+V pastes text into the pane
(native terminal paste). Mention ⌥+Shift+; (picker), ⌥+d (spawn
directory), and gwae run "claude" (CLI start) after.
6. History: have me press ⌥ plus the up and down arrows to scroll the
focused pane's history (add Shift for a bigger jump). Then have me
press ⌃+⇧+K and ⌃+⇧+J for the three-line transcript scroll, noting it
goes to the agent itself inside agent panes. Left and right arrows
always type into the pane, never scroll. Confirm history moves without
moving focus.
7. Stuck panes: have me hold ⌥ for the dashboard (» working, ! needs
input, ✗ failed), then ⌥+g to jump to the neediest pane. Mention
clicking a tile focuses it.
8. Help and quit: show ⌥+/ (cheat sheet), ⌥+q (close pane),
⌥+Shift+q (quit; last pane exiting quits gwae). Mention ⌥+w
(keep-awake) last.
9. Health: only now, have me type exit in panes until one shell is left,
then run gwae doctor in it and confirm exit 0. If anything fails, run
gwae init. Mention ~/.config/gwae/gwae.toml (all keys optional,
live-reloads) only here, at the end.
git clone https://github.com/hongnoul/gwae
cd gwae
cargo build
cargo test --workspace
Metric Method gwae herdr 0.9.1 tmux 3.7c
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
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
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

if you are an ai agent driving gwae, read docs/agents.md before spawning panes.

── more in #ai-agents 4 stories · sorted by recency
── more on @gwae 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-gwae-infinit…] indexed:0 read:4min 2026-09-23 ·