Skip to main content

Browse and search your Cursor AI chat histories locally, including tool calls

Project description

cursor-viewer

A local browser UI for reading through your Cursor AI chat histories — including tool calls, search, and support for exploring backups.

Built with Streamlit. No server, no account, no data leaving your machine.


What it does

  • Lists all your Cursor chats grouped by project
  • Renders tool calls (file reads, terminal commands, etc.) inline as collapsible sections
  • Lets you search across projects and message content
  • Supports pointing at a backup of your .cursor data directory, not just the live one

Install

Requires Python 3.10+. First, get pipx if you don't have it:

macOS

brew install pipx
pipx ensurepath

Linux

sudo apt install pipx      # Debian/Ubuntu
pipx ensurepath

Windows

scoop install pipx         # or: pip install --user pipx
pipx ensurepath

Then install cursor-viewer:

pipx install cursor-viewer

Then just run:

cursor-viewer

It opens in your browser at http://localhost:8501.


Configuration

The app figures out where your Cursor data lives automatically. If you want to override that:

One-off (flag):

cursor-viewer --cursor-path "/Volumes/Backup/Library/Application Support/Cursor"

Session (env var):

CURSOR_DATA_PATH="/path/to/cursor" cursor-viewer

Persistent default (UI): Open the Settings panel in the sidebar, enter your path, and hit "Save as default". That writes to ~/.cursor-viewer/config.json and sticks across restarts.

Priority order: flag > env var > saved config > auto-detected default.


Other options

cursor-viewer --help
--cursor-path PATH   path to Cursor's data directory
--port PORT          port to run on (default: 8501)

Running from source

git clone https://github.com/sahilsasane/cursor-viewer
cd cursor-viewer
uv sync
uv run streamlit run streamlit_app.py

How Cursor stores chats

Cursor keeps chat history in SQLite databases under its data directory:

  • User/globalStorage/state.vscdb — composer/agent chats
  • User/workspaceStorage/<id>/state.vscdb — per-workspace chats and metadata

cursor-viewer reads these directly, read-only, without touching any Cursor internals.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cursor_viewer-0.1.0.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cursor_viewer-0.1.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file cursor_viewer-0.1.0.tar.gz.

File metadata

  • Download URL: cursor_viewer-0.1.0.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.8

File hashes

Hashes for cursor_viewer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0f8a096165764a58273562046c2c57a979738bad56430f1c4aa074d742ffa39d
MD5 cf5b5cf88ef0e32bb7cb56030f18c361
BLAKE2b-256 353e2e4af055a0ef541793352f4935fdd5354f043cc2e344231760c79f25b43b

See more details on using hashes here.

File details

Details for the file cursor_viewer-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for cursor_viewer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 71f5af2cd8785cf63b953269e6ac91ac317b579dfbb9e8cc1405a28461d2b255
MD5 7c2ff623350762c6cfdd44dbb2db9a1a
BLAKE2b-256 75608109cd49e9eaba6705d6c1ed8ad4ba01f1b8f5deecc69e8d3bfdf3ed4f04

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page