Extract your codebase context for AI assistants.
A zero-dependency CLI tool that packages your project structure, key files, and git history into a formatted prompt for Claude, ChatGPT, and other AI coding assistants.
pip install ctxcode
cd my-project
codecontextWhen asking AI assistants about your code, you spend minutes copy-pasting file trees, key files, and git history. codecontext does it in one command — giving the AI full project context for better answers.
pip install ctxcodeOr run directly:
curl -O https://raw.githubusercontent.com/hanu-14/codecontext/main/src/ctxcode/cli.py
python -m ctxcode# Full context (tree + files + git history)
codecontext
# Specific project
codecontext path/to/project
# Output formats
codecontext --format markdown # default - ready for AI chat
codecontext --format plain # plain text
codecontext --format json # machine-readable
# Copy to clipboard
codecontext --clipboard
# Save to file
codecontext -o context.md
# Exclude custom patterns
codecontext --exclude "*.log" "tmp/" "*.csv"
# Show hidden files
codecontext --hidden
# Exclude git info
codecontext --no-git
# Adjust limits
codecontext --max-files 100 --max-lines 150ctx # same as codecontext
ctx ./src # specific directory
ctx --clipboard # copy to clipboardPlace a .codecontext.toml in your project root:
git = true
max_files = 300
max_lines = 250
format = "markdown"
exclude = ["*.log", "tmp/"]
hidden = falseJSON and YAML formats are also supported (.codecontext.json, .codecontext.yml).
The tool produces a structured document with:
- Project metadata — path, git remote, branch
- Git history — recent commits and uncommitted changes
- File tree — with file sizes for every entry
- Key files — source files with syntax highlighting
- Stats summary — total files and size at a glance
Perfect for pasting directly into Claude, ChatGPT, or any AI coding assistant.
- Zero dependencies — pure Python, no pip installs beyond this package
- Smart ignore — automatically skips
.git,node_modules,__pycache__, binaries, and more - Git aware — includes branch, remote, recent commits, and diff stats
- File limit safety — won't overwhelm your context window
- Language detection — syntax-highlighted code blocks for 30+ languages
- Clipboard support —
--clipboardcopies output directly to your clipboard - Multiple formats — markdown, plain text, or JSON
- Config file — project-specific settings via
.codecontext.toml - Custom excludes — ignore additional patterns with
--exclude - File sizes — every file in the tree shows its size
$ codecontext --format markdownProduces:
# Codebase Context
Generated from: /Users/me/my-project
Remote: git@github.com:user/my-project.git
Branch: main
Recent commits:
abc1234 feat: add user authentication
def5678 fix: resolve payment timeout
## Project Structure
my-project/
├── src/
│ ├── main.py (2KB)
│ └── utils.py (1KB)
├── tests/
│ └── test_main.py (3KB)
├── pyproject.toml (1KB)
└── README.md (3KB)
## Key Files (6 files, 10KB)
### `src/main.py`
```python
def greet(name):
return f"Hello, {name}!"
...
## Changelog
### v0.2.0
- Clipboard support (`--clipboard`)
- Multiple output formats: markdown, plain, JSON
- Configuration file support (`.codecontext.toml`, `.json`, `.yml`)
- File sizes in tree output
- Custom exclude patterns (`--exclude`)
- Hidden files flag (`--hidden`)
- Stats summary in output
### v0.1.0
- Initial release
- File tree with smart ignore patterns
- Git history integration
- Syntax highlighting for 30+ languages
- CLI alias `ctx`
## License
MIT