Skip to main content

A tool to print git repository files with tree structure

Project description

ctxify 🎉

Turn Your Git Repo into a Clipboard-Ready Context Machine

Vibe coded using xAI's based Grok model

GitHub release (latest by date) Code Checks License

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 .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.

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

On macOS, clipboard support is built-in (uses pbcopy), so no additional installation is needed.


Usage

Run it from your Git repo's root:

ctxify

Options

  • --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
    

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ctxify-0.2.0.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

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

ctxify-0.2.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file ctxify-0.2.0.tar.gz.

File metadata

  • Download URL: ctxify-0.2.0.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for ctxify-0.2.0.tar.gz
Algorithm Hash digest
SHA256 256f843f024c835031ec1b5c86f89590ce0a52a0fa20c87af47a601ddf5de05b
MD5 19c0872d332cb6d57d34536aeff06152
BLAKE2b-256 d9dc5a80ab8cd2efc5a47802bed5f60983611937b8bd9024641109249d694276

See more details on using hashes here.

File details

Details for the file ctxify-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: ctxify-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for ctxify-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f3e2c815f534703b174bdecad9ff538e38cd9356e975e8f5ec4741e8cd7bf794
MD5 067035ad2dba0a85990139bc00f798e1
BLAKE2b-256 2119618351c02ead1e6cc35aef1ca01065210590516d3ed117125be8bd700e3e

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