Manage Claude Code & Codex sessions, cost, and data from your terminal
Project description
agent-session-manager
One terminal dashboard for everything Claude Code and Codex leave behind.
See cost, browse sessions, and clean up ~/.claude and ~/.codex — side by side, with a Claude / Codex filter.
asm · 한국어
⚠️ Heads up This is a personal tool that reads and edits the internal data of Claude Code and OpenAI Codex (
~/.claude,~/.codex). Every delete goes to the OS trash and is logged, but you should still back up before bulk operations. Not affiliated with Anthropic or OpenAI.
What it is
If you live in Claude Code and Codex, the two of them quietly fill ~/.claude and ~/.codex with session transcripts, cost logs, debug files, task lists, and snapshots. After a few weeks it's impossible to tell which projects burned the most tokens, or which files are orphaned and safe to delete.
agent-session-manager (asm) puts all of it in one terminal dashboard. Both agents show up together, and a single keystroke filters the view to All / Claude / Codex so you can compare spend or drill into one tool.
💡 Why it exists
- Problem: cost and session data for two different coding agents live in two opaque directories with no shared view.
- Solution: one TUI that reads both, prices every model accurately, and lets you clean up safely — to the trash, with recovery snapshots.
Demo
The combined dashboard (cost across both agents, source-tagged rows), then the same view filtered to Claude and to Codex:
✨ Features
Combined dashboard
- Cost across both agents with a source filter — click
All / Claude / Codexor presss - Per-model token & cost breakdown (Opus / Sonnet / Haiku / GPT-5.x), each row tagged by source
- Daily / weekly / monthly usage tables (one scan, all periods) and a Top-10 project cost chart
- Accurate, current pricing from a LiteLLM-sourced rate table (new Opus/GPT models priced correctly, not at stale rates)
Unified sessions (Claude + Codex)
- One tree: Claude projects and Codex working directories together, each session tagged C / X
- Expand a project to preview conversations from either agent; trash individual sessions
- Orphan cleanup: detect and bulk-clean Claude sessions, file-history, debug, and task entries with no matching project
- Duplicate sessions: find the same session copied across projects and delete individual copies
- Migration: copy Claude sessions between projects (originals preserved), with paths auto-rewritten
Safe by default
- Every delete goes to the OS trash and is recorded in an audit log
- Recovery snapshots are taken before trashing (Claude and Codex)
- Backups for Claude (config / settings / plugins / sessions / full) and Codex (sessions, excluding huge caches), with auto safety-backup and rollback on restore
How it works
~/.claude ┐
├──► asm ──► one dashboard ──► filter: All / Claude / Codex
~/.codex ┘ (cost · sessions · cleanup · backup)
asm reads both data directories directly — no daemon, no config. Claude data is grouped by project; Codex sessions are grouped by working directory. Pricing is computed from each session's recorded token usage.
| Path | What's there |
|---|---|
~/.claude.json · ~/.claude/projects/ |
Claude projects, costs, session JSONL |
~/.claude/file-history/ · debug/ · tasks/ |
Snapshots, debug logs, per-session task lists |
~/.codex/sessions/ |
Codex rollout session files |
~/.asm/backups/ · trash-log.jsonl |
Backups (auto-migrated from old ~/.cc-tui) and the deletion audit log |
🛠️ Tech Stack
- TUI: Textual + Rich
- Safety: send2trash (OS trash, not
rm) - Sessions: claude-agent-sdk with a JSONL fallback parser
- Python: 3.11+
🚀 Getting started
Install (recommended)
# uv
uv tool install agent-session-manager
# pip
pip install agent-session-manager
Both install a single asm command. On first run, data from the previous ~/.cc-tui location is migrated to ~/.asm automatically.
Run from source
git clone https://github.com/Bae-ChangHyun/agent-session-manager.git
cd agent-session-manager
uv sync && uv run asm
Usage
asm # Launch — shows Claude + Codex together
asm --source codex # Start with the dashboard filtered to Codex
asm --path /your/project # Limit to one Claude project
asm --lang ko # Korean UI (or set ASM_LANG=ko)
asm --no-update-check # Skip the startup update check
Both sources are always available; --source only sets the dashboard's initial filter, which you change anytime with s.
Keyboard
| Key | Action |
|---|---|
F1–F6 |
Switch tabs |
s / click |
Dashboard source filter (All / Claude / Codex) |
Tab / Shift+Tab · 1 2 3 |
Dashboard period (Daily / Weekly / Monthly) |
d / D |
Trash selected / all orphaned |
Space · Enter |
Toggle selection · Preview conversation |
r · q |
Refresh all · Quit |
Staying up to date
When a newer release is on PyPI, asm offers a y/N upgrade prompt on startup (via uv tool or pip). It's skipped in non-interactive shells and when offline.
🗺️ Roadmap
- Codex session restore (backup / list / delete exist today; restore does not)
- Per-source disk-usage and retention hints in the data overview
- Publish to PyPI as
agent-session-manager
⚠️ Status & scope
- Personal / pre-release, under active development.
- Operates directly on Claude Code and Codex internal data — back up before bulk deletes.
- Deletes go to the OS trash with recovery snapshots; nothing is
rm'd in place. - No warranty. Not affiliated with Anthropic or OpenAI.
📄 License
Made with Claude Code · and now Codex too
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 agent_session_manager-0.7.0.tar.gz.
File metadata
- Download URL: agent_session_manager-0.7.0.tar.gz
- Upload date:
- Size: 129.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d87ed5dffb5b11b1a5b9b68ccdeb93d90246334eeace3d80ca8ca916055d8f77
|
|
| MD5 |
2e45d9450636251b5e2ab7d10f1c1ab8
|
|
| BLAKE2b-256 |
4103bd15e4d6920e1bac48d8e5abd384683d36d583d9fb4f2ddf4e9a70584f5a
|
File details
Details for the file agent_session_manager-0.7.0-py3-none-any.whl.
File metadata
- Download URL: agent_session_manager-0.7.0-py3-none-any.whl
- Upload date:
- Size: 78.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d34e710fb4566164e7b66241fa7418419ed94ca50f5c1f31f53c91f8a74c0840
|
|
| MD5 |
0601195984a02adf4bea5112d369a5ee
|
|
| BLAKE2b-256 |
42a37b9252daac24f194c3b66dca1839b5f0394cc681887fc7b04ba11d3a5e7a
|