A tool to print git repository files with tree structure
Project description
ctxify 🎉
Turn Your Git Repo into a Clipboard-Ready Context Machine
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! 🚀
Why ctxify?
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. ✨
Features
- 📂 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
.mdfiles with a flag. - 🎮 Interactive Mode: Pick files with fuzzy tab autocompletion.
- 🌳 Structure-Only Mode: Output just the tree, no contents.
- 📏 Token Count: Estimates tokens (1 token ≈ 4 chars) for the full output.
Installation
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
Optional (for clipboard support)
On Linux, install xclip:
sudo apt install xclip
Usage
Run it from your Git repo’s root:
ctxify
Options
--md/-md: Include.mdfiles (e.g.,README.md).ctxify --md-i/--interactive: Select files interactively with tab autocompletion.ctxify -i-s/--structure: Output only the project structure, no contents.ctxify -s
Example Output
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!
Contributing
Love ctxify? Want to make it better?
- Fork it.
- Submit a PR.
- Open an issue with ideas or bugs.
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 ctxify-0.1.4.tar.gz.
File metadata
- Download URL: ctxify-0.1.4.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55752678b0b9c869b62d78d8498175ddbfa9238ace02410b5fe594b483c928d6
|
|
| MD5 |
cfa40047a12bf43a994eeaf95c5c302c
|
|
| BLAKE2b-256 |
152ea351dae4e2512f284b06b8c35b9d1720f89f1dd44db24f551d3ea37e1005
|
File details
Details for the file ctxify-0.1.4-py3-none-any.whl.
File metadata
- Download URL: ctxify-0.1.4-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8faeed8d438f303eb8ab139cd5a2ce62fa980c32d4d51f5be01f4723c5463e32
|
|
| MD5 |
1a3c4e08d470a7f0ef686f36649c4558
|
|
| BLAKE2b-256 |
113fe23cb8b04b647bf396657b23155dea4d53bf496c102d5e21c06884651fa5
|