Skip to main content

Fold, outline, search & copy your Claude Code sessions, right in the terminal.

Project description

🍒 cherryfold

Fold, outline, search & copy your Claude Code sessions — right in the terminal.

Long agent runs turn into a navigable outline of collapsible blocks. Jump to any step, search the whole session, one-click-copy any command or code block, or live-follow a running session in a split pane. Pure terminal, zero server, pip-installable.

Structure and navigation for the walls of output an agent produces — fold it down, jump straight to any step, and find what you need without leaving your shell.

cherryfold: split + live-follow a session, then fold, search and switch themes

Why

  • Walls of output become foldable blocks — assistant text expanded, thinking and tool calls collapsed by default.
  • Lose the original steps when the chat branches? The left outline lists every step; click to jump straight back. Events hang under each step so you can see where a tangent began.
  • Copy the command or code you were looking for in one click (OSC 52 — works over SSH).

Install

Requires Python 3.10+. Check with python3 --version (macOS: brew install python if you need a newer one).

Recommended — pipx (installs the cherryfold command in its own isolated environment and puts it on your PATH):

# get pipx first if you don't have it:
brew install pipx                 # macOS (Homebrew)
# or any OS:  python3 -m pip install --user pipx && python3 -m pipx ensurepath

pipx install cherryfold

Or with pip (simpler, but installs into your user site-packages):

python3 -m pip install --user cherryfold
# if `cherryfold` isn't found afterwards, add pip's user bin dir to PATH
# (pip prints its location; commonly ~/.local/bin or ~/Library/Python/3.x/bin)

From source (for development):

git clone https://github.com/rikucherry1993/cherryfold
cd cherryfold
./install.sh                      # venv + editable install + ~/.local/bin symlink

Not on PyPI yet — until the first release, use the From source path above.

Usage

cherryfold                 # read back the current project's latest session
cherryfold follow [path]   # split the terminal and follow a live session beside you
cherryfold view [path] -f  # render in THIS pane (-f / --follow to tail)
cherryfold list            # list sessions for the current dir (--all: everywhere)
cherryfold config          # print the config file path
cherryfold clean           # clear caches
cherryfold uninstall       # remove the PATH symlink (--purge: also config)

path defaults to the newest session for the current directory — or the nearest parent directory that has sessions (walks up like git). Run from anywhere inside your project and it finds that project's sessions; cherryfold list --all lists every session.

Sessions are read from $CLAUDE_CONFIG_DIR/projects (or ~/.claude/projects by default) — the same location Claude Code itself uses, so it works for everyone without configuration.

cherryfold follow — split + follow

Picks the best split for your terminal automatically (macOS-first; tmux is the cross-platform path):

Terminal How it splits
cmux native split
inside tmux tmux split-window (mouse enabled)
iTerm2 AppleScript vertical split
other macOS (Terminal.app…) opens a new window beside you
non-macOS without tmux prints a command to run in another terminal

For a real same-window split on a plain terminal, run cherryfold inside tmux.

Inside Claude Code: from the prompt, type ! cherryfold follow (command mode) in the directory you're working in — a pane opens beside your chat and live-follows that project's session, so you can scroll back through the agent's output without leaving the conversation.

Keys

Key Action
↑/↓ · click outline jump to a step or event
/ then Enter search; n / N cycle matches
y copy the selection, else the focused block's command/code
mouse drag select text, then y
click 📋 copy that code/command block
c / e collapse / expand all
t show/hide thinking
f toggle follow-the-bottom (in --follow)
s settings (theme + density)
g / G top / bottom
q quit

Settings

Press s for theme (21 built-in) and display density (comfortable / compact), persisted to ~/.config/cherryfold/config.json. The glyphs (💬 🔧 🧠 📨 📋) are editable there under "icons".

Font size is the terminal's job — zoom with your terminal's Cmd/Ctrl +/-; "density" is the in-app spacing knob.

Layout

  • cherryfold/parser.py — JSONL → step tree (no third-party deps).
  • cherryfold/app.py — Textual TUI (collapsibles, outline, search, copy, follow, settings).
  • cherryfold/launcher.py — terminal detection + split/new-window strategies.
  • cherryfold/cli.py — subcommands.

License

MIT.

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

cherryfold-0.1.0.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

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

cherryfold-0.1.0-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cherryfold-0.1.0.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for cherryfold-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7edcc2f99f31652398e21a4bba0585cef190614a09436e1ced9945ea60efea5c
MD5 7263ead05121e2d214019ff0b06e6bd5
BLAKE2b-256 9bbd5a9705511f48ea6f96eb2983681f21c823c9e95417e89e267b43b738db20

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cherryfold-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for cherryfold-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 563e24602b56b38e14808e1754a88cc1fcff026cc44518fbbda93770f31d6619
MD5 e38e68c35796e852c364456003e697f5
BLAKE2b-256 2a263609832891ee2c3039169668a92e119e8c754a07e08bac5a432ef80c38f2

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