Turn Your Git Repo into a Clipboard-Ready Context Machine
Vibe coded using xAI's based Grok model
ctxify
is a sleek CLI tool that grabs all tracked files in your Git repository, builds a neat tree structure, and copies everythingโcode and allโto your clipboard with a single command. Perfect for sharing project context, debugging, or feeding your code straight into AI assistants. It even gives you an approximate token count for fun! ๐
Ever wanted to:
- Share your project structure and code in one go?
- Hand-pick files interactively with tab autocompletion?
- Skip the hassle of manually copying files?
- Get just the structure without the contents?
- Know how many tokens your project weighs in at?
ctxify
does it all. It's lightweight, fast, and skips the fluff (like lock files or .gitignore
). Built with Python 3.13 and Git magic. โจ
- ๐ Git-Powered Tree View: Prints a gorgeous file tree of tracked files.
- ๐ Clipboard Ready: Copies the tree and file contents instantly.
- ๐ซ Smart Filtering: Ignores non-code files (e.g.,
uv.lock
,.txt
) by default. - ๐ Markdown Support: Optionally include
.md
files with a flag. - ๐ฎ Interactive Modes:
- Selection Mode: Pick files with fuzzy tab autocompletion.
- Exclusion Mode: Exclude files or directories interactively.
- ๐ณ Structure-Only Mode: Output just the tree, no contents.
- ๐ Token Count: Estimates tokens (1 token โ 4 chars) for the full output.
Install ctxify
from PyPI:
-
With
pipx
(recommended for isolated CLI tools):pipx install ctxify
-
With
uv
(fast and modern Python tool management):uv tool install ctxify
On Linux, install xclip
:
sudo apt install xclip
On macOS, clipboard support is built-in (uses pbcopy
), so no additional installation is needed.
Run it from your Git repo's root:
ctxify
--md
/-md
: Include.md
files (e.g.,README.md
).ctxify --md
-i
/--interactive
: Select files interactively with tab autocompletion.ctxify -i
-e
/--exclude
: Exclude files or directories interactively with tab autocompletion.ctxify -e
-s
/--structure
: Output only the project structure, no contents.ctxify -s
Files Included in Context (from .):
โโโ .python-version
โโโ src
โโโ ctxify
โโโ __init__.py
โโโ cli.py
โโโ main.py
Approximate token count: 512 (based on 1 token โ 4 chars)
The clipboard gets the tree plus file contents (unless using -s
)โready to paste anywhere!
Love ctxify
? Want to make it better?
- Fork it.
- Submit a PR.
- Open an issue with ideas or bugs.