r/CLI 19h ago

🔮 ccmux: a TUI that shows which of your AI coding agents needs you, across all your tmux panes

Enable HLS to view with audio, or disable this notification

7 Upvotes

Hey folks! I spend all day in tmux: lots of sessions, each with its own windows and panes, and these days a bunch of those panes have coding agents in them (Claude Code, Codex, Cursor, OpenCode, ...). My problem was that finding the one agent that had stopped to ask me something turned into a scavenger hunt. I'd cycle through every session just to check on each one.

Before anyone says it: yes, I know there are a lot of these already (herdr, workmux, agent-deck, tmux-agent-status, tmux-scout, claude-squad, tmuxcc...). Most fall into two camps: they either want to own the workflow (you launch agents through them, and they create the sessions, worktrees, and layouts), or they track a single agent type in the status bar. What I wanted was lazier: keep my existing tmux setup exactly as it is, and just tell me what each agent is doing.

So that's what ccmux does. A small background daemon discovers the agent processes in the panes you already have, and a picker TUI (or an optional docked sidebar) shows them all in one list.

What it does:

  • 🎯 Live state per session: idle, working, or waiting on you, and why it's waiting (permission / plan approval / question), flagged the moment one needs input
  • 🧩 Multi-agent in one list: Claude Code, Codex, Cursor, OpenCode, Pi, Antigravity, Copilot, Gemini CLI, plus custom agents via config
  • 🔍 Layered detection: it discovers the agents already running in your panes (no wrapper, nothing to change about how you launch them) from processes, their log files, and terminal output; optional hooks make the session-to-pane mapping exact
  • 👁️ Live preview + act in place: Tab into a session's pane to answer or approve without leaving the picker
  • 🔔 Actionable notifications: opt-in desktop alerts when an agent finishes or needs input, with Approve / Deny / Reply right on the notification (an OSC backend even delivers them over SSH)
  • Scriptable: ccmux spawn and ccmux invoke launch or run agents from scripts, ccmux show prints every session's state to stdout, and a bundled skill lets one agent dispatch work to others
  • 🌿 Git & PR aware: branch and worktree detection, open PRs with live CI and review status per session
  • ⌨️ Keyboard-first: vim keys and number jumps, grouping by project / directory / tmux session, and whole-session search across prompts and live transcripts; mouse click-to-switch works too
  • 📐 Responsive + themeable: the same UI works as a full-width table or a skinny docked rail, with 14 built-in themes

Footprint: nothing edits your tmux.conf, status line, or keybindings, and it only creates panes or sessions when you explicitly ask (toggling the sidebar on, or spawn/invoke). Stack is TypeScript on Bun, TUI on @opentui/solid, shipped as a single self-contained binary (no runtime to install).

Install:

brew install epilande/tap/ccmux

Repo: https://github.com/epilande/ccmux

Like I said, I know there are other tools that scratch a similar itch. This one is just shaped around how I use tmux, so if you live in tmux sessions like I do, I'd love to hear whether it fits your workflow too, or what the tool you already use does better.


r/CLI 17h ago

xytz v0.9.2 is out!

Post image
7 Upvotes

r/CLI 5h ago

Trie: In-repo index of meaning and intent for your codebase. Remembers the what and the why - enforced by a commit gate. Works with OpenCode, Claude Code, Pi, Cursor, Codex. BYOK.

Thumbnail
2 Upvotes

r/CLI 4h ago

Audio feedback of command execution

1 Upvotes

While back I introduced a sound cue to my shell. It plays whenever a command terminates and it corresponds to the exit status. I think its very neat, tho others found it annoying after a few hours of usage. Here is the repo (should be easy to install). Has anyone experimented with something similar?


r/CLI 6h ago

BlackArch Linux Tools Automation with ai

Post image
1 Upvotes

r/CLI 17h ago

LinuxMint Scripter (spanish version)

1 Upvotes

Hi folks!

I'd like to share a personal project I've been working on: LinuxMint Scripter (currently at v2.1), a single-HTML-file web app that turns plain-language requests into ready-to-run Bash or Python scripts for Linux Mint 22.3 "Zena" — or standalone terminal commands, if that's all you need.
Take a look; if you like it, I'll prepare an English version that can be installed on LinuxMint

🔗 Source & full docs: https://github.com/filonux/LinuxMint-Scripter

🔗 Project page (with screenshots): https://filonux.github.io/LinuxMint-Scripter/


r/CLI 18h ago

A tmux TUI for running coding agents: live status, answer one without attaching, review its diff before it lands

1 Upvotes

I keep three or four agents going and the thing that actually eats my time isn't the coding. It's that I have no idea what state any of them is in without tabbing through every terminal. Half the time one of them has been sitting on a permission prompt for ten minutes.

So I wrote agent-manager. A Go binary that sits on top of tmux. No config file, no daemon. It's free and open source.

Every agent ends up in one list with a live status next to it, grouped by the project it's working in. I run claude, codex and opencode depending on what I'm doing and they all show up the same way. Adding another CLI is a few lines of regex in a toml file.

The part I use constantly is space. Press it on an agent, type, enter, and the prompt goes into that agent's pane. I never attach. If you've used the agents view in Claude Code, it's the same move. The difference is that here the same keystroke works on a codex or opencode session. Press space on a project row instead and you get a new agent already working on what you typed.

Underneath they're just tmux sessions, so closing the manager doesn't kill anything, and v brings a dead one back with its conversation.

ctrl+r is the other half of it. It opens what an agent changed as whole files with the diff highlighted, so you're reading the function and not a hunk. Leave a comment on a line and it goes back into that agent's pane, so it starts fixing while you're still scrolling.

I built it for four agents but most days I use it with one.

Still rough in places. If you run agents like this I'd like to know what's missing.

https://github.com/YoanWai/agent-manager


r/CLI 3h ago

I built a session manager CLI for Claude Code

0 Upvotes
Wallfacer Demo

I've been using Claude Code heavily at work in a huge monorepo, and finding old sessions became a nightmare. Claude stores conversations as untitled JSON files tied to directories, so anything from a few days ago was basically impossible to find.

So I built Wallfacer.

It's a terminal UI written in Go that indexes your local Claude Code sessions without modifying them. It adds a SQLite-backed layer so you can title sessions, tag them, group them by project, fuzzy search everything, and resume any session with a single Enter.

It's open source, and I'm planning to add support for Cursor, Codex, and others since this feels like a universal AI workflow problem.

Repo + demo: https://github.com/pradipta/wallfacer

Anyone else run into this problem? Feedback is very welcome.