code-context-engine 0.4.20__tar.gz → 0.4.21__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {code_context_engine-0.4.20/src/code_context_engine.egg-info → code_context_engine-0.4.21}/PKG-INFO +61 -7
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/README.md +60 -6
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/pyproject.toml +1 -1
- {code_context_engine-0.4.20 → code_context_engine-0.4.21/src/code_context_engine.egg-info}/PKG-INFO +61 -7
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/code_context_engine.egg-info/SOURCES.txt +1 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/cli.py +282 -61
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/compression/output_rules.py +23 -8
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/editors.py +11 -0
- code_context_engine-0.4.21/src/context_engine/pricing.py +148 -0
- code_context_engine-0.4.21/tests/test_cli_init_agents.py +155 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_cli_savings.py +4 -4
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_cli_savings_e2e.py +5 -5
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_cli_smoke.py +41 -7
- code_context_engine-0.4.20/src/context_engine/pricing.py +0 -104
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/LICENSE +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/setup.cfg +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/code_context_engine.egg-info/dependency_links.txt +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/code_context_engine.egg-info/entry_points.txt +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/code_context_engine.egg-info/requires.txt +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/code_context_engine.egg-info/top_level.txt +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/__init__.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/cli_style.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/compression/__init__.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/compression/compressor.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/compression/ollama_client.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/compression/prompts.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/compression/quality.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/config.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/dashboard/__init__.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/dashboard/_page.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/dashboard/server.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/event_bus.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/indexer/__init__.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/indexer/chunker.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/indexer/embedder.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/indexer/embedding_cache.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/indexer/git_hooks.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/indexer/git_indexer.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/indexer/ignorefile.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/indexer/manifest.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/indexer/pipeline.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/indexer/secrets.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/indexer/watcher.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/integration/__init__.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/integration/bootstrap.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/integration/git_context.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/integration/mcp_server.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/integration/session_capture.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/memory/__init__.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/memory/compressor.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/memory/db.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/memory/decision_extractor.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/memory/extractive.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/memory/grammar.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/memory/hook_installer.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/memory/hook_server.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/memory/hooks.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/memory/migrate.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/models.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/project_commands.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/retrieval/__init__.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/retrieval/confidence.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/retrieval/query_parser.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/retrieval/retriever.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/serve_http.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/services.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/storage/__init__.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/storage/backend.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/storage/fts_store.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/storage/graph_store.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/storage/local_backend.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/storage/remote_backend.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/storage/vector_store.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/src/context_engine/utils.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_cli_init_probe.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_cli_mcp_config.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_cli_safe_cwd.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_cli_savings_buckets.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_cli_serve.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_cli_sessions_export.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_cli_sessions_status.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_cli_uninstall.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_config.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_e2e.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_editors_codex.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_editors_opencode.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_event_bus.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_models.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_project_commands.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_real_life.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_services.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_token_efficiency.py +0 -0
- {code_context_engine-0.4.20 → code_context_engine-0.4.21}/tests/test_token_packing.py +0 -0
{code_context_engine-0.4.20/src/code_context_engine.egg-info → code_context_engine-0.4.21}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-context-engine
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.21
|
|
4
4
|
Summary: Save 94% on Claude Code tokens. Index your codebase locally, AI agents search instead of reading files. Reduce Claude API costs, save tokens on Cursor, VS Code, Gemini CLI. Free, open source MCP server.
|
|
5
5
|
Author-email: Fazle Elahee <felahee@gmail.com>, Raj <rajkumar.sakti@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -120,10 +120,10 @@ Dynamic: license-file
|
|
|
120
120
|
```bash
|
|
121
121
|
uv tool install code-context-engine
|
|
122
122
|
cd /path/to/your/project
|
|
123
|
-
cce init
|
|
123
|
+
cce init # or: cce init --agent all
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
That's it.
|
|
126
|
+
That's it. Your AI coding agent now searches your index instead of reading entire files. No config needed.
|
|
127
127
|
|
|
128
128
|
---
|
|
129
129
|
|
|
@@ -157,21 +157,26 @@ uv tool install "code-context-engine[local]" # includes fastembed + ONNX Runti
|
|
|
157
157
|
|
|
158
158
|
Restart your editor. Done. Every question now hits the index instead of re-reading files.
|
|
159
159
|
|
|
160
|
-
`cce init` auto-detects your editor and writes the right config
|
|
160
|
+
`cce init` auto-detects your editor and writes the right config. To target a
|
|
161
|
+
specific agent, use `--agent claude`, `--agent codex`, `--agent copilot`, or
|
|
162
|
+
`--agent all`.
|
|
161
163
|
|
|
162
164
|
| Editor | Config written | Instructions |
|
|
163
165
|
|--------|---------------|--------------|
|
|
164
166
|
| Claude Code | `.mcp.json` | `CLAUDE.md` |
|
|
165
|
-
| VS Code / Copilot | `.vscode/mcp.json` | |
|
|
167
|
+
| VS Code / Copilot | `.vscode/mcp.json` | `.github/copilot-instructions.md` |
|
|
166
168
|
| Cursor | `.cursor/mcp.json` | `.cursorrules` |
|
|
167
169
|
| Gemini CLI | `.gemini/settings.json` | `GEMINI.md` |
|
|
168
|
-
| OpenAI Codex | `~/.codex/config.toml` (user-global, per-project section) | |
|
|
170
|
+
| OpenAI Codex | `~/.codex/config.toml` (user-global, per-project section) | `AGENTS.md` |
|
|
169
171
|
| OpenCode | `opencode.json` | |
|
|
170
172
|
| Tabnine | `.tabnine/agent/settings.json` | `TABNINE.md` |
|
|
171
173
|
|
|
172
174
|
Multiple editors in the same project? All get configured in one command.
|
|
173
175
|
|
|
174
|
-
**Codex note:** Codex CLI reads MCP servers from `~/.codex/config.toml` only —
|
|
176
|
+
**Codex note:** Codex CLI reads MCP servers from `~/.codex/config.toml` only —
|
|
177
|
+
it has no per-project config. `cce init` adds one `[mcp_servers.cce-<project>-<hash>]`
|
|
178
|
+
section per project so multiple projects coexist; `cce uninstall` removes only
|
|
179
|
+
the section for the current project.
|
|
175
180
|
|
|
176
181
|
```
|
|
177
182
|
my-project · 38 queries
|
|
@@ -487,6 +492,55 @@ All other text files are chunked by line range. Binary files are skipped.
|
|
|
487
492
|
|
|
488
493
|
---
|
|
489
494
|
|
|
495
|
+
## FAQ
|
|
496
|
+
|
|
497
|
+
### Does CCE affect response quality?
|
|
498
|
+
|
|
499
|
+
No. Quality stays the same or slightly improves.
|
|
500
|
+
|
|
501
|
+
CCE replaces "dump the entire file" with "search for the relevant function." The model still gets the code it needs (0.90 Recall@10 in benchmarks). Less irrelevant context means less noise competing for attention, which can improve the model's focus on your actual question.
|
|
502
|
+
|
|
503
|
+
### How do I increase output token savings?
|
|
504
|
+
|
|
505
|
+
Set the output compression level in your project config (`cce.yaml`):
|
|
506
|
+
|
|
507
|
+
```yaml
|
|
508
|
+
compression:
|
|
509
|
+
output: max # off | lite | standard | max
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
Or change it at runtime via the MCP tool:
|
|
513
|
+
|
|
514
|
+
```
|
|
515
|
+
set_output_level output_level=max
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
| Level | Savings | What it does |
|
|
519
|
+
|-------|---------|--------------|
|
|
520
|
+
| `off` | 0% | No compression |
|
|
521
|
+
| `lite` | ~25% | Removes filler/hedging/pleasantries + diff-only for code changes |
|
|
522
|
+
| `standard` | ~70% | Drops articles, fragments, short synonyms + diff-only for code |
|
|
523
|
+
| `max` | ~80% | Telegraphic style + diff-only for code |
|
|
524
|
+
|
|
525
|
+
Default is `standard`. All levels include **code output rules** that instruct the model to show only changed lines (not full file rewrites), which is where most output tokens go in coding sessions. The `max` level produces very terse prose (similar to "caveman mode"). Code blocks, paths, and commands are never compressed regardless of level.
|
|
526
|
+
|
|
527
|
+
### Where do the savings come from?
|
|
528
|
+
|
|
529
|
+
Most savings are **input tokens** (what goes into the model):
|
|
530
|
+
|
|
531
|
+
| Layer | Type | Typical savings |
|
|
532
|
+
|-------|------|-----------------|
|
|
533
|
+
| Retrieval | Input | 94% (full files → relevant chunks) |
|
|
534
|
+
| Chunk compression | Input | 89% (chunks → signatures) |
|
|
535
|
+
| Grammar compression | Input | 13% (article/filler removal) |
|
|
536
|
+
| Turn summarization | Input | varies (session history) |
|
|
537
|
+
| Progressive disclosure | Input | varies (tool payloads) |
|
|
538
|
+
| Output compression | Output | 25-80% (depends on level) |
|
|
539
|
+
|
|
540
|
+
Output tokens cost 5x more per token (e.g. Opus: $15/1M input vs $75/1M output), so even a small output reduction has outsized cost impact.
|
|
541
|
+
|
|
542
|
+
---
|
|
543
|
+
|
|
490
544
|
## Roadmap
|
|
491
545
|
|
|
492
546
|
- [x] Multi-repo benchmarks (FastAPI, chi, fiber)
|
|
@@ -69,10 +69,10 @@
|
|
|
69
69
|
```bash
|
|
70
70
|
uv tool install code-context-engine
|
|
71
71
|
cd /path/to/your/project
|
|
72
|
-
cce init
|
|
72
|
+
cce init # or: cce init --agent all
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
That's it.
|
|
75
|
+
That's it. Your AI coding agent now searches your index instead of reading entire files. No config needed.
|
|
76
76
|
|
|
77
77
|
---
|
|
78
78
|
|
|
@@ -106,21 +106,26 @@ uv tool install "code-context-engine[local]" # includes fastembed + ONNX Runti
|
|
|
106
106
|
|
|
107
107
|
Restart your editor. Done. Every question now hits the index instead of re-reading files.
|
|
108
108
|
|
|
109
|
-
`cce init` auto-detects your editor and writes the right config
|
|
109
|
+
`cce init` auto-detects your editor and writes the right config. To target a
|
|
110
|
+
specific agent, use `--agent claude`, `--agent codex`, `--agent copilot`, or
|
|
111
|
+
`--agent all`.
|
|
110
112
|
|
|
111
113
|
| Editor | Config written | Instructions |
|
|
112
114
|
|--------|---------------|--------------|
|
|
113
115
|
| Claude Code | `.mcp.json` | `CLAUDE.md` |
|
|
114
|
-
| VS Code / Copilot | `.vscode/mcp.json` | |
|
|
116
|
+
| VS Code / Copilot | `.vscode/mcp.json` | `.github/copilot-instructions.md` |
|
|
115
117
|
| Cursor | `.cursor/mcp.json` | `.cursorrules` |
|
|
116
118
|
| Gemini CLI | `.gemini/settings.json` | `GEMINI.md` |
|
|
117
|
-
| OpenAI Codex | `~/.codex/config.toml` (user-global, per-project section) | |
|
|
119
|
+
| OpenAI Codex | `~/.codex/config.toml` (user-global, per-project section) | `AGENTS.md` |
|
|
118
120
|
| OpenCode | `opencode.json` | |
|
|
119
121
|
| Tabnine | `.tabnine/agent/settings.json` | `TABNINE.md` |
|
|
120
122
|
|
|
121
123
|
Multiple editors in the same project? All get configured in one command.
|
|
122
124
|
|
|
123
|
-
**Codex note:** Codex CLI reads MCP servers from `~/.codex/config.toml` only —
|
|
125
|
+
**Codex note:** Codex CLI reads MCP servers from `~/.codex/config.toml` only —
|
|
126
|
+
it has no per-project config. `cce init` adds one `[mcp_servers.cce-<project>-<hash>]`
|
|
127
|
+
section per project so multiple projects coexist; `cce uninstall` removes only
|
|
128
|
+
the section for the current project.
|
|
124
129
|
|
|
125
130
|
```
|
|
126
131
|
my-project · 38 queries
|
|
@@ -436,6 +441,55 @@ All other text files are chunked by line range. Binary files are skipped.
|
|
|
436
441
|
|
|
437
442
|
---
|
|
438
443
|
|
|
444
|
+
## FAQ
|
|
445
|
+
|
|
446
|
+
### Does CCE affect response quality?
|
|
447
|
+
|
|
448
|
+
No. Quality stays the same or slightly improves.
|
|
449
|
+
|
|
450
|
+
CCE replaces "dump the entire file" with "search for the relevant function." The model still gets the code it needs (0.90 Recall@10 in benchmarks). Less irrelevant context means less noise competing for attention, which can improve the model's focus on your actual question.
|
|
451
|
+
|
|
452
|
+
### How do I increase output token savings?
|
|
453
|
+
|
|
454
|
+
Set the output compression level in your project config (`cce.yaml`):
|
|
455
|
+
|
|
456
|
+
```yaml
|
|
457
|
+
compression:
|
|
458
|
+
output: max # off | lite | standard | max
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
Or change it at runtime via the MCP tool:
|
|
462
|
+
|
|
463
|
+
```
|
|
464
|
+
set_output_level output_level=max
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
| Level | Savings | What it does |
|
|
468
|
+
|-------|---------|--------------|
|
|
469
|
+
| `off` | 0% | No compression |
|
|
470
|
+
| `lite` | ~25% | Removes filler/hedging/pleasantries + diff-only for code changes |
|
|
471
|
+
| `standard` | ~70% | Drops articles, fragments, short synonyms + diff-only for code |
|
|
472
|
+
| `max` | ~80% | Telegraphic style + diff-only for code |
|
|
473
|
+
|
|
474
|
+
Default is `standard`. All levels include **code output rules** that instruct the model to show only changed lines (not full file rewrites), which is where most output tokens go in coding sessions. The `max` level produces very terse prose (similar to "caveman mode"). Code blocks, paths, and commands are never compressed regardless of level.
|
|
475
|
+
|
|
476
|
+
### Where do the savings come from?
|
|
477
|
+
|
|
478
|
+
Most savings are **input tokens** (what goes into the model):
|
|
479
|
+
|
|
480
|
+
| Layer | Type | Typical savings |
|
|
481
|
+
|-------|------|-----------------|
|
|
482
|
+
| Retrieval | Input | 94% (full files → relevant chunks) |
|
|
483
|
+
| Chunk compression | Input | 89% (chunks → signatures) |
|
|
484
|
+
| Grammar compression | Input | 13% (article/filler removal) |
|
|
485
|
+
| Turn summarization | Input | varies (session history) |
|
|
486
|
+
| Progressive disclosure | Input | varies (tool payloads) |
|
|
487
|
+
| Output compression | Output | 25-80% (depends on level) |
|
|
488
|
+
|
|
489
|
+
Output tokens cost 5x more per token (e.g. Opus: $15/1M input vs $75/1M output), so even a small output reduction has outsized cost impact.
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
439
493
|
## Roadmap
|
|
440
494
|
|
|
441
495
|
- [x] Multi-repo benchmarks (FastAPI, chi, fiber)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "code-context-engine"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.21"
|
|
4
4
|
description = "Save 94% on Claude Code tokens. Index your codebase locally, AI agents search instead of reading files. Reduce Claude API costs, save tokens on Cursor, VS Code, Gemini CLI. Free, open source MCP server."
|
|
5
5
|
readme = {file = "README.md", content-type = "text/markdown"}
|
|
6
6
|
license = "MIT"
|
{code_context_engine-0.4.20 → code_context_engine-0.4.21/src/code_context_engine.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-context-engine
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.21
|
|
4
4
|
Summary: Save 94% on Claude Code tokens. Index your codebase locally, AI agents search instead of reading files. Reduce Claude API costs, save tokens on Cursor, VS Code, Gemini CLI. Free, open source MCP server.
|
|
5
5
|
Author-email: Fazle Elahee <felahee@gmail.com>, Raj <rajkumar.sakti@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -120,10 +120,10 @@ Dynamic: license-file
|
|
|
120
120
|
```bash
|
|
121
121
|
uv tool install code-context-engine
|
|
122
122
|
cd /path/to/your/project
|
|
123
|
-
cce init
|
|
123
|
+
cce init # or: cce init --agent all
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
That's it.
|
|
126
|
+
That's it. Your AI coding agent now searches your index instead of reading entire files. No config needed.
|
|
127
127
|
|
|
128
128
|
---
|
|
129
129
|
|
|
@@ -157,21 +157,26 @@ uv tool install "code-context-engine[local]" # includes fastembed + ONNX Runti
|
|
|
157
157
|
|
|
158
158
|
Restart your editor. Done. Every question now hits the index instead of re-reading files.
|
|
159
159
|
|
|
160
|
-
`cce init` auto-detects your editor and writes the right config
|
|
160
|
+
`cce init` auto-detects your editor and writes the right config. To target a
|
|
161
|
+
specific agent, use `--agent claude`, `--agent codex`, `--agent copilot`, or
|
|
162
|
+
`--agent all`.
|
|
161
163
|
|
|
162
164
|
| Editor | Config written | Instructions |
|
|
163
165
|
|--------|---------------|--------------|
|
|
164
166
|
| Claude Code | `.mcp.json` | `CLAUDE.md` |
|
|
165
|
-
| VS Code / Copilot | `.vscode/mcp.json` | |
|
|
167
|
+
| VS Code / Copilot | `.vscode/mcp.json` | `.github/copilot-instructions.md` |
|
|
166
168
|
| Cursor | `.cursor/mcp.json` | `.cursorrules` |
|
|
167
169
|
| Gemini CLI | `.gemini/settings.json` | `GEMINI.md` |
|
|
168
|
-
| OpenAI Codex | `~/.codex/config.toml` (user-global, per-project section) | |
|
|
170
|
+
| OpenAI Codex | `~/.codex/config.toml` (user-global, per-project section) | `AGENTS.md` |
|
|
169
171
|
| OpenCode | `opencode.json` | |
|
|
170
172
|
| Tabnine | `.tabnine/agent/settings.json` | `TABNINE.md` |
|
|
171
173
|
|
|
172
174
|
Multiple editors in the same project? All get configured in one command.
|
|
173
175
|
|
|
174
|
-
**Codex note:** Codex CLI reads MCP servers from `~/.codex/config.toml` only —
|
|
176
|
+
**Codex note:** Codex CLI reads MCP servers from `~/.codex/config.toml` only —
|
|
177
|
+
it has no per-project config. `cce init` adds one `[mcp_servers.cce-<project>-<hash>]`
|
|
178
|
+
section per project so multiple projects coexist; `cce uninstall` removes only
|
|
179
|
+
the section for the current project.
|
|
175
180
|
|
|
176
181
|
```
|
|
177
182
|
my-project · 38 queries
|
|
@@ -487,6 +492,55 @@ All other text files are chunked by line range. Binary files are skipped.
|
|
|
487
492
|
|
|
488
493
|
---
|
|
489
494
|
|
|
495
|
+
## FAQ
|
|
496
|
+
|
|
497
|
+
### Does CCE affect response quality?
|
|
498
|
+
|
|
499
|
+
No. Quality stays the same or slightly improves.
|
|
500
|
+
|
|
501
|
+
CCE replaces "dump the entire file" with "search for the relevant function." The model still gets the code it needs (0.90 Recall@10 in benchmarks). Less irrelevant context means less noise competing for attention, which can improve the model's focus on your actual question.
|
|
502
|
+
|
|
503
|
+
### How do I increase output token savings?
|
|
504
|
+
|
|
505
|
+
Set the output compression level in your project config (`cce.yaml`):
|
|
506
|
+
|
|
507
|
+
```yaml
|
|
508
|
+
compression:
|
|
509
|
+
output: max # off | lite | standard | max
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
Or change it at runtime via the MCP tool:
|
|
513
|
+
|
|
514
|
+
```
|
|
515
|
+
set_output_level output_level=max
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
| Level | Savings | What it does |
|
|
519
|
+
|-------|---------|--------------|
|
|
520
|
+
| `off` | 0% | No compression |
|
|
521
|
+
| `lite` | ~25% | Removes filler/hedging/pleasantries + diff-only for code changes |
|
|
522
|
+
| `standard` | ~70% | Drops articles, fragments, short synonyms + diff-only for code |
|
|
523
|
+
| `max` | ~80% | Telegraphic style + diff-only for code |
|
|
524
|
+
|
|
525
|
+
Default is `standard`. All levels include **code output rules** that instruct the model to show only changed lines (not full file rewrites), which is where most output tokens go in coding sessions. The `max` level produces very terse prose (similar to "caveman mode"). Code blocks, paths, and commands are never compressed regardless of level.
|
|
526
|
+
|
|
527
|
+
### Where do the savings come from?
|
|
528
|
+
|
|
529
|
+
Most savings are **input tokens** (what goes into the model):
|
|
530
|
+
|
|
531
|
+
| Layer | Type | Typical savings |
|
|
532
|
+
|-------|------|-----------------|
|
|
533
|
+
| Retrieval | Input | 94% (full files → relevant chunks) |
|
|
534
|
+
| Chunk compression | Input | 89% (chunks → signatures) |
|
|
535
|
+
| Grammar compression | Input | 13% (article/filler removal) |
|
|
536
|
+
| Turn summarization | Input | varies (session history) |
|
|
537
|
+
| Progressive disclosure | Input | varies (tool payloads) |
|
|
538
|
+
| Output compression | Output | 25-80% (depends on level) |
|
|
539
|
+
|
|
540
|
+
Output tokens cost 5x more per token (e.g. Opus: $15/1M input vs $75/1M output), so even a small output reduction has outsized cost impact.
|
|
541
|
+
|
|
542
|
+
---
|
|
543
|
+
|
|
490
544
|
## Roadmap
|
|
491
545
|
|
|
492
546
|
- [x] Multi-repo benchmarks (FastAPI, chi, fiber)
|
|
@@ -65,6 +65,7 @@ src/context_engine/storage/graph_store.py
|
|
|
65
65
|
src/context_engine/storage/local_backend.py
|
|
66
66
|
src/context_engine/storage/remote_backend.py
|
|
67
67
|
src/context_engine/storage/vector_store.py
|
|
68
|
+
tests/test_cli_init_agents.py
|
|
68
69
|
tests/test_cli_init_probe.py
|
|
69
70
|
tests/test_cli_mcp_config.py
|
|
70
71
|
tests/test_cli_safe_cwd.py
|