A local proxy for Claude Code that archives every request and response to a SQLite database, with a web UI for browsing sessions, searching transcripts, and inspecting raw API traffic.
Project description
cctape
A local proxy for Claude Code that archives every request and response to a SQLite database, with a web UI for browsing sessions, searching transcripts, inspecting raw API traffic, and tracking token usage and cost.
Quick start
Run cctape with uv:
uvx cctape
On first run, your browser opens to a setup page at http://127.0.0.1:5555/setup with the one env var you need to copy. After that, run claude as usual — sessions appear in the UI as they happen.
Pass --no-browser to skip the auto-open.
Configuration
Shell
Add to ~/.zshrc (or ~/.bashrc):
export ANTHROPIC_BASE_URL=http://127.0.0.1:5555/proxy
Claude Code VS Code extension
Add to user settings:
"claudeCode.environmentVariables": [
{"name": "ANTHROPIC_BASE_URL", "value": "http://127.0.0.1:5555/proxy"}
]
Flags and environment variables
--host/--port— bind address (defaults:127.0.0.1,5555)--no-browser— don't auto-open the browser on first runCCTAPE_DB— database path (default:~/.cctape/cctape.db)
Running it as a service
cctape is a regular HTTP server; run it under whatever supervisor you like (launchd, systemd, tmux, etc.). Once it's up on 127.0.0.1:5555 and your ANTHROPIC_BASE_URL points at /proxy, it just stays out of the way.
Development
Clone the repo and run the frontend + backend separately during development.
Build the frontend once (output is served by the backend from backend/src/cctape/static/):
cd frontend && npm install && npm run build
Start the backend with reload:
cd backend && uv run uvicorn --reload --factory --port=5555 cctape:create_app
Open http://127.0.0.1:5555.
The frontend can also run on its own dev server with HMR:
cd frontend && npm run dev
Pre-commit hooks run ruff, pyright, pytest, eslint, and tsc.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cctape-0.2.0.tar.gz.
File metadata
- Download URL: cctape-0.2.0.tar.gz
- Upload date:
- Size: 1.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63dbc361a2bd6a2fa73a6937abf306abab4b05808691fb23f631550aa277d0b6
|
|
| MD5 |
63587423a14c9899fa4f17306ae62164
|
|
| BLAKE2b-256 |
eacd861db641490d55cd69a4cbaa25b17d824b12c7cde2d7097f407f2981bfaf
|
Provenance
The following attestation bundles were made for cctape-0.2.0.tar.gz:
Publisher:
main.yaml on tillahoffmann/cctape
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cctape-0.2.0.tar.gz -
Subject digest:
63dbc361a2bd6a2fa73a6937abf306abab4b05808691fb23f631550aa277d0b6 - Sigstore transparency entry: 1360029132
- Sigstore integration time:
-
Permalink:
tillahoffmann/cctape@5d1f54265e5c033f2a83c722783fd406d886a98a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/tillahoffmann
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
main.yaml@5d1f54265e5c033f2a83c722783fd406d886a98a -
Trigger Event:
push
-
Statement type:
File details
Details for the file cctape-0.2.0-py3-none-any.whl.
File metadata
- Download URL: cctape-0.2.0-py3-none-any.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c48496f97245de25986f544a0113d2bb89d8f1ce1888ac47ca7dbd7c3e12e89d
|
|
| MD5 |
19538eca6673f8446be421e213178366
|
|
| BLAKE2b-256 |
d0fd6d3104c1091463c869d2e70eb78ad59d3744b9df293ea6eecee398724728
|
Provenance
The following attestation bundles were made for cctape-0.2.0-py3-none-any.whl:
Publisher:
main.yaml on tillahoffmann/cctape
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cctape-0.2.0-py3-none-any.whl -
Subject digest:
c48496f97245de25986f544a0113d2bb89d8f1ce1888ac47ca7dbd7c3e12e89d - Sigstore transparency entry: 1360029141
- Sigstore integration time:
-
Permalink:
tillahoffmann/cctape@5d1f54265e5c033f2a83c722783fd406d886a98a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/tillahoffmann
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
main.yaml@5d1f54265e5c033f2a83c722783fd406d886a98a -
Trigger Event:
push
-
Statement type: