Metadata-Version: 2.5
Name: cc-session-browser
Version: 0.1.0
Summary: Three-pane browser for your local Claude Code sessions
Project-URL: Homepage, https://github.com/bartTC/cc-session-browser
Project-URL: Issues, https://github.com/bartTC/cc-session-browser/issues
Author-email: Martin Mahner <martin@elephant.house>
License-Expression: MIT
License-File: LICENSE
Keywords: browser,claude,claude-code,sessions,transcript
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Documentation
Requires-Python: >=3.11
Requires-Dist: jinja2>=3.1
Requires-Dist: markdown-it-py>=3.0
Requires-Dist: pygments>=2.18
Requires-Dist: starlette>=0.40
Requires-Dist: uvicorn>=0.30
Description-Content-Type: text/markdown

# cc-session-browser

A browser for your Claude Code sessions.

```sh
uvx cc-session-browser
```

No install, no configuration. It indexes `~/.claude/projects` and opens a
browser.

![cc-session-browser](https://raw.githubusercontent.com/bartTC/cc-session-browser/main/docs/screenshot.png)

## Features

- **Browse** every project and session Claude Code has recorded, with the real
  project path recovered from the transcripts rather than the dashed directory
  name.
- **Read** transcripts with rendered markdown, syntax-highlighted code,
  expandable tool calls and their output, inline screenshots, and subagent
  transcripts shown where they were spawned.
- **Search** across all sessions — titles, prompts, replies and tool
  invocations — or within a single project.
- **Resume, fork, or start** a session in your terminal. Forking uses
  `--fork-session`, so the original transcript is never touched.

Nothing is sent anywhere: the tool reads local files and serves them on
`127.0.0.1`.

## Configuration

Optional. Everything has a working default.

```sh
cc-session-browser --help-config    # every option, with your paths filled in
cc-session-browser --write-config   # write a commented starter file
```

The config file is read from the first of these that exists:

1. `--config PATH`
2. `$CC_SESSION_BROWSER_CONFIG`
3. `./cc-session-browser.toml`
4. `~/.config/cc-session-browser/config.toml` (`%APPDATA%` on Windows)

`$CLAUDE_CONFIG_DIR` is honoured, so a non-standard Claude Code location needs
no configuration at all.

```toml
# cc-session-browser configuration


# Where Claude Code keeps its session transcripts. $CLAUDE_CONFIG_DIR is
# honoured automatically, so you rarely need to set this.
#
# projects_dir = "~/.claude/projects"


# Projects to leave out of the sidebar. Each entry is a glob, matched against
# the project name, its full path, and its Claude Code slug -- so you never
# have to know what a slug looks like.
#
# hide = [
#     "scratch",
#     "*/Workspace/throwaway-*",
# ]


[server]

# Bind address. Leave this on loopback: the endpoint that opens a terminal
# starts processes on your machine.
#
# host = "127.0.0.1"

# Port to serve on.
#
# port = 8765

# Open a browser window on startup.
#
# open_browser = true


[launch]

# Open a session in a new "window" or a new "tab".
# Tabs are supported for: gnome-terminal, iterm, kitty, konsole, wezterm, wt
# (kitty needs allow_remote_control). Every other terminal falls back to a
# window.
#
# mode = "window"

# Which terminal to use. Auto-detected from $TERM_PROGRAM when unset.
# Known terminals: ghostty, gnome-terminal, iterm, kitty, konsole, terminal, wezterm, wt
#
# terminal = "iterm"

# Full override, for a terminal that is not in that list. {script} is a
# generated shell script that cds into the project and runs claude; {cwd} is
# the project directory.
#
# terminal_argv = ["alacritty", "--working-directory", "{cwd}", "-e", "{script}"]

# Path to the claude CLI. Found on PATH when unset.
#
# claude_bin = "/usr/local/bin/claude"
```

## Requirements

Python 3.11+. Terminal integration supports iTerm, Terminal.app, Ghostty,
kitty, WezTerm, GNOME Terminal, Konsole and Windows Terminal; anything else can
be driven with a `terminal_argv` template.
