Skip to main content

Human-Centered Codebase Context Manager for LLMs

Project description

Codigest

Codigest is a standalone CLI tool designed to extract, structure, and track the context of your codebase for Large Language Models (LLMs).

Unlike simple copy-paste tools, Codigest employs a Context Anchor system (Shadow Git) to track changes locally without polluting your main version control history. It also features Semantic Analysis to detect structural changes in your code.

Note: You can use the short alias cdg instead of codigest for faster typing.

Core Philosophy

  • Read-Only & Safe: Codigest never modifies your source code. It only reads, analyzes, and formats context.
  • Context-Aware: Instead of dumping raw text, it structures code into XML snapshots designed for LLM comprehension.
  • Session-Based Tracking: It maintains an internal anchor to track "work-in-progress" changes independently of your Git commits.
  • Environment Isolated: Runs in its own isolated Python 3.14 environment via uv, ensuring it never conflicts with your project's dependencies.

Installation

Codigest runs as a global tool. You don't need to add it to your project's requirements.txt. We strongly recommend using uv for the best experience.

Step 1: Install uv

If you don't have uv installed, use Winget (Windows) or curl (macOS/Linux).

# Windows (via Winget)
winget install --id astral-sh.uv

# macOS/Linux
curl -LsSf [https://astral.sh/uv/install.sh](https://astral.sh/uv/install.sh) | sh

Step 2: Install codigest

Install Codigest globally. uv will automatically manage the required Python 3.14 environment for you.

uv tool install codigest

Step 3: Update Path (Important!)

To run codigest (or cdg) from any terminal, ensure your tools directory is in your PATH.

uv tool update-shell

> Note: Restart your terminal (or VS Code) after this step to apply changes.


Workflow & Commands

Once installed, use the cdg command anywhere.

1. Initialization

Sets up the .codigest directory and captures the initial baseline anchor.

cdg init

2. Full Context Snapshot (scan)

Scans the codebase and generates a structured XML snapshot. Includes a Pre-flight Check to prevent accidental token overflow.

  • Output: .codigest/snapshot.xml
  • Features:
  • Smart Confirmation: Automatically skips confirmation for small contexts, but warns you for large ones (>30k tokens).
  • Dependency Resolution (-r): Automatically finds and includes local files imported by your target files.
  • Scope Control: You can specify folders or files to scan.
# Basic scan (Interactive confirmation if large)
cdg scan

# Scan specific folder with dependency resolution (Smart Context)
cdg scan src/main.py -r

# Force execution without confirmation (Good for CI/CD)
cdg scan -y --message "Automated snapshot"

3. Incremental Changes (diff)

Tracks text-based changes between the last scan and the current working tree.

  • Output: .codigest/changes.diff
  • Use Case: "I modified 3 files. Here is exactly what changed since the last snapshot."
  • Note: Checks against the internal Shadow Git, enabling tracking without committing to the real Git.
cdg diff

4. Semantic Analysis (semdiff)

Analyzes structural changes (AST-based) rather than line-by-line text differences.

  • Output: .codigest/semdiff.xml
  • Use Case: "I refactored the API. Show me added/removed functions or signature changes."
  • Benefit: Reduces token usage by ignoring formatting/comment changes.
cdg semdiff

5. Project Tree (tree)

Visualizes the project structure. Respects .gitignore.

  • Style: Professional, cleaner output without emojis for better readability.
  • Use Case: Quickly verifying which files are being tracked.
cdg tree

6. Architecture Digest (digest)

Generates a high-level outline of the project structure (Classes, Functions, Methods only).

  • Output: .codigest/digest.xml
  • Use Case: "Don't read the implementation details. Just understand the class hierarchy."
cdg digest

Configuration

You can customize behavior in .codigest/config.toml.

[filter]
# Target extensions
extensions = [".py", ".ts", ".rs", ".md", ".json"]

# Exclude patterns (Gitignore syntax)
exclude_patterns = [
    "*.lock",
    "tests/data/",
    "legacy_code/"
]

[output]
format = "xml"

Architecture Details

Context Anchor (Shadow Git) Codigest maintains a hidden, lightweight Git repository inside .codigest/anchor/.shadow_git.

  • It is renamed to .shadow_git to prevent VS Code and other IDEs from confusing it with your project's actual repository.
  • When you run scan, the current state is committed to this anchor.
  • When you run diff, the tool compares your working directory against this anchor.

Safety Mechanisms

  • Pre-flight Check: Calculates estimated token count before processing to prevent context overflow errors.
  • Structure-Aware Dedent: Ensures XML tags are perfectly aligned (flush-left) to prevent indentation artifacts in LLM prompts.
  • XML Injection Protection: Automatically escapes content within XML tags.

License

MIT License

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

codigest-0.3.5.tar.gz (26.7 kB view details)

Uploaded Source

Built Distribution

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

codigest-0.3.5-py3-none-any.whl (31.3 kB view details)

Uploaded Python 3

File details

Details for the file codigest-0.3.5.tar.gz.

File metadata

  • Download URL: codigest-0.3.5.tar.gz
  • Upload date:
  • Size: 26.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for codigest-0.3.5.tar.gz
Algorithm Hash digest
SHA256 469a51abaaffe7f87323dd9adba38bbea27140399daccb96b90beffb2d28c559
MD5 ff7cfafbb07d2616ca41bd0877b96ddd
BLAKE2b-256 df8cf03a1aa1dc912825af864bd06d12246eca70a26b8395cc312871b6759c80

See more details on using hashes here.

Provenance

The following attestation bundles were made for codigest-0.3.5.tar.gz:

Publisher: publish.yml on SJB7777/codigest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file codigest-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: codigest-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 31.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for codigest-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5f663bc47425b601a197deff337c048fb2e0d62e333f5f2d7e2b11ee2b72f20c
MD5 15ddf40d25adfbed60914997e4770ece
BLAKE2b-256 2136c362448a23dbcab83bdc57f1f91295b1fb9e72bcf7213a9ada3711bbf442

See more details on using hashes here.

Provenance

The following attestation bundles were made for codigest-0.3.5-py3-none-any.whl:

Publisher: publish.yml on SJB7777/codigest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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