Cherry Files Toolkit
A terminal UI (built with Textual) for moving work between git branches at the file level — pick the final state of the files you want and apply them to another branch as one clean commit, no commit-by-commit cherry-picking.
It ships two tools as tabs in one TUI:
- Cherry Files Diff — see every file added, modified, or deleted on a branch since it diverged from its base, grouped as a scannable tree.
- Cherry Files Picker — select files from your current branch and commit their current content onto a target branch.
The idea
This project is a new iteration of my previous Cherry Files Picker. The goal is the same — move the final state of selected files between branches as one clean commit — but this version upgrades the UI to a full TUI and adds a second module, Cherry Files Diff, for understanding branch divergence at a glance.
Install
Recommended for regular use — pipx installs the tool in its own isolated environment and makes the command available everywhere:
pipx install cherry-files-toolkit
If you are installing from a local checkout while developing, use an editable install instead:
python -m venv .venv
source .venv/bin/activate
pip install -e .
Requires Python 3.10+ and git on your PATH.
Usage
Run it from inside any git repository:
cherry-files-toolkit
The app opens with Cherry Files Diff selected. Use the footer shortcuts to move between tabs:
Ctrl+1— Cherry Files DiffCtrl+2— Cherry Files PickerCtrl+Q— quit
Cherry Files Diff tab
Explains branch divergence at the file level, so you can recover context on a branch you don't know well:
- Pick the divergent branch (the one with the work) and its base branch.
- Start Diff Checker finds the point where they diverged and lists every file created, modified, or deleted since — with per-category counts and a directory tree for fast scanning.
Cherry Files Picker tab
Transfers the final approved state of selected files from your working branch to another branch:
- Source branch is pre-filled with your current branch.
- Pick a target branch — where the work should land.
- Search and select the files to move. Selections persist while you filter.
- Write a commit title and description, review the selected files, and hit Cherry Pick Files. The toolkit commits those files' current content onto the target branch in a single commit.
Use it when you know which files are done and want them on another branch without replaying the messy commit history that produced them.
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 cherry_files_toolkit-0.1.1.tar.gz.
File metadata
- Download URL: cherry_files_toolkit-0.1.1.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc9b6938360d1b0522512b899cdfbb48ff74fb7518ec14d13ed759524d0cddb3
|
|
| MD5 |
241d82828760e0ace095ed77fbe034d0
|
|
| BLAKE2b-256 |
92556bf035ca42bab4f8fc56b5a10a27f2f4ebaef229d9dbc48d55334344fd89
|
File details
Details for the file cherry_files_toolkit-0.1.1-py3-none-any.whl.
File metadata
- Download URL: cherry_files_toolkit-0.1.1-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af4c583be3e6260bbe88d50c5a0992b5f9120450bd354413cf738a73ac3c37bc
|
|
| MD5 |
e9a014cbba5242001b30a9e1af0626be
|
|
| BLAKE2b-256 |
d94f398279cf98c1b4dbb370e24d0b6adc79adda701bb89fadb8dd87d599cfca
|