TUI toolkit for cherry-picking files between git branches
Project description
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 side by side:
- Cherry Files Picker — select files from your current branch and commit their current content onto a target branch.
- Cherry Files Diff — see every file added, modified, or deleted on a branch since it diverged from its base, grouped as a scannable tree.
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
pip install cherry-files-toolkit
Requires Python 3.10+ and git on your PATH.
Usage
Run it from inside any git repository:
cherry-files-toolkit
Press Ctrl+Q to quit.
Cherry Files Picker (right panel)
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.
Cherry Files Diff (left panel)
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.
License
Project details
Release history Release notifications | RSS feed
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.0.tar.gz.
File metadata
- Download URL: cherry_files_toolkit-0.1.0.tar.gz
- Upload date:
- Size: 3.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f618b3974a25331f39a92ab6c4388bfc7d70c16737494f5aad882730076179ed
|
|
| MD5 |
26e7e543a771f2ec733121c173ba2c00
|
|
| BLAKE2b-256 |
7804f540286ace784287e304b3c083111a206fdd2e6ab6e05351bd553a3f637f
|
File details
Details for the file cherry_files_toolkit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cherry_files_toolkit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.1 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 |
a1d415c70e2eb9aa197e851181bd6d1426620b45a20aaf4b946f067631cc0439
|
|
| MD5 |
455271ac8f4a1a526256dd7151337a97
|
|
| BLAKE2b-256 |
e44df9a0241435a1ead37ac20a1c6d646690ecea9678829e154b292f6512dafa
|