Extract your codebase context for AI assistants
Project description
codecontext
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
codecontext
Why?
When 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.
Install
pip install codecontext
Or run directly:
curl -O https://raw.githubusercontent.com/hanu-14/codecontext/main/src/codecontext/cli.py
python cli.py
Usage
# 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 150
Short alias
ctx # same as codecontext
ctx ./src # specific directory
ctx --clipboard # copy to clipboard
Configuration
Place a .codecontext.toml in your project root:
git = true
max_files = 300
max_lines = 250
format = "markdown"
exclude = ["*.log", "tmp/"]
hidden = false
JSON and YAML formats are also supported (.codecontext.json, .codecontext.yml).
Output
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.
Features
- 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
Example
$ codecontext --format markdown
Produces:
# 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
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
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 ctxcode-0.2.0.tar.gz.
File metadata
- Download URL: ctxcode-0.2.0.tar.gz
- Upload date:
- Size: 7.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ca4f04d6e778fcd5b0b194224976e380f13a2d1737987008455e9cf96feccab
|
|
| MD5 |
3f9b4f5e21af42a3120852c7fb717aeb
|
|
| BLAKE2b-256 |
114d7ddc9827f567661a74441c47005ed459f70f233d98b669fcfe9be1752e84
|
File details
Details for the file ctxcode-0.2.0-py3-none-any.whl.
File metadata
- Download URL: ctxcode-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31753ef63bd6d77b59f7c8ad8eec02248e34834885fa0f78b7156a29e98d98ce
|
|
| MD5 |
a7b0ae233a38a939628e8cc730fe51d8
|
|
| BLAKE2b-256 |
514f7145a79234e45fc4061301fbf42d0c07da4017ac2b50bb9ab678f3cd106b
|