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).
ctx
Pack any project into a single file for your AI/LLM context. Zero dependencies.
- Stars
- 1
- Forks
- 0
- Created
- Aug 30, 2026
- Last push
- Sep 1, 2026
- Default branch
- main
- Contributors
- 0
README
dsk-dev-ai/ctxctx 🧳
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
- Scan the folder, honoring
.gitignoreand skipping repos, binaries,node_modules,.venv, etc. - Classify every file by extension into 50+ languages.
- Index them, then render into one markdown file with clean code blocks.
- 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
Free, private image-to-text (OCR). Web UI, REST API & CLI in one repo — FastAPI + RapidOCR (ONNX). No API keys, nothing stored.
Open-source AI platform for genomics & bioinformatics — 18 free public genome research tools
177 merged pull requests across 19 repositories · data generated Oct 7, 2026