code-context-engine 0.4.18__tar.gz → 0.4.19__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.18/src/code_context_engine.egg-info → code_context_engine-0.4.19}/PKG-INFO +33 -9
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/README.md +29 -6
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/pyproject.toml +33 -3
- {code_context_engine-0.4.18 → code_context_engine-0.4.19/src/code_context_engine.egg-info}/PKG-INFO +33 -9
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/code_context_engine.egg-info/SOURCES.txt +1 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/code_context_engine.egg-info/requires.txt +1 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/cli.py +52 -35
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/editors.py +13 -1
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/event_bus.py +0 -1
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/indexer/embedding_cache.py +2 -1
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/indexer/git_hooks.py +7 -3
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/indexer/pipeline.py +0 -1
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/integration/bootstrap.py +1 -1
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/integration/mcp_server.py +0 -1
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/memory/compressor.py +70 -1
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/memory/db.py +6 -4
- code_context_engine-0.4.19/src/context_engine/memory/decision_extractor.py +91 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/memory/hooks.py +0 -1
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/storage/backend.py +1 -1
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/storage/fts_store.py +2 -1
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/storage/graph_store.py +4 -3
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/storage/remote_backend.py +1 -1
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/storage/vector_store.py +9 -7
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/utils.py +20 -10
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_cli_savings_e2e.py +1 -2
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_cli_smoke.py +2 -2
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_cli_uninstall.py +0 -1
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_config.py +0 -3
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_e2e.py +1 -2
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_event_bus.py +0 -1
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_project_commands.py +0 -3
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_real_life.py +0 -4
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_services.py +0 -2
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_token_efficiency.py +0 -1
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_token_packing.py +0 -1
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/LICENSE +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/setup.cfg +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/code_context_engine.egg-info/dependency_links.txt +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/code_context_engine.egg-info/entry_points.txt +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/code_context_engine.egg-info/top_level.txt +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/__init__.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/cli_style.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/compression/__init__.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/compression/compressor.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/compression/ollama_client.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/compression/output_rules.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/compression/prompts.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/compression/quality.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/config.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/dashboard/__init__.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/dashboard/_page.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/dashboard/server.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/indexer/__init__.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/indexer/chunker.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/indexer/embedder.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/indexer/git_indexer.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/indexer/ignorefile.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/indexer/manifest.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/indexer/secrets.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/indexer/watcher.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/integration/__init__.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/integration/git_context.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/integration/session_capture.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/memory/__init__.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/memory/extractive.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/memory/grammar.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/memory/hook_installer.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/memory/hook_server.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/memory/migrate.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/models.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/pricing.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/project_commands.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/retrieval/__init__.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/retrieval/confidence.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/retrieval/query_parser.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/retrieval/retriever.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/serve_http.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/services.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/storage/__init__.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/src/context_engine/storage/local_backend.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_cli_init_probe.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_cli_mcp_config.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_cli_safe_cwd.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_cli_savings.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_cli_savings_buckets.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_cli_serve.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_cli_sessions_export.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_cli_sessions_status.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_editors_codex.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_editors_opencode.py +0 -0
- {code_context_engine-0.4.18 → code_context_engine-0.4.19}/tests/test_models.py +0 -0
{code_context_engine-0.4.18/src/code_context_engine.egg-info → code_context_engine-0.4.19}/PKG-INFO
RENAMED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-context-engine
|
|
3
|
-
Version: 0.4.
|
|
4
|
-
Summary: Index your codebase
|
|
3
|
+
Version: 0.4.19
|
|
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
|
|
7
7
|
Project-URL: Homepage, https://github.com/elara-labs/code-context-engine
|
|
8
8
|
Project-URL: Repository, https://github.com/elara-labs/code-context-engine
|
|
9
9
|
Project-URL: Issues, https://github.com/elara-labs/code-context-engine/issues
|
|
10
|
-
Keywords: claude,
|
|
10
|
+
Keywords: claude-code,save-tokens,token-savings,mcp-server,claude,cursor,code-indexing,reduce-ai-costs,llm,vector-search,ai-coding
|
|
11
11
|
Classifier: Development Status :: 4 - Beta
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -44,6 +44,7 @@ Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
|
|
|
44
44
|
Requires-Dist: pytest-aiohttp>=1.0; extra == "dev"
|
|
45
45
|
Requires-Dist: pytest-cov>=5.0; extra == "dev"
|
|
46
46
|
Requires-Dist: pytest-xdist>=3.5; extra == "dev"
|
|
47
|
+
Requires-Dist: ruff>=0.13; extra == "dev"
|
|
47
48
|
Provides-Extra: http
|
|
48
49
|
Dynamic: license-file
|
|
49
50
|
|
|
@@ -57,6 +58,10 @@ Dynamic: license-file
|
|
|
57
58
|
<strong>Index your codebase. AI searches instead of re-reading files.<br>94% token savings, reproducibly benchmarked.</strong>
|
|
58
59
|
</p>
|
|
59
60
|
|
|
61
|
+
<p align="center">
|
|
62
|
+
<a href="https://elara-labs.github.io/code-context-engine/">Website</a> · <a href="https://elara-labs.github.io/code-context-engine/blog/what-is-code-context-engine.html">Guide</a> · <a href="https://elara-labs.github.io/code-context-engine/blog/benchmark-fastapi.html">Benchmark</a> · <a href="https://github.com/elara-labs/code-context-engine">GitHub</a>
|
|
63
|
+
</p>
|
|
64
|
+
|
|
60
65
|
<br>
|
|
61
66
|
|
|
62
67
|
<p align="center">
|
|
@@ -80,7 +85,8 @@ Dynamic: license-file
|
|
|
80
85
|
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/Cursor-000?style=for-the-badge" alt="Cursor"></a>
|
|
81
86
|
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/Gemini_CLI-4285F4?style=for-the-badge&logo=google&logoColor=white" alt="Gemini CLI"></a>
|
|
82
87
|
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/Codex_CLI-412991?style=for-the-badge" alt="Codex CLI"></a>
|
|
83
|
-
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/OpenCode-22C55E?style=for-the-badge&logo=gnometerminal&logoColor=white" alt="OpenCode"></a
|
|
88
|
+
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/OpenCode-22C55E?style=for-the-badge&logo=gnometerminal&logoColor=white" alt="OpenCode"></a>
|
|
89
|
+
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/Tabnine-4B32C3?style=for-the-badge&logo=tabnine&logoColor=white" alt="Tabnine"></a>
|
|
84
90
|
</p>
|
|
85
91
|
|
|
86
92
|
<p align="center">
|
|
@@ -154,6 +160,7 @@ Restart your editor. Done. Every question now hits the index instead of re-readi
|
|
|
154
160
|
| Gemini CLI | `.gemini/settings.json` | `GEMINI.md` |
|
|
155
161
|
| OpenAI Codex | `~/.codex/config.toml` (user-global, per-project section) | |
|
|
156
162
|
| OpenCode | `opencode.json` | |
|
|
163
|
+
| Tabnine | `.tabnine/agent/settings.json` | `TABNINE.md` |
|
|
157
164
|
|
|
158
165
|
Multiple editors in the same project? All get configured in one command.
|
|
159
166
|
|
|
@@ -196,7 +203,9 @@ With CCE: context_search "payment flow" = 800 tokens
|
|
|
196
203
|
|
|
197
204
|
We benchmarked CCE against [FastAPI](https://github.com/fastapi/fastapi) (53 source files, 180K tokens) with 20 real coding questions. No cherry-picking, no synthetic queries.
|
|
198
205
|
|
|
199
|
-
**Methodology:** For each query, "without CCE" means reading the full content of every file the query touches. "With CCE" means the relevant chunks after compression.
|
|
206
|
+
**Methodology:** For each query, "without CCE" means reading the full content of every file the query touches. "With CCE" means the relevant chunks after compression.
|
|
207
|
+
|
|
208
|
+
**Important baseline note:** The 94% number is measured against full-file reads, not against what Claude Code actually does. In practice, Claude Code already uses grep, partial file reads, and targeted tools, so the real-world savings compared to normal Claude Code behavior will be lower than 94%. We use full-file as the baseline because it's reproducible and deterministic (no agent behavior variability). The benchmark measures CCE's retrieval efficiency, not a head-to-head comparison with Claude Code's built-in exploration.
|
|
200
209
|
|
|
201
210
|
| Metric | Result |
|
|
202
211
|
|--------|--------|
|
|
@@ -426,7 +435,7 @@ No GPU required. Embedding model runs on CPU via ONNX Runtime.
|
|
|
426
435
|
|
|
427
436
|
## Supported Languages
|
|
428
437
|
|
|
429
|
-
**AST-aware chunking (10 extensions):**
|
|
438
|
+
**AST-aware chunking (tree-sitter parsed, 10 extensions):**
|
|
430
439
|
|
|
431
440
|
| Language | Extensions |
|
|
432
441
|
|----------|-----------|
|
|
@@ -438,7 +447,20 @@ No GPU required. Embedding model runs on CPU via ONNX Runtime.
|
|
|
438
447
|
| Rust | `.rs` |
|
|
439
448
|
| Java | `.java` |
|
|
440
449
|
|
|
441
|
-
**
|
|
450
|
+
**Language-aware fallback chunking (40+ extensions):**
|
|
451
|
+
|
|
452
|
+
| Category | Languages |
|
|
453
|
+
|----------|-----------|
|
|
454
|
+
| Web | HTML, CSS, SCSS, LESS, Vue, Svelte |
|
|
455
|
+
| Systems | C, C++, C#, Zig, Nim |
|
|
456
|
+
| Mobile | Swift, Kotlin, Dart |
|
|
457
|
+
| Functional | Haskell, Scala, Clojure, Elixir, Erlang, F# |
|
|
458
|
+
| Scripting | Ruby, Perl, Lua, R, Bash/Zsh |
|
|
459
|
+
| Data/Config | JSON, YAML, TOML, XML, SQL, GraphQL, Protobuf |
|
|
460
|
+
| DevOps | Terraform, HCL, Dockerfile |
|
|
461
|
+
| Docs | Markdown |
|
|
462
|
+
|
|
463
|
+
All other text files are chunked by line range. Binary files are skipped.
|
|
442
464
|
|
|
443
465
|
---
|
|
444
466
|
|
|
@@ -446,12 +468,14 @@ No GPU required. Embedding model runs on CPU via ONNX Runtime.
|
|
|
446
468
|
|
|
447
469
|
| Page | Content |
|
|
448
470
|
|------|---------|
|
|
471
|
+
| [What is CCE? (Complete Guide)](https://elara-labs.github.io/code-context-engine/blog/what-is-code-context-engine.html) | Setup, tools, how it works, FAQ |
|
|
472
|
+
| [How to Save Claude Code Tokens](https://elara-labs.github.io/code-context-engine/blog/save-claude-code-tokens.html) | Cost breakdown and savings guide |
|
|
473
|
+
| [Benchmark Deep Dive](https://elara-labs.github.io/code-context-engine/blog/benchmark-fastapi.html) | Full FastAPI benchmark methodology |
|
|
474
|
+
| [Comparison with Alternatives](https://elara-labs.github.io/code-context-engine/comparison.html) | CCE vs Cursor, Aider, Continue, Greptile |
|
|
449
475
|
| [Examples](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/Examples.md) | Real conversations with Claude |
|
|
450
476
|
| [How It Works](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/How-It-Works.md) | Full 9-stage pipeline |
|
|
451
477
|
| [CLI Reference](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/CLI-Reference.md) | Every command with output |
|
|
452
478
|
| [Configuration](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/Configuration.md) | All config options |
|
|
453
|
-
| [Project Commands](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/Project-Commands.md) | Rules and preferences for Claude |
|
|
454
|
-
| [Tech Stack](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/Tech-Stack.md) | Every library and why |
|
|
455
479
|
|
|
456
480
|
---
|
|
457
481
|
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
<strong>Index your codebase. AI searches instead of re-reading files.<br>94% token savings, reproducibly benchmarked.</strong>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://elara-labs.github.io/code-context-engine/">Website</a> · <a href="https://elara-labs.github.io/code-context-engine/blog/what-is-code-context-engine.html">Guide</a> · <a href="https://elara-labs.github.io/code-context-engine/blog/benchmark-fastapi.html">Benchmark</a> · <a href="https://github.com/elara-labs/code-context-engine">GitHub</a>
|
|
13
|
+
</p>
|
|
14
|
+
|
|
11
15
|
<br>
|
|
12
16
|
|
|
13
17
|
<p align="center">
|
|
@@ -31,7 +35,8 @@
|
|
|
31
35
|
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/Cursor-000?style=for-the-badge" alt="Cursor"></a>
|
|
32
36
|
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/Gemini_CLI-4285F4?style=for-the-badge&logo=google&logoColor=white" alt="Gemini CLI"></a>
|
|
33
37
|
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/Codex_CLI-412991?style=for-the-badge" alt="Codex CLI"></a>
|
|
34
|
-
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/OpenCode-22C55E?style=for-the-badge&logo=gnometerminal&logoColor=white" alt="OpenCode"></a
|
|
38
|
+
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/OpenCode-22C55E?style=for-the-badge&logo=gnometerminal&logoColor=white" alt="OpenCode"></a>
|
|
39
|
+
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/Tabnine-4B32C3?style=for-the-badge&logo=tabnine&logoColor=white" alt="Tabnine"></a>
|
|
35
40
|
</p>
|
|
36
41
|
|
|
37
42
|
<p align="center">
|
|
@@ -105,6 +110,7 @@ Restart your editor. Done. Every question now hits the index instead of re-readi
|
|
|
105
110
|
| Gemini CLI | `.gemini/settings.json` | `GEMINI.md` |
|
|
106
111
|
| OpenAI Codex | `~/.codex/config.toml` (user-global, per-project section) | |
|
|
107
112
|
| OpenCode | `opencode.json` | |
|
|
113
|
+
| Tabnine | `.tabnine/agent/settings.json` | `TABNINE.md` |
|
|
108
114
|
|
|
109
115
|
Multiple editors in the same project? All get configured in one command.
|
|
110
116
|
|
|
@@ -147,7 +153,9 @@ With CCE: context_search "payment flow" = 800 tokens
|
|
|
147
153
|
|
|
148
154
|
We benchmarked CCE against [FastAPI](https://github.com/fastapi/fastapi) (53 source files, 180K tokens) with 20 real coding questions. No cherry-picking, no synthetic queries.
|
|
149
155
|
|
|
150
|
-
**Methodology:** For each query, "without CCE" means reading the full content of every file the query touches. "With CCE" means the relevant chunks after compression.
|
|
156
|
+
**Methodology:** For each query, "without CCE" means reading the full content of every file the query touches. "With CCE" means the relevant chunks after compression.
|
|
157
|
+
|
|
158
|
+
**Important baseline note:** The 94% number is measured against full-file reads, not against what Claude Code actually does. In practice, Claude Code already uses grep, partial file reads, and targeted tools, so the real-world savings compared to normal Claude Code behavior will be lower than 94%. We use full-file as the baseline because it's reproducible and deterministic (no agent behavior variability). The benchmark measures CCE's retrieval efficiency, not a head-to-head comparison with Claude Code's built-in exploration.
|
|
151
159
|
|
|
152
160
|
| Metric | Result |
|
|
153
161
|
|--------|--------|
|
|
@@ -377,7 +385,7 @@ No GPU required. Embedding model runs on CPU via ONNX Runtime.
|
|
|
377
385
|
|
|
378
386
|
## Supported Languages
|
|
379
387
|
|
|
380
|
-
**AST-aware chunking (10 extensions):**
|
|
388
|
+
**AST-aware chunking (tree-sitter parsed, 10 extensions):**
|
|
381
389
|
|
|
382
390
|
| Language | Extensions |
|
|
383
391
|
|----------|-----------|
|
|
@@ -389,7 +397,20 @@ No GPU required. Embedding model runs on CPU via ONNX Runtime.
|
|
|
389
397
|
| Rust | `.rs` |
|
|
390
398
|
| Java | `.java` |
|
|
391
399
|
|
|
392
|
-
**
|
|
400
|
+
**Language-aware fallback chunking (40+ extensions):**
|
|
401
|
+
|
|
402
|
+
| Category | Languages |
|
|
403
|
+
|----------|-----------|
|
|
404
|
+
| Web | HTML, CSS, SCSS, LESS, Vue, Svelte |
|
|
405
|
+
| Systems | C, C++, C#, Zig, Nim |
|
|
406
|
+
| Mobile | Swift, Kotlin, Dart |
|
|
407
|
+
| Functional | Haskell, Scala, Clojure, Elixir, Erlang, F# |
|
|
408
|
+
| Scripting | Ruby, Perl, Lua, R, Bash/Zsh |
|
|
409
|
+
| Data/Config | JSON, YAML, TOML, XML, SQL, GraphQL, Protobuf |
|
|
410
|
+
| DevOps | Terraform, HCL, Dockerfile |
|
|
411
|
+
| Docs | Markdown |
|
|
412
|
+
|
|
413
|
+
All other text files are chunked by line range. Binary files are skipped.
|
|
393
414
|
|
|
394
415
|
---
|
|
395
416
|
|
|
@@ -397,12 +418,14 @@ No GPU required. Embedding model runs on CPU via ONNX Runtime.
|
|
|
397
418
|
|
|
398
419
|
| Page | Content |
|
|
399
420
|
|------|---------|
|
|
421
|
+
| [What is CCE? (Complete Guide)](https://elara-labs.github.io/code-context-engine/blog/what-is-code-context-engine.html) | Setup, tools, how it works, FAQ |
|
|
422
|
+
| [How to Save Claude Code Tokens](https://elara-labs.github.io/code-context-engine/blog/save-claude-code-tokens.html) | Cost breakdown and savings guide |
|
|
423
|
+
| [Benchmark Deep Dive](https://elara-labs.github.io/code-context-engine/blog/benchmark-fastapi.html) | Full FastAPI benchmark methodology |
|
|
424
|
+
| [Comparison with Alternatives](https://elara-labs.github.io/code-context-engine/comparison.html) | CCE vs Cursor, Aider, Continue, Greptile |
|
|
400
425
|
| [Examples](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/Examples.md) | Real conversations with Claude |
|
|
401
426
|
| [How It Works](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/How-It-Works.md) | Full 9-stage pipeline |
|
|
402
427
|
| [CLI Reference](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/CLI-Reference.md) | Every command with output |
|
|
403
428
|
| [Configuration](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/Configuration.md) | All config options |
|
|
404
|
-
| [Project Commands](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/Project-Commands.md) | Rules and preferences for Claude |
|
|
405
|
-
| [Tech Stack](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/Tech-Stack.md) | Every library and why |
|
|
406
429
|
|
|
407
430
|
---
|
|
408
431
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "code-context-engine"
|
|
3
|
-
version = "0.4.
|
|
4
|
-
description = "Index your codebase
|
|
3
|
+
version = "0.4.19"
|
|
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"
|
|
7
7
|
authors = [
|
|
8
8
|
{name = "Fazle Elahee", email = "felahee@gmail.com"},
|
|
9
9
|
{name = "Raj", email = "rajkumar.sakti@gmail.com"},
|
|
10
10
|
]
|
|
11
|
-
keywords = ["claude", "
|
|
11
|
+
keywords = ["claude-code", "save-tokens", "token-savings", "mcp-server", "claude", "cursor", "code-indexing", "reduce-ai-costs", "llm", "vector-search", "ai-coding"]
|
|
12
12
|
classifiers = [
|
|
13
13
|
"Development Status :: 4 - Beta",
|
|
14
14
|
"Intended Audience :: Developers",
|
|
@@ -57,6 +57,7 @@ dev = [
|
|
|
57
57
|
"pytest-aiohttp>=1.0",
|
|
58
58
|
"pytest-cov>=5.0",
|
|
59
59
|
"pytest-xdist>=3.5",
|
|
60
|
+
"ruff>=0.13",
|
|
60
61
|
]
|
|
61
62
|
http = [] # back-compat: aiohttp is now a core dependency
|
|
62
63
|
|
|
@@ -94,4 +95,33 @@ dev = [
|
|
|
94
95
|
"pytest-asyncio>=1.3.0",
|
|
95
96
|
"pytest-aiohttp>=1.0",
|
|
96
97
|
"pytest-xdist>=3.5",
|
|
98
|
+
"ruff>=0.13",
|
|
97
99
|
]
|
|
100
|
+
|
|
101
|
+
[tool.ruff]
|
|
102
|
+
line-length = 100
|
|
103
|
+
target-version = "py311"
|
|
104
|
+
extend-exclude = ["dist", "build", ".venv"]
|
|
105
|
+
|
|
106
|
+
[tool.ruff.lint]
|
|
107
|
+
# Default ruleset — pycodestyle errors (E) + pyflakes (F). Conservative
|
|
108
|
+
# starting point; can be expanded later (I/imports, B/bugbear, UP/pyupgrade)
|
|
109
|
+
# once the team is comfortable with the baseline. Selected rules are the
|
|
110
|
+
# ones that catch real bugs (unused imports, undefined names, redefined
|
|
111
|
+
# symbols) rather than stylistic preferences.
|
|
112
|
+
select = ["E", "F", "W"]
|
|
113
|
+
# E501 (line-too-long) is enforced via `line-length` above; default is 88
|
|
114
|
+
# but we use 100 to match the existing codebase. Ignore a few rules that
|
|
115
|
+
# are noisy in async/test code:
|
|
116
|
+
ignore = [
|
|
117
|
+
"E501", # line-too-long: handled by formatter, not all old code wrapped
|
|
118
|
+
"E402", # module-import-not-at-top: legitimate inside conditional imports
|
|
119
|
+
"E741", # ambiguous-variable-name (l/I/O): one-off in third-party-style code
|
|
120
|
+
]
|
|
121
|
+
|
|
122
|
+
[tool.ruff.lint.per-file-ignores]
|
|
123
|
+
# Tests import fixtures and helpers that look unused but trigger collection.
|
|
124
|
+
"tests/**" = ["F811"]
|
|
125
|
+
# __init__.py files are allowed to re-export (those imports look unused but
|
|
126
|
+
# are part of the public surface of the package).
|
|
127
|
+
"**/__init__.py" = ["F401"]
|
{code_context_engine-0.4.18 → code_context_engine-0.4.19/src/code_context_engine.egg-info}/PKG-INFO
RENAMED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-context-engine
|
|
3
|
-
Version: 0.4.
|
|
4
|
-
Summary: Index your codebase
|
|
3
|
+
Version: 0.4.19
|
|
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
|
|
7
7
|
Project-URL: Homepage, https://github.com/elara-labs/code-context-engine
|
|
8
8
|
Project-URL: Repository, https://github.com/elara-labs/code-context-engine
|
|
9
9
|
Project-URL: Issues, https://github.com/elara-labs/code-context-engine/issues
|
|
10
|
-
Keywords: claude,
|
|
10
|
+
Keywords: claude-code,save-tokens,token-savings,mcp-server,claude,cursor,code-indexing,reduce-ai-costs,llm,vector-search,ai-coding
|
|
11
11
|
Classifier: Development Status :: 4 - Beta
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -44,6 +44,7 @@ Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
|
|
|
44
44
|
Requires-Dist: pytest-aiohttp>=1.0; extra == "dev"
|
|
45
45
|
Requires-Dist: pytest-cov>=5.0; extra == "dev"
|
|
46
46
|
Requires-Dist: pytest-xdist>=3.5; extra == "dev"
|
|
47
|
+
Requires-Dist: ruff>=0.13; extra == "dev"
|
|
47
48
|
Provides-Extra: http
|
|
48
49
|
Dynamic: license-file
|
|
49
50
|
|
|
@@ -57,6 +58,10 @@ Dynamic: license-file
|
|
|
57
58
|
<strong>Index your codebase. AI searches instead of re-reading files.<br>94% token savings, reproducibly benchmarked.</strong>
|
|
58
59
|
</p>
|
|
59
60
|
|
|
61
|
+
<p align="center">
|
|
62
|
+
<a href="https://elara-labs.github.io/code-context-engine/">Website</a> · <a href="https://elara-labs.github.io/code-context-engine/blog/what-is-code-context-engine.html">Guide</a> · <a href="https://elara-labs.github.io/code-context-engine/blog/benchmark-fastapi.html">Benchmark</a> · <a href="https://github.com/elara-labs/code-context-engine">GitHub</a>
|
|
63
|
+
</p>
|
|
64
|
+
|
|
60
65
|
<br>
|
|
61
66
|
|
|
62
67
|
<p align="center">
|
|
@@ -80,7 +85,8 @@ Dynamic: license-file
|
|
|
80
85
|
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/Cursor-000?style=for-the-badge" alt="Cursor"></a>
|
|
81
86
|
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/Gemini_CLI-4285F4?style=for-the-badge&logo=google&logoColor=white" alt="Gemini CLI"></a>
|
|
82
87
|
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/Codex_CLI-412991?style=for-the-badge" alt="Codex CLI"></a>
|
|
83
|
-
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/OpenCode-22C55E?style=for-the-badge&logo=gnometerminal&logoColor=white" alt="OpenCode"></a
|
|
88
|
+
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/OpenCode-22C55E?style=for-the-badge&logo=gnometerminal&logoColor=white" alt="OpenCode"></a>
|
|
89
|
+
<a href="#install-and-see-savings-in-60-seconds"><img src="https://img.shields.io/badge/Tabnine-4B32C3?style=for-the-badge&logo=tabnine&logoColor=white" alt="Tabnine"></a>
|
|
84
90
|
</p>
|
|
85
91
|
|
|
86
92
|
<p align="center">
|
|
@@ -154,6 +160,7 @@ Restart your editor. Done. Every question now hits the index instead of re-readi
|
|
|
154
160
|
| Gemini CLI | `.gemini/settings.json` | `GEMINI.md` |
|
|
155
161
|
| OpenAI Codex | `~/.codex/config.toml` (user-global, per-project section) | |
|
|
156
162
|
| OpenCode | `opencode.json` | |
|
|
163
|
+
| Tabnine | `.tabnine/agent/settings.json` | `TABNINE.md` |
|
|
157
164
|
|
|
158
165
|
Multiple editors in the same project? All get configured in one command.
|
|
159
166
|
|
|
@@ -196,7 +203,9 @@ With CCE: context_search "payment flow" = 800 tokens
|
|
|
196
203
|
|
|
197
204
|
We benchmarked CCE against [FastAPI](https://github.com/fastapi/fastapi) (53 source files, 180K tokens) with 20 real coding questions. No cherry-picking, no synthetic queries.
|
|
198
205
|
|
|
199
|
-
**Methodology:** For each query, "without CCE" means reading the full content of every file the query touches. "With CCE" means the relevant chunks after compression.
|
|
206
|
+
**Methodology:** For each query, "without CCE" means reading the full content of every file the query touches. "With CCE" means the relevant chunks after compression.
|
|
207
|
+
|
|
208
|
+
**Important baseline note:** The 94% number is measured against full-file reads, not against what Claude Code actually does. In practice, Claude Code already uses grep, partial file reads, and targeted tools, so the real-world savings compared to normal Claude Code behavior will be lower than 94%. We use full-file as the baseline because it's reproducible and deterministic (no agent behavior variability). The benchmark measures CCE's retrieval efficiency, not a head-to-head comparison with Claude Code's built-in exploration.
|
|
200
209
|
|
|
201
210
|
| Metric | Result |
|
|
202
211
|
|--------|--------|
|
|
@@ -426,7 +435,7 @@ No GPU required. Embedding model runs on CPU via ONNX Runtime.
|
|
|
426
435
|
|
|
427
436
|
## Supported Languages
|
|
428
437
|
|
|
429
|
-
**AST-aware chunking (10 extensions):**
|
|
438
|
+
**AST-aware chunking (tree-sitter parsed, 10 extensions):**
|
|
430
439
|
|
|
431
440
|
| Language | Extensions |
|
|
432
441
|
|----------|-----------|
|
|
@@ -438,7 +447,20 @@ No GPU required. Embedding model runs on CPU via ONNX Runtime.
|
|
|
438
447
|
| Rust | `.rs` |
|
|
439
448
|
| Java | `.java` |
|
|
440
449
|
|
|
441
|
-
**
|
|
450
|
+
**Language-aware fallback chunking (40+ extensions):**
|
|
451
|
+
|
|
452
|
+
| Category | Languages |
|
|
453
|
+
|----------|-----------|
|
|
454
|
+
| Web | HTML, CSS, SCSS, LESS, Vue, Svelte |
|
|
455
|
+
| Systems | C, C++, C#, Zig, Nim |
|
|
456
|
+
| Mobile | Swift, Kotlin, Dart |
|
|
457
|
+
| Functional | Haskell, Scala, Clojure, Elixir, Erlang, F# |
|
|
458
|
+
| Scripting | Ruby, Perl, Lua, R, Bash/Zsh |
|
|
459
|
+
| Data/Config | JSON, YAML, TOML, XML, SQL, GraphQL, Protobuf |
|
|
460
|
+
| DevOps | Terraform, HCL, Dockerfile |
|
|
461
|
+
| Docs | Markdown |
|
|
462
|
+
|
|
463
|
+
All other text files are chunked by line range. Binary files are skipped.
|
|
442
464
|
|
|
443
465
|
---
|
|
444
466
|
|
|
@@ -446,12 +468,14 @@ No GPU required. Embedding model runs on CPU via ONNX Runtime.
|
|
|
446
468
|
|
|
447
469
|
| Page | Content |
|
|
448
470
|
|------|---------|
|
|
471
|
+
| [What is CCE? (Complete Guide)](https://elara-labs.github.io/code-context-engine/blog/what-is-code-context-engine.html) | Setup, tools, how it works, FAQ |
|
|
472
|
+
| [How to Save Claude Code Tokens](https://elara-labs.github.io/code-context-engine/blog/save-claude-code-tokens.html) | Cost breakdown and savings guide |
|
|
473
|
+
| [Benchmark Deep Dive](https://elara-labs.github.io/code-context-engine/blog/benchmark-fastapi.html) | Full FastAPI benchmark methodology |
|
|
474
|
+
| [Comparison with Alternatives](https://elara-labs.github.io/code-context-engine/comparison.html) | CCE vs Cursor, Aider, Continue, Greptile |
|
|
449
475
|
| [Examples](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/Examples.md) | Real conversations with Claude |
|
|
450
476
|
| [How It Works](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/How-It-Works.md) | Full 9-stage pipeline |
|
|
451
477
|
| [CLI Reference](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/CLI-Reference.md) | Every command with output |
|
|
452
478
|
| [Configuration](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/Configuration.md) | All config options |
|
|
453
|
-
| [Project Commands](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/Project-Commands.md) | Rules and preferences for Claude |
|
|
454
|
-
| [Tech Stack](https://github.com/elara-labs/code-context-engine/blob/main/docs/wiki/Tech-Stack.md) | Every library and why |
|
|
455
479
|
|
|
456
480
|
---
|
|
457
481
|
|
|
@@ -47,6 +47,7 @@ src/context_engine/integration/session_capture.py
|
|
|
47
47
|
src/context_engine/memory/__init__.py
|
|
48
48
|
src/context_engine/memory/compressor.py
|
|
49
49
|
src/context_engine/memory/db.py
|
|
50
|
+
src/context_engine/memory/decision_extractor.py
|
|
50
51
|
src/context_engine/memory/extractive.py
|
|
51
52
|
src/context_engine/memory/grammar.py
|
|
52
53
|
src/context_engine/memory/hook_installer.py
|