(fully vibe-coded) buffer manager for agent-shell that provides a tabulated list view of all open agent-shell buffers with real-time status monitoring and management capabilities.
-
Tabulated List View: View all agent-shell buffers in an organized table showing:
- Folder/directory path
- Current status (Ready, Working, Waiting, Starting..., No Session, Killed, Unknown)
- Current session mode
- Active model (e.g., "claude-sonnet-4", "gpt-4")
- Pending permission requests count (highlighted in yellow when > 0)
-
Real-time Monitoring: Auto-refreshes every 2 seconds to show current agent status
-
Process Management:
- Kill agent-shell processes
- Restart agent-shells with the same configuration
- Create new agent-shell instances
- Delete all killed buffers at once
-
Session Control:
- Set session modes
- Cycle through available session modes
- Interrupt running agents
-
Debugging Tools:
- View traffic logs for any agent
- Toggle ACP logging
-
Smart Display:
- Killed processes are displayed at the bottom in red
- Status-based color coding for easy visual scanning
- Customizable window placement (left, right, top, bottom, or user-controlled)
- Ensure you have agent-shell installed
- Place
agent-shell-manager.elin your Emacs load path - Add to your Emacs configuration:
(require 'agent-shell-manager)M-x agent-shell-manager-toggleThis command toggles the visibility of the agent-shell buffer manager. By default, it appears at the bottom of the frame.
Once the manager buffer is open, you can use these keys:
| Key | Action |
|---|---|
RET |
Switch to agent-shell buffer at point |
g |
Refresh buffer list |
k |
Kill agent-shell process |
c |
Create new agent-shell |
r |
Restart agent-shell |
d |
Delete all killed buffers |
m |
Set session mode |
M |
Set session model |
C-c C-c |
Interrupt agent |
t |
View traffic logs |
l |
Toggle logging |
q |
Quit manager window |
Customize where the manager window appears:
;; Options: 'left, 'right, 'top, 'bottom, or nil
(setq agent-shell-manager-side 'bottom)When set to nil, the package defers to your display-buffer-alist
configuration and window management frameworks (such as shackle,
popper.el, etc.), giving you full control over window placement:
;; Use dedicated window with user-controlled placement
(setq agent-shell-manager-side nil)The manager displays the following status values with color coding:
- Ready (green): Agent is fully operational and waiting for your input
- Working (yellow): Agent is actively processing your request
- Waiting (blue): Agent is waiting for user input or permission approval
- Starting... (gray): Agent is initializing and starting up
- No Session (gray): Agent process is running but no conversation session has been established
- Killed (red): Process has been terminated
- Unknown (gray): Status cannot be determined (should not occur normally)
- Emacs 25.1 or later
- agent-shell package
tabulated-listmode (built-in)
This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
Copyright (C) 2025 Jethro Kuan
Contributions are welcome! Please feel free to submit issues or pull requests.
