Skip to content
dk
← All projects

ctx

Pack any project into a single file for your AI/LLM context. Zero dependencies.

Python10 forks0 open issues & PRsMITupdated 1mo ago
clicli-toolscontextdeveloper-toolsdevtoolsgithub-actionsllmproductivitypython
Stars
1
Forks
0
Created
Aug 30, 2026
Last push
Sep 1, 2026
Default branch
main
Contributors
0

README

dsk-dev-ai/ctx

zero deps python pypi version CI MIT Docker GHCR

ctx 🧳

Pack any project into a single file and feed it straight to your AI. One command, zero dependencies, local-only — your code never leaves your machine.

Know the drill: you're about to ask ChatGPT / Claude / a coding agent to "look at my repo", and you end up copy-pasting a hand-picked pile of files. ctx bundles an entire codebase into one clean markdown file — a file index plus every source file in language-tagged blocks — sized by tokens, ready to paste, save, or copy.

ctx .                    # -> ./<folder>.ctx.md  (bundled, token-counted)
ctx src -o project.md    # bundle just a subfolder
ctx --lang python go      # only certain languages
ctx --clipboard           # straight to your clipboard

✨ Features

📦 One file, whole project file index + every source file in clean ```lang blocks
📊 Token & line counts know exactly how much context you're sending
🗂️ Smart scanning gitignore-aware, skips node_modules, binaries, .git, etc.
🎛️ Filters --exclude, --lang, --include, --max-files
📋 Clipboard --clipboard (macOS / Linux / Windows)
🌍 50+ languages tagged automatically from extensions
💸 100% free zero dependencies, no AI, no server, no API keys

🔧 Install

pip install repobundler

No dependencies. No compiled extensions. Python 3.8+.

🐳 Docker

docker pull ghcr.io/dsk-dev-ai/ctx:latest
docker run --rm -v "$PWD:/proj" -w /proj ghcr.io/dsk-dev-ai/ctx:latest stats

🚀 Usage

ctx [folder]                    # bundle into ./<folder>.ctx.md
ctx -o bundle.md                # pick the output file
ctx src -o src.md               # bundle a subfolder
ctx --stdout > all.txt          # print to a file / pipe anywhere
ctx --clipboard                 # copy the bundle to your clipboard
ctx --no-header                 # skip the title + file index
ctx --files                     # just list what would be bundled
ctx --stats                     # files / size / language breakdown
ctx --lang python rust --lang go   # restrict to certain languages
ctx -x tests -x docs            # extra paths to skip (gitignore-style)
ctx --include "*.py"            # only matching file globs
ctx --max-files 50              # cap how many files are included

See ctx --help for the full list.

Example bundle output
# myapp

_14 files bundled by ctx_

## File index

- `src/main.py` (Python) — 2.1KB
- `src/util.py` (Python) — 1.4KB
- `README.md` (Markdown) — 0.8KB

---

## src/main.py

    ```python
    import os
    print("hello")
    ```

🧠 How it works

  1. Scan the folder, honoring .gitignore and skipping repos, binaries, node_modules, .venv, etc.
  2. Classify every file by extension into 50+ languages.
  3. Index them, then render into one markdown file with clean code blocks.
  4. Count tokens and lines so you know your context size before you send it.

🧪 Tests

python -m pytest

Tested on Python 3.8–3.12 via GitHub Actions.

🤝 Contributing

Open an issue or a PR. Want a new language or a smarter layout? It's one small module in ctx/.

📄 License

MIT.

⭐ Support

If ctx saved you a copy-paste marathon, give it a star ⭐.

Prefer to support the work directly? Consider becoming a sponsor on GitHub — every bit helps keep ctx free and dependency-free.

Related projects

Turn any codebase into beautiful architecture diagrams — one command, no AI, no server, runs on any laptop. Zero dependencies, pure Python, agent-friendly (Cursor, Claude Code, Codex, OpenCode).

ai-agentsarchitecture-diagramcli
Python1mo ago

177 merged pull requests across 19 repositories · data generated Oct 7, 2026