Metadata-Version: 2.4
Name: langgraph-checkpoint-cli
Version: 0.1.0
Summary: A terminal CLI for browsing LangGraph checkpoints — list threads, walk state history, inspect and diff checkpoints, no code required.
Keywords: langgraph,langchain,checkpoint,cli,debugger,agent,state,sqlite,postgres
Author: Mrinal Anand
Author-email: Mrinal Anand <Mrinal.Anand2021@iem.edu.in>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Debuggers
Requires-Dist: langgraph-checkpoint>=2.0,<3.0
Requires-Dist: typer>=0.15
Requires-Dist: rich>=13.9
Requires-Dist: langgraph-checkpoint-sqlite>=2.0,<3.0 ; extra == 'all'
Requires-Dist: langgraph-checkpoint-postgres>=2.0,<3.0 ; extra == 'all'
Requires-Dist: psycopg[binary]>=3.2 ; extra == 'all'
Requires-Dist: langgraph-checkpoint-postgres>=2.0,<3.0 ; extra == 'postgres'
Requires-Dist: psycopg[binary]>=3.2 ; extra == 'postgres'
Requires-Dist: langgraph-checkpoint-sqlite>=2.0,<3.0 ; extra == 'sqlite'
Requires-Python: >=3.10
Project-URL: Homepage, https://github.com/MrinalCom/langgraph-checkpoint-cli
Project-URL: Repository, https://github.com/MrinalCom/langgraph-checkpoint-cli
Project-URL: Issues, https://github.com/MrinalCom/langgraph-checkpoint-cli/issues
Provides-Extra: all
Provides-Extra: postgres
Provides-Extra: sqlite
Description-Content-Type: text/markdown

# langgraph-checkpoint-cli

A terminal CLI for browsing [LangGraph](https://github.com/langchain-ai/langgraph) checkpoints — list threads, walk state history, inspect and diff checkpoints. No code required.

![langgraph-checkpoint-cli demo: listing threads, showing a checkpoint's state, and diffing the last step](https://raw.githubusercontent.com/MrinalCom/langgraph-checkpoint-cli/main/demo.gif)

## Why

LangGraph's checkpointer (`SqliteSaver`, `PostgresSaver`, ...) is how your agent's state survives restarts, resumes after a `NodeInterrupt`, and supports time travel — but it's a programmatic API. There's no built-in way to answer "what threads exist in this database" or "what did the state look like three steps ago" without writing a throwaway script every time. `langgraph-checkpoint-cli` is that script, packaged once.

## Install

```bash
pip install "langgraph-checkpoint-cli[sqlite]"   # for SqliteSaver
pip install "langgraph-checkpoint-cli[postgres]" # for PostgresSaver
pip install "langgraph-checkpoint-cli[all]"      # both
```

## Usage

Point `--db` at the same connection string your app's checkpointer uses (or set `LANGGRAPH_CHECKPOINT_DB` once):

```bash
export LANGGRAPH_CHECKPOINT_DB=checkpoints.db          # sqlite path
# or: export LANGGRAPH_CHECKPOINT_DB=postgresql://user:pass@host/db
```

### List every thread

```bash
langgraph-checkpoint threads
```

```
                       threads (2)
┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ thread_id ┃ checkpoints ┃ last step ┃ last updated                     ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ thread-2  │           3 │         1 │ 2026-08-16T19:44:22.162503+00:00 │
│ thread-1  │           6 │         4 │ 2026-08-16T19:44:22.160969+00:00 │
└───────────┴─────────────┴───────────┴──────────────────────────────────┘
```

### Walk a thread's checkpoint history

```bash
langgraph-checkpoint history thread-1
```

### Show a checkpoint's state

```bash
langgraph-checkpoint show thread-1                      # latest checkpoint
langgraph-checkpoint show thread-1 --checkpoint <id>     # a specific one
```

### Diff two checkpoints

```bash
langgraph-checkpoint diff thread-1                       # last step vs its parent
langgraph-checkpoint diff thread-1 --from <id> --to <id>  # any two checkpoints
```

```
1f199aae-0e23-6660-8003-3e7fefc1c2a2 → 1f199aae-0e23-6f0c-8004-ecda2f39382b
  - branch:to:increment
  ~ count 5 → 6
```

### Try it without your own database

```bash
git clone https://github.com/MrinalCom/langgraph-checkpoint-cli
cd langgraph-checkpoint-cli
uv sync --extra sqlite --group dev
uv run python examples/seed_demo.py
uv run langgraph-checkpoint threads --db examples/demo.db
```

## Python API

Everything the CLI does is also a plain function, in case you want to script it:

```python
from langgraph_checkpoint_cli import open_saver, list_threads, diff_state

with open_saver("checkpoints.db") as saver:
    print(list_threads(saver))
```

## License

MIT © [Mrinal Anand](https://github.com/MrinalCom)
