aXism
Agent Interactive Session Manager. Browse, open, and clean up the chat sessions your coding agents keep on disk, across every project on your machine.
aXism, a tool by aXistem, is a terminal app plus a command-line tool. It finds every session from Claude Code, Cursor, and Hermes, groups them by project, and lets you open, stop, rename, move, or delete them without digging through hidden folders. It runs on Linux and macOS.
Why use it
- See everything in one place. Every project and session, with title, size, last update, and whether it is running right now.
- Clean up safely. Deleting a session removes all of its files (transcripts, caches, job records) and nothing else. Credentials, settings, skills, plugins, and project memory are never touched. Every delete asks first.
- Keep sessions with their project. Renamed or moved a project folder? Move its sessions to the new path so your agent finds them again.
- Jump back in. Open any session in its own agent with one key.
Install
Needs Python 3.12 or newer.
uv tool install axism
# or
pipx install axism
Make sure ~/.local/bin is on your PATH, then check it works with axism --version.
To upgrade, run uv tool upgrade axism or pipx upgrade axism. If the version does not change, the tool was installed from a pinned file instead of PyPI; reinstall with uv tool install --force axism.
First steps
axism # open the app
axism list # print every session, grouped by project
axism providers # show which agents are enabled and where aXism looks for them
The app has three panes: projects, sessions, and details. Use Tab or the arrow keys to switch panes, ↑/↓ to pick an item, and press ? to see every key.
Using the app
| Key | Action |
|---|---|
Tab / ← → |
Switch pane |
Space / a / c |
Mark one, mark all, clear all marks |
o |
Open the session in its agent |
s |
Stop a running session |
n |
Rename a session |
m |
Move to another project path |
d |
Delete |
/ / . |
Filter / sort sessions |
, |
Settings |
? or h |
All keys (refresh, themes, version info, and more) |
q |
Quit |
Terminals narrower than 70 columns hide the details pane so projects and sessions both fit. Keys act on the pane you are in. For example, d in the projects pane deletes whole projects, while d in the sessions pane deletes sessions. If items are marked, the action applies to all of them. If an agent cannot do something, aXism tells you instead of doing half the job.
Moving. Press m, then pick an existing project or type a folder path. Within the same agent, aXism moves the session files and updates their recorded paths. It creates the destination folder if needed, but it never moves your source code. Stop running sessions before moving them. Moving a session into another agent's project copies the conversation text and keeps the original.
Settings. Press , to choose which agents to include (Space), set the default agent for CLI commands (Enter saves and makes the highlighted one the default), and point an agent at a custom config folder. Settings are saved in ~/.config/axism/settings.json (or under $AXISM_CONFIG_DIR).
Command line
Everything the app does is also available as a command, which is handy for scripts. Run axism <command> --help for all options.
| Command | What it does |
|---|---|
list [--project PATH] [--json] |
List sessions |
show ID |
Show a session's details and files |
resume ID |
Open a session in its agent |
stop ID |
Stop a running session |
rename ID "Title" |
Rename a session |
move ID... --to PATH |
Move sessions (add --project to move whole projects) |
export ID --to-provider AGENT --to PATH |
Copy a session into another agent |
delete ID... |
Delete sessions |
delete-project PATH |
Delete a project and its sessions (give a slug as delete-project -- -home-alice-src-demo) |
purge-project PATH |
Run Claude Code's own project purge |
A few things worth knowing:
- Session IDs can be shortened to any unique prefix.
delete,delete-project,purge-project, andstoponly show a preview until you add--yes.deleteanddelete-projectexit 1 after that bare preview, 0 after an explicit--dry-runor a--yesrun that completed, 1 as well when a--yesrun reported an aborted, refused or failed step, and 2 whenever the plan is blocked (not found, or a live session without--force).moveandexporttake--dry-runto preview;moverefuses sessions that are running unless you pass--force.listcovers every enabled agent. Other commands use the default agent (Claude Code unless you change it), so add--provider cursoror--provider hermesto work on those sessions.
axism list --project /home/alice/src/demo
axism delete 3f2a9c1e --dry-run
axism delete 3f2a9c1e --yes
axism move --project /home/alice/src/demo --to /home/alice/src/demo-v2
axism --provider hermes show <session-id>
Supported agents
| Agent | Id | Default location | Override with |
|---|---|---|---|
| Claude Code | claude_code |
~/.claude |
$CLAUDE_CONFIG_DIR |
| Cursor | cursor |
~/.cursor |
$CURSOR_DATA_DIR |
| Hermes | hermes |
~/.hermes |
$HERMES_HOME |
You can also set a folder per agent in Settings, or pass --config-dir on the command line.
All three agents support open, stop, rename, and delete. Differences:
- Stop on Claude Code applies to background jobs (via
claude stop). On Cursor and Hermes it ends the agent process. - Move works for Claude Code and Cursor. Hermes sessions can be copied to another agent but not moved.
- Project memory merge is Claude Code only: moving a project into another one also merges its
memory/folder. - Project purge (
purge-project) is Claude Code only. - Hermes changes go through the
hermescommand, and only regular chat sessions are listed. Profiles, kanban boards, project workspaces, messaging, and cron sessions are left alone. - Cursor desktop Composer history is not managed.
What is never deleted
Deleting a session never removes credentials (auth.json, .credentials.json, .env), agent config (settings.json, config.yaml, cli-config.json), skills, plugins, daemon keys, project memory/, or an agent's whole database (such as Hermes state.db).
Deleting a project removes every session in it along with the agent's folder for that project. For Claude Code that includes the project's memory/ unless you pass --keep-memory; in the app, the project delete dialog states what happens to memory/ and k toggles keeping it (off by default).
Development
From a clone of this repository:
uv sync --extra dev
uv run pytest
./scripts/install.sh # install your local checkout as the axism command
See AGENTS.md for contributor rules and the release process, and CHANGELOG.md for what changed in each version.
License
MIT © aXistem
Metadata
Release files for axism 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| axism-0.1.2.tar.gz | 2.3 MB | With provenance | Details for axism-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| axism-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for axism-0.1.2-py3-none-any.whl |
Total release size: 2.4 MB
Release files / axism-0.1.2.tar.gz
| Download URL | axism-0.1.2.tar.gz |
|---|---|
| Size | 2.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
40a15376f7cd46ea9b95cfb45c9229dc1df429fb20345623ae8202ba27d29ed4
|
|
BLAKE2b-256 checksum How to use checksums |
f50174d4a38da69af4ddfb7cb0205aac78e30f5653d66c1c662c6aec109e6808
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logRelease files / axism-0.1.2-py3-none-any.whl
| Download URL | axism-0.1.2-py3-none-any.whl |
|---|---|
| Size | 104.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ba8a16331e3cbcc0235184ee3c433add1160d43211efb3cff81e5087eccbc3c6
|
|
BLAKE2b-256 checksum How to use checksums |
c0121219d4492f0989fd6cf03aece00ee844778679e5ec6f4349d464024ebb08
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 27, 2026.
Transparency logSecurity for axism 0.1.2
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for axism-0.1.2.tar.gz
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 Oct 27, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.