ccgarden
Grow a garden from your local Claude Code session history.
ccgarden reads the JSONL transcripts under ~/.claude/projects, rolls
them up into a small sqlite history db, and renders the result as an SVG
tree: one growing organism that represents everything you've built with
Claude Code on this machine.
(This is a dummied-up example with a few months of synthetic data across five repos, several models, and a handful of tools — enough to show every shape the renderer draws. Your own garden will look sparser at first and fill in as you work.)
What each shape means
| Shape | Grows with |
|---|---|
| Trunk | Total sessions, across all repos |
| Rings | One per day worked; bolder rings mean busier days |
| Branches | One per repo — longer branches mean more lines changed, thicker branches mean more tokens |
| Leaves | One per session; more leaves means a busier repo, bigger leaves mean deeper (more turns/session) sessions |
| Flowers | One per whole ratio of cache reads to cache writes |
| Clouds | One per model + reasoning-effort combination used; bigger and darker clouds mean more tokens and heavier thinking |
| Sun | Rises and brightens with your all-in token total (output + input + cache read + cache write) |
| Bushes | One per tool (Bash, Edit, Read, ...); bigger bushes mean more calls |
| Sunflowers | One per repo; taller stalks mean more prompts |
| Birds | One per cartoon adapter that saved tokens; bigger birds mean more tokens saved. Only appears if cartoon is installed |
Hover (or tap, on mobile) any shape for the exact numbers behind it.
Install
uv tool install ccgarden
(or pipx install ccgarden). This installs two commands: ccgarden and
ccstats.
To hack on it instead, clone the repo and run uv sync, which puts the
same two commands in the project's virtualenv.
Usage
uv run ccgarden
This will:
- Scan
~/.claude/projectsand record today's snapshot into~/.claude/ccstats.db(same as runningccstats— see below). - Replay the full day-by-day history from that db into an animated SVG timelapse of the garden growing.
- Write it to
~/.claude/ccgarden.svgand open it in your browser (add--no-opento skip that last step).
Run it again any day and the garden picks up where it left off — new rings, longer branches, bigger clouds, more leaves.
ccstats
The underlying stats engine can also be run on its own, for a terminal-native usage report instead of (or before) rendering a garden:
uv run ccstats # summarize all local session logs
uv run ccstats --since 2026-06-01 # limit the window
uv run ccstats --json # machine-readable output
uv run ccstats --record --since 2026-01-01 --until 2026-07-01 # backfill history
Run uv run ccstats --help for the full list of flags.
Development
uv run pytest
uv run ruff check .
License
MIT — see LICENSE.
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 ccgarden-0.1.0.tar.gz.
File metadata
- Download URL: ccgarden-0.1.0.tar.gz
- Upload date:
- Size: 497.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af58229f338f5a306c9214ae6089e3f909a362ffea04d96a7e9a0da496a7a41e
|
|
| MD5 |
4d513bf1945a4d9352c1f8215e9a6e49
|
|
| BLAKE2b-256 |
af34a09cd163775b6e70b414d7ecc21c07fe7f27551462adfe8144ef0f92b52f
|
Provenance
The following attestation bundles were made for ccgarden-0.1.0.tar.gz:
Publisher:
publish.yml on dannybrown37/ccgarden
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ccgarden-0.1.0.tar.gz -
Subject digest:
af58229f338f5a306c9214ae6089e3f909a362ffea04d96a7e9a0da496a7a41e - Sigstore transparency entry: 2324866151
- Sigstore integration time:
-
Permalink:
dannybrown37/ccgarden@9e599e000617378686f3ac7ed86fb0e36f3f1b09 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/dannybrown37
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9e599e000617378686f3ac7ed86fb0e36f3f1b09 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ccgarden-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ccgarden-0.1.0-py3-none-any.whl
- Upload date:
- Size: 56.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20dfa68a27121f4e7559856b1556acec67b12ea471a00f94e5f69248d7c53336
|
|
| MD5 |
e23395c06502f341cc2465a46258df7b
|
|
| BLAKE2b-256 |
2664d79e177766576d9089b9151ed91aad990c636fcf4d9825c378feec2c9450
|
Provenance
The following attestation bundles were made for ccgarden-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on dannybrown37/ccgarden
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ccgarden-0.1.0-py3-none-any.whl -
Subject digest:
20dfa68a27121f4e7559856b1556acec67b12ea471a00f94e5f69248d7c53336 - Sigstore transparency entry: 2324866198
- Sigstore integration time:
-
Permalink:
dannybrown37/ccgarden@9e599e000617378686f3ac7ed86fb0e36f3f1b09 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/dannybrown37
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9e599e000617378686f3ac7ed86fb0e36f3f1b09 -
Trigger Event:
push
-
Statement type: