Skip to main content

Local-first token firewall for AI coding agents

Project description

ContextGuardrail

ContextGuardrail is a local-first MVP for reducing AI coding-agent context. It scans a repo, builds a lightweight code graph, selects relevant files for a prompt, prevents replaying already-sent files, caches repeated asks, and reports estimated token/cost savings.

Install locally

cd /Users/homesachin/Desktop/zoneone/contextguardrail
python -m venv .venv
source .venv/bin/activate
pip install -e .

Use

contextguardrail init
contextguardrail index /path/to/repo
contextguardrail ask "Where is authentication handled?"
contextguardrail pack "Where is authentication handled?"
contextguardrail diff "Where is authentication handled?"
contextguardrail explain "Where is authentication handled?"
contextguardrail inspect app.py
contextguardrail related app.py
contextguardrail doctor
contextguardrail stats
contextguardrail export
contextguardrail clean

All state is stored in the indexed repo under .contextguardrail/.

MVP Features

  • Repo scanner with incremental hashing
  • Supported file scanning for .py, .md, .css, .js, .html, .txt, .env, Dockerfile, .example, and .json
  • Python AST parser for imports, classes, functions, and summaries
  • Lightweight JS, HTML, and CSS parser for functions, linked assets, tags, IDs, classes, and selectors
  • Lightweight dependency graph
  • Context selector using prompt keywords, graph metadata, file type boosts, exact keyword matching, and weak-match pruning
  • Token counting with tiktoken when available, word-count fallback otherwise
  • Semantic cache for repeated prompt and selected-file sets
  • Replay prevention so already-sent files are skipped unless changed
  • Context diffing via file hashes
  • Cost observability through contextguardrail stats
  • AI-ready context packs for Codex, Copilot, Claude, and ChatGPT through contextguardrail pack
  • markdown, json, and xml pack output formats
  • Hard context budgets with --max-tokens
  • Optional redaction for secrets and local policy files
  • Git diff, PR range, memory, inspect, related, benchmark, batch, and local API workflows

This version intentionally skips dashboards, multi-user support, Neo4j, and agent orchestration.

Supported Files

ContextGuardrail indexes common application, documentation, config, and deployment files:

.py
.md
.css
.js
.html
.txt
.env
Dockerfile
.example
.json

Dockerfile is matched by filename, so it works even though it has no extension. .env and .example files are matched by suffix, which covers files like .env, .env.example, and settings.example.

AI Tool Workflow

Use ContextGuardrail before opening a large task in Codex, Copilot, Claude, or ChatGPT:

contextguardrail index .
contextguardrail ask "Which files control page styling?"
contextguardrail pack "Which files control page styling?" --format markdown
contextguardrail pack "Which files control page styling?" --format json
contextguardrail pack "Which files control page styling?" --format xml

ask prints the files to inspect first, plus raw vs optimized token estimates. pack prints an AI-ready bundle with selected files, scores, reasons, and summaries. Add --full-files when you want a copy/paste bundle containing the selected source content too:

contextguardrail pack "Where is the contact form handled?" --full-files

For follow-up prompts, use:

contextguardrail diff "Where is the contact form handled?"

That shows only selected files that changed since the prompt was last sent.

Useful advanced commands:

contextguardrail explain "Add Redis cache to user API"
contextguardrail inspect app/main.py
contextguardrail related templates/index.html
contextguardrail pr origin/main...HEAD
contextguardrail benchmark prompts.txt
contextguardrail batch tasks.json
contextguardrail memory
contextguardrail doctor
contextguardrail instructions
contextguardrail serve

Create .contextguardrailignore to exclude files from indexing, and .contextguardrailpolicy.json for simple local policy controls:

{
  "allow_secrets": false,
  "max_file_tokens": 50000,
  "forbidden_paths": ["secrets/**"]
}

Project Layout

contextguardrail/
├── pyproject.toml              # Package metadata, dependencies, CLI entrypoints
├── README.md                   # Project documentation and usage guide
├── contextguardrail/
│   ├── scanner.py              # Scan repo and detect files, hashes, changes
│   ├── config.py               # Global settings and configuration loading
│   ├── budget.py               # Token estimation and budget enforcement
│   ├── exporter.py             # Export graph, summaries, and reports
│   ├── graph.py                # Build dependency graph from source code
│   ├── selector.py             # Select most relevant context for a prompt
│   ├── cache.py                # Semantic cache and replay prevention
│   ├── cli.py                  # Main CLI commands exposed to users
│   ├── stats.py                # Usage metrics and cost-saving reports
│   └── storage.py              # SQLite helpers and persistence layer
└── tests/
    └── test_budget.py          # Unit tests for token budgeting logic

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

contextguardrail-0.3.0.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

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

contextguardrail-0.3.0-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file contextguardrail-0.3.0.tar.gz.

File metadata

  • Download URL: contextguardrail-0.3.0.tar.gz
  • Upload date:
  • Size: 20.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for contextguardrail-0.3.0.tar.gz
Algorithm Hash digest
SHA256 4eab7c22b3b292cb59178b99a78823559d76a1371825312d7578f84493871b03
MD5 1b31bee6b4b65188982ad2bc45d2e52d
BLAKE2b-256 1bd512510d46f23889bf4354a98677a4d8f0c0197876b5f1fc1b8e60facdd72a

See more details on using hashes here.

Provenance

The following attestation bundles were made for contextguardrail-0.3.0.tar.gz:

Publisher: workflow.yml on sachnaror/contextguardrail

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

File details

Details for the file contextguardrail-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for contextguardrail-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 10d38bb694d1f84668225d4b8fdd2cd31c87bf1d1cff1a399bc7d9facd951f75
MD5 c78dcf0fe6a2b460f02d30a0c30d213e
BLAKE2b-256 d484afee1e78e14a98ec581e7439bbafd167d402090fc0bd72b5b44c74235059

See more details on using hashes here.

Provenance

The following attestation bundles were made for contextguardrail-0.3.0-py3-none-any.whl:

Publisher: workflow.yml on sachnaror/contextguardrail

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