Skip to main content

hades

Keeper of sessions, living and dead.

just AI Sessions manager

PyPI Python

Why

Each AI tool keeps its own session store, so there's no single view across them — and it's easy to miss a session that's been waiting on you. hades gives you one place to see what's running, what's waiting, and what happened.

Install

pipx install hades-cli       # recommended
uv tool install hades-cli    # or with uv
pip install hades-cli        # or plain pip

Usage

hades list                                    # sessions from the last 3 days (default)
hades list --tool claude --active             # filter by tool or status
hades list --day 1 --hour 12                  # sessions active within the last 1d 12h
hades list --all                              # every session ever indexed
hades show <session-id>                       # pretty-print a transcript
hades show <session-id> --full                # expand tool calls too
hades attention                               # what's been waiting on you
hades stats                                   # summary + per-tool breakdown
hades stats --day 1                           # scoped to the last 24h
hades search "some query"                     # full-text search across transcripts
hades search "some query" --tool claude -n 5  # filter by tool, cap results
hades export <session-id>                     # dump transcript as JSON
hades export <session-id> --format markdown -o out.md
hades archive <session-id>                    # move transcript to the archive, hide it from list/search
hades purge <session-id>                      # permanently delete a transcript (asks to confirm)
hades watch                                   # live view + macOS notifications
hades watch --no-notify                       # live view only

How it works

On every command, hades scans your local session files, indexes them into a SQLite database, and checks running processes to show live status. Only changed files are re-parsed, so runs stay fast. Everything stays on your machine — nothing is sent anywhere.

Commands

hades list shows all sessions across tools, sorted by most recently active. Background sessions spawned by other tooling (observers, hooks, ...) are grouped into a single summary row per tool, instead of flooding the table:

TOOL      PROJECT              TYPE      LAST ACTIVE    MSGS  STATUS
claude    hades                human     2m ago          47   ● running
claude    claude-mem           agent     2m ago         512   ● running
claude    dotfiles             human     3h ago          12   ○ idle
gemini    api-server           human     1d ago           8   ○ idle
codex     ml-pipeline          human     3d ago          31   ✕ ended

hades show pretty-prints a single transcript, tool calls collapsed by default (--full to expand).

hades attention lists sessions that have been waiting on you for 3+ minutes, longest wait first.

hades stats summarizes total sessions/messages, a per-tool breakdown, and how many sessions are currently waiting on you.

hades search does a full-text search across every transcript's human and assistant messages, with a highlighted snippet for each match.

hades export dumps a session's transcript to a JSON or Markdown file, for sharing or archiving outside hades.

hades archive relocates a session's raw file into hades's own archive directory and hides it from list/search by default (pass --show-archived to see it again). The file isn't deleted — hades purge is the destructive one.

hades purge permanently deletes a session's transcript file and its index entry. Prompts for confirmation unless you pass --yes.

hades watch keeps a live view open and fires a macOS notification when a session starts waiting.

Sources

Tool Default path Format
Claude Code ~/.claude/projects/ JSONL
Codex CLI ~/.codex/sessions/ JSONL
Gemini CLI ~/.gemini/tmp/ JSON
Cowork ~/Library/Application Support/Claude/local-agent-mode-sessions/ JSON

Paths are auto-discovered — no config needed. Override any with env vars:

HADES_CLAUDE_PATH=~/custom/path hades list

Development

Requires Python 3.11+ and uv.

git clone https://github.com/mnghn07/hades.git
cd hades
uv sync --group dev     # install project + dev dependencies into .venv
uv run hades list       # run the CLI from source
uv run pytest           # run the test suite
uv run pylint $(git ls-files '*.py')   # lint
uv build                 # build sdist + wheel into dist/

Versioning is derived from git tags (via hatch-vcs) — there's nothing to bump by hand. Pushing a tag like v0.1.1 builds and publishes that version to PyPI automatically:

git tag v0.1.1
git push origin v0.1.1

License

MIT

Release files for hades-cli 0.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hades-cli 0.1.8
File Size Uploaded
hades_cli-0.1.8.tar.gz 62.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hades-cli 0.1.8
File Interpreter ABI Platform
hades_cli-0.1.8-py3-none-any.whl Python 3 none any Details

Total release size: 102.5 kB

Release files / hades_cli-0.1.8.tar.gz

Download URL hades_cli-0.1.8.tar.gz
Size 62.7 kB
Tags Source
SHA-256 checksum
How to use checksums
20d97e938318344526dff3a90737e5138a89d4e9b91cbdc4b8dac7ef452fc2f2
BLAKE2b-256 checksum
How to use checksums
5579e6a69f967549f4cf0e0c5a942b04dd467fbf80f362aebfa8b9d70b0d6f65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release files / hades_cli-0.1.8-py3-none-any.whl

Download URL hades_cli-0.1.8-py3-none-any.whl
Size 39.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ca3927c07283ae1bf06e6b01efc3113c1a6237d0f28e9052d160b45ea85dd7f4
BLAKE2b-256 checksum
How to use checksums
38b4fd3a8c776b004a789f0d5d8f534f27f07c2a0edfcb4b16440490684ae745
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.9

2 release files

This release

0.1.8 This release

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page