Observed since 20 Oct, 23:20 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Manage Claude Code & Codex sessions, cost, and data from your terminal
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.
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.
The combined dashboard (cost across both agents, source-tagged rows), then the same view filtered to Claude and to Codex:
All / Claude / Codex or press s~/.asm/usage.db): sessions are parsed once and re-scanned only when they change, each one valued at the rates in effect when it was scanned (old sessions are never re-priced), and cost history survives even after Claude Code prunes old transcripts — Codex history is indexed in full, no recent-N capCLAUDE.md, CLAUDE.local.md, AGENTS.md, AGENTS.local.md in a built-in editor (Ctrl+S to save)cwd, which is how codex resume --cd associates sessions)Enter/o) or copy the URL (c) without leaving the terminal; also available as asm artifacts (--json for scripts) ~/.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 · usage.db | Backups (auto-migrated from old ~/.cc-tui), the deletion audit log, and the usage ledger |
rm)pip install 'agent-session-manager[sdk]'# 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.
git clone https://github.com/Bae-ChangHyun/agent-session-manager.git
cd agent-session-manager
uv sync && uv run asm
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.
Every feature is also available as a subcommand — handy for scripts and AI agents. In a terminal you get rich tables; piped output is plain text, and --json gives machine-readable output.
# Read-only
asm cost --period weekly # Cost/token stats per model & period
asm projects # All projects (Claude + Codex)
asm sessions --search "firewall" # Search sessions by title
asm preview <session-id> # Print a conversation
asm resume <session-id> # cd into its project & resume (Claude/Codex)
asm artifacts # Pages published via the Artifact tool
asm backup list / asm recovery list
# Destructive — always confirms first (skip with --yes); everything goes
# through the OS trash + recovery snapshots, same as the TUI.
asm clean empty --dry-run # empty | orphaned | debug | todos
asm trash <session-id>
asm backup create --type full # config|full|settings|plugins|sessions|codex
asm backup restore <path> / asm recovery restore <id>
asm migrate /old/project /new/project
| Key | Action |
|---|---|
F1–F7 | 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 |
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.
rm'd in place.Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.15.0 | 24 Jul 2026 | 3 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 23:20 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:79ddb15ad9c00ecd8f2f8d1eab72b782f918fca2c9a14c34cfa2f228eeef7a20