TUI for viewing agent team communications
Project description
Muninn
A terminal UI for viewing multi-agent team communications
Installation · Features · Usage · Keybindings · License
Muninn is a TUI application for viewing and navigating agent team conversations in real time. Built with Textual, it reads team inbox files from disk and presents messages, tasks, and team info in a clean, navigable interface with full Vim keybindings.
Named after one of Odin's ravens — the raven of memory — Muninn gives you a window into what your agent teams said, did, and decided.
Features
- Multi-room message viewer — browse
#general, per-agent (@agent), and pair (agent↔agent) conversations - Task tracking — extracted task assignments displayed as structured cards with status, assignee, and focus areas
- Team overview — view team configuration, member roles, and discovered agents
- Live updates — filesystem watcher picks up new messages as they arrive
- Full-text search — find messages instantly with
/search andn/Nnavigation - Vim keybindings —
hjklnavigation,gg/G,Ctrl+d/Ctrl+u, and more - Color-coded agents — each agent gets a distinct color for fast visual scanning
- Permission filtering — toggle permission request/response noise with
p - Structured message parsing — understands permission requests, task assignments, shutdown events, and idle notifications
Installation
Requires Python 3.11+ and uv.
git clone https://github.com/grimmy0/muninn.git
cd muninn
uv sync
For development (linting, type checking, tests):
uv sync --all-groups
Usage
# Auto-discover teams from ~/.claude/teams
muninn
# Open a specific team by name
muninn --team my-team
# Open a specific directory
muninn --path /path/to/team
# Use a custom teams directory
muninn --teams-dir /custom/teams/path
Muninn expects a team directory containing:
- A
config.jsonwith team metadata and member definitions - An
inboxes/directory with JSON message files (one per agent)
Keybindings
| Key | Action |
|---|---|
h / l |
Focus sidebar / message area |
j / k |
Scroll down / up |
G / gg |
Jump to bottom / top |
Ctrl+d / Ctrl+u |
Half-page down / up |
Ctrl+f / Ctrl+b |
Full-page down / up |
/ |
Search messages |
n / N |
Next / previous search match |
p |
Toggle permission messages |
1 2 3 |
Switch to Messages / Tasks / Team tab |
? |
Show help |
:q |
Quit |
Architecture
CLI (click)
└─ MuninnApp (textual)
├─ TeamSelectScreen ← pick a team
└─ MainScreen ← primary interface
├─ RoomSidebar ← room/conversation list
├─ MessageList ← scrollable message display
├─ TaskCards ← task assignment cards
├─ TeamInfo ← team config panel
├─ CommandBar ← search and command input
└─ Services
├─ MessageStore ← load & filter messages
├─ TeamDiscovery ← find teams on disk
├─ ColorManager ← agent color assignments
└─ Watcher ← filesystem change detection
Development
# Run tests
uv run pytest
# Type checking
uv run basedpyright
# Linting
uv run ruff check src/
# Run in dev mode with Textual console
uv run textual run --dev src/muninn/app.py
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file muninn_tui-0.1.0.tar.gz.
File metadata
- Download URL: muninn_tui-0.1.0.tar.gz
- Upload date:
- Size: 3.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c9eb2a92f6a52514f465ae85ee99d8ecae3a27e705f302a089603dbbad8833f
|
|
| MD5 |
3a12f5240a6091da442e1be8e4e040b8
|
|
| BLAKE2b-256 |
a9cb6a3e4a130405b059afb560bc807be94c8e205a7adc80c7126ab1ecf944fc
|
Provenance
The following attestation bundles were made for muninn_tui-0.1.0.tar.gz:
Publisher:
release.yml on grimmy0/muninn
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
muninn_tui-0.1.0.tar.gz -
Subject digest:
8c9eb2a92f6a52514f465ae85ee99d8ecae3a27e705f302a089603dbbad8833f - Sigstore transparency entry: 1106670011
- Sigstore integration time:
-
Permalink:
grimmy0/muninn@dd17fd7c858edb7a57eb01a29e3a5061178c7731 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/grimmy0
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dd17fd7c858edb7a57eb01a29e3a5061178c7731 -
Trigger Event:
push
-
Statement type:
File details
Details for the file muninn_tui-0.1.0-py3-none-any.whl.
File metadata
- Download URL: muninn_tui-0.1.0-py3-none-any.whl
- Upload date:
- Size: 24.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18749b2e28fad451af758a4311fb44408182718fe218b9cb3da330f94f0bb1e2
|
|
| MD5 |
6c2fa5ffd8682771a2c17584fa120c7c
|
|
| BLAKE2b-256 |
ec59713f088ea8b62eae8baf463e32c27a2f8876243a35beee8c3f57d2a414b5
|
Provenance
The following attestation bundles were made for muninn_tui-0.1.0-py3-none-any.whl:
Publisher:
release.yml on grimmy0/muninn
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
muninn_tui-0.1.0-py3-none-any.whl -
Subject digest:
18749b2e28fad451af758a4311fb44408182718fe218b9cb3da330f94f0bb1e2 - Sigstore transparency entry: 1106670093
- Sigstore integration time:
-
Permalink:
grimmy0/muninn@dd17fd7c858edb7a57eb01a29e3a5061178c7731 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/grimmy0
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dd17fd7c858edb7a57eb01a29e3a5061178c7731 -
Trigger Event:
push
-
Statement type: