code-context-control 2.28.2__tar.gz → 2.28.3__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_control-2.28.3/PKG-INFO +331 -0
- code_context_control-2.28.3/README.md +270 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/c3.py +1 -1
- code_context_control-2.28.3/code_context_control.egg-info/PKG-INFO +331 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/pyproject.toml +1 -1
- code_context_control-2.28.2/PKG-INFO +0 -249
- code_context_control-2.28.2/README.md +0 -188
- code_context_control-2.28.2/code_context_control.egg-info/PKG-INFO +0 -249
- {code_context_control-2.28.2 → code_context_control-2.28.3}/LICENSE +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/__init__.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/_hook_utils.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/commands/__init__.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/commands/common.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/commands/parser.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/docs.html +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/edits.html +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/hook_auto_snapshot.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/hook_c3_signal.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/hook_c3read.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/hook_edit_ledger.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/hook_edit_unlock.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/hook_filter.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/hook_ghost_files.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/hook_pretool_enforce.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/hook_read.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/hook_session_stats.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/hook_terse_advisor.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/hub.html +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/hub_server.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/mcp_proxy.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/mcp_server.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/server.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/__init__.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/_helpers.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/agent.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/compress.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/delegate.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/edit.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/edits.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/filter.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/impact.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/memory.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/read.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/search.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/session.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/shell.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/status.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/tools/validate.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui/api.js +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui/app.js +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui/components/chat.js +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui/components/dashboard.js +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui/components/edits.js +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui/components/instructions.js +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui/components/memory.js +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui/components/sessions.js +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui/components/settings.js +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui/components/sidebar.js +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui/icons.js +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui/shared.js +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui/theme.js +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui.html +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui_legacy.html +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/cli/ui_nano.html +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/code_context_control.egg-info/SOURCES.txt +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/code_context_control.egg-info/dependency_links.txt +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/code_context_control.egg-info/entry_points.txt +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/code_context_control.egg-info/requires.txt +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/code_context_control.egg-info/top_level.txt +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/core/__init__.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/core/config.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/core/ide.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/__init__.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/config.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/oracle.html +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/oracle_server.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/services/__init__.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/services/c3_bridge.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/services/chat_engine.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/services/chat_store.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/services/cross_memory.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/services/federated_graph.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/services/health_checker.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/services/insight_engine.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/services/memory_reader.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/services/memory_writer.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/services/ollama_bridge.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/services/project_scanner.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/oracle/services/review_agent.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/__init__.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/activity_log.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/agent_base.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/agents.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/auto_memory.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/bench/__init__.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/bench/external/__init__.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/bench/external/aider_polyglot.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/bench/external/swe_bench.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/benchmark_dashboard.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/claude_md.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/compressor.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/context_snapshot.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/conversation_store.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/doc_index.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/e2e_benchmark.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/e2e_evaluator.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/e2e_tasks.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/edit_ledger.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/embedding_index.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/error_reporting.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/file_memory.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/hub_service.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/indexer.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/memory.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/memory_consolidator.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/memory_graph.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/memory_grounder.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/memory_scorer.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/metrics.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/notifications.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/ollama_client.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/output_filter.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/parser.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/project_manager.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/protocol.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/proxy_state.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/retrieval_broker.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/router.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/runtime.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/session_benchmark.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/session_manager.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/session_preloader.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/text_index.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/tool_classifier.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/transcript_index.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/validation_cache.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/vector_store.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/version_tracker.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/services/watcher.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/setup.cfg +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_aider_polyglot.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_c3_shell.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_cli_smoke.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_e2e_benchmark.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_edit_normalization.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_enforcement_flip.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_federated_graph.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_ghost_files.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_hub_server_smoke.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_mcp_server_smoke.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_memory_graph_api.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_memory_system.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_notification_discipline.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_output_filter.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_permissions.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_project_manager.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_session_benchmark.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_session_budget.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_swe_bench.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_validate.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tests/test_windows_reliability.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/__init__.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/backend.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/main.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/screens/__init__.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/screens/benchmark_view.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/screens/claudemd_view.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/screens/compress_view.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/screens/index_view.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/screens/init_view.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/screens/mcp_view.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/screens/optimize_view.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/screens/pipe_view.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/screens/projects_view.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/screens/search_view.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/screens/session_view.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/screens/stats.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/screens/ui_view.py +0 -0
- {code_context_control-2.28.2 → code_context_control-2.28.3}/tui/theme.tcss +0 -0
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: code-context-control
|
|
3
|
+
Version: 2.28.3
|
|
4
|
+
Summary: Local code-intelligence layer for AI coding tools (Claude Code, Codex, Gemini, Copilot). Retrieve less, read less, edit safer.
|
|
5
|
+
Author-email: Dimitri Tselenchuk <dtselenc@gmail.com>
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/drknowhow/code-context-control
|
|
8
|
+
Project-URL: Documentation, https://github.com/drknowhow/code-context-control#readme
|
|
9
|
+
Project-URL: Repository, https://github.com/drknowhow/code-context-control
|
|
10
|
+
Project-URL: Changelog, https://github.com/drknowhow/code-context-control/blob/main/CHANGELOG.md
|
|
11
|
+
Project-URL: Issues, https://github.com/drknowhow/code-context-control/issues
|
|
12
|
+
Keywords: claude,claude-code,mcp,ai,code-intelligence,code-context,developer-tools,llm-tools
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Topic :: Software Development
|
|
21
|
+
Classifier: Topic :: Software Development :: Code Generators
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Requires-Python: >=3.10
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSE
|
|
26
|
+
Requires-Dist: tiktoken>=0.7.0
|
|
27
|
+
Requires-Dist: fastmcp>=2.0.0
|
|
28
|
+
Requires-Dist: watchdog>=4.0.0
|
|
29
|
+
Requires-Dist: tree-sitter>=0.22.0
|
|
30
|
+
Requires-Dist: tree-sitter-python>=0.21.0
|
|
31
|
+
Requires-Dist: tree-sitter-javascript>=0.21.0
|
|
32
|
+
Requires-Dist: tree-sitter-typescript>=0.21.0
|
|
33
|
+
Requires-Dist: tree-sitter-html>=0.21.0
|
|
34
|
+
Requires-Dist: tree-sitter-markdown>=0.3.2
|
|
35
|
+
Requires-Dist: tree-sitter-css>=0.21.0
|
|
36
|
+
Requires-Dist: tree-sitter-go>=0.21.0
|
|
37
|
+
Requires-Dist: tree-sitter-rust>=0.21.0
|
|
38
|
+
Requires-Dist: tree-sitter-json>=0.21.0
|
|
39
|
+
Requires-Dist: tree-sitter-yaml>=0.6.0
|
|
40
|
+
Requires-Dist: flask>=3.0.0
|
|
41
|
+
Requires-Dist: rich>=13.0.0
|
|
42
|
+
Requires-Dist: click>=8.0.0
|
|
43
|
+
Requires-Dist: pyyaml>=6.0.0
|
|
44
|
+
Provides-Extra: vector
|
|
45
|
+
Requires-Dist: scikit-learn>=1.3.0; extra == "vector"
|
|
46
|
+
Requires-Dist: numpy>=1.24.0; extra == "vector"
|
|
47
|
+
Requires-Dist: chromadb>=0.4.24; extra == "vector"
|
|
48
|
+
Provides-Extra: tui
|
|
49
|
+
Requires-Dist: textual>=0.50.0; extra == "tui"
|
|
50
|
+
Provides-Extra: telemetry
|
|
51
|
+
Requires-Dist: sentry-sdk>=2.0.0; extra == "telemetry"
|
|
52
|
+
Provides-Extra: dev
|
|
53
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
54
|
+
Requires-Dist: pyright>=1.1.350; extra == "dev"
|
|
55
|
+
Requires-Dist: ruff>=0.6.0; extra == "dev"
|
|
56
|
+
Requires-Dist: build>=1.0.0; extra == "dev"
|
|
57
|
+
Requires-Dist: twine>=5.0.0; extra == "dev"
|
|
58
|
+
Requires-Dist: numpy>=1.24.0; extra == "dev"
|
|
59
|
+
Requires-Dist: scikit-learn>=1.3.0; extra == "dev"
|
|
60
|
+
Dynamic: license-file
|
|
61
|
+
|
|
62
|
+
<h1 align="center">Code Context Control</h1>
|
|
63
|
+
|
|
64
|
+
<p align="center">
|
|
65
|
+
<strong>The local code-intelligence layer for AI coding tools.</strong><br>
|
|
66
|
+
Stop burning tokens on whole-file reads, blind greps, and unbounded log dumps.<br>
|
|
67
|
+
Works with Claude Code, Codex, Gemini CLI, Copilot, Cursor, and Antigravity.
|
|
68
|
+
</p>
|
|
69
|
+
|
|
70
|
+
<p align="center">
|
|
71
|
+
<a href="https://pypi.org/project/code-context-control/"><img alt="PyPI" src="https://img.shields.io/pypi/v/code-context-control?color=blue&logo=pypi&logoColor=white"></a>
|
|
72
|
+
<a href="LICENSE"><img alt="License: Apache-2.0" src="https://img.shields.io/badge/license-Apache--2.0-blue.svg"></a>
|
|
73
|
+
<img alt="Python 3.10+" src="https://img.shields.io/badge/python-3.10%2B-blue.svg">
|
|
74
|
+
<img alt="Platforms" src="https://img.shields.io/badge/platform-windows%20%7C%20macos%20%7C%20linux-lightgrey">
|
|
75
|
+
<img alt="Status: Beta" src="https://img.shields.io/badge/status-beta-yellow">
|
|
76
|
+
</p>
|
|
77
|
+
|
|
78
|
+
<p align="center">
|
|
79
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_dashboard.png" alt="C3 per-project dashboard" width="900">
|
|
80
|
+
</p>
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## The problem
|
|
85
|
+
|
|
86
|
+
LLM-driven coding tools have one expensive failure mode: **they read too much.** They `cat` whole files, regex the entire repo, dump 10k-line logs into context, edit-and-pray, and burn through budget before they touch a single line of code. On a half-day session you can spend $20+ on token waste that adds zero value.
|
|
87
|
+
|
|
88
|
+
## What C3 does about it
|
|
89
|
+
|
|
90
|
+
A thin **local** layer that sits between your IDE and your repo. Every AI tool call gets routed through narrow, surgical operations instead of broad, wasteful ones:
|
|
91
|
+
|
|
92
|
+
| Without C3 | With C3 |
|
|
93
|
+
|---|---|
|
|
94
|
+
| `Read` the whole 2,000-line file | `c3_compress` returns a 70%-smaller structural map → `c3_read(symbols=...)` for the exact function |
|
|
95
|
+
| `Grep` the whole repo blindly | `c3_search` returns ranked candidates with TF-IDF + symbol awareness |
|
|
96
|
+
| Dump full `pytest` output into the prompt | `c3_filter` distills 500 lines → 30 actionable ones |
|
|
97
|
+
| Edit, hope it compiled | `c3_edit` writes via a ledger + `c3_validate` runs `pyright`/`tsc` automatically |
|
|
98
|
+
| `Bash` test runs that hang on Windows | `c3_shell` returns structured `{exit_code, stdout, stderr, duration}` with auto-filter |
|
|
99
|
+
| Lose all context on `/clear` | `c3_session(snapshot)` + `c3_memory` persist decisions across sessions |
|
|
100
|
+
| Re-explain the project every session | Auto-synced `CLAUDE.md` / `AGENTS.md` / `GEMINI.md` / `copilot-instructions.md` from a single source of truth |
|
|
101
|
+
|
|
102
|
+
Everything runs **locally**. No source code, prompts, or model output ever leaves your machine unless you explicitly opt into a third-party model API.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Install
|
|
107
|
+
|
|
108
|
+
Requires Python 3.10+.
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
pip install code-context-control
|
|
112
|
+
c3 init /path/to/your/project
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
The interactive setup walks you through:
|
|
116
|
+
1. **IDE selection** (Claude Code CLI/App, Codex CLI, Gemini CLI, VS Code, Cursor, Antigravity, or Custom)
|
|
117
|
+
2. Optional local `git init`
|
|
118
|
+
3. MCP server registration (auto-wired into your IDE)
|
|
119
|
+
4. (Claude Code only) Permission tier selection
|
|
120
|
+
|
|
121
|
+
Headless / scripted install:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
c3 init /path/to/project --force --ide claude --mcp-mode direct --permissions standard
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Or install from source:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
git clone https://github.com/drknowhow/code-context-control.git
|
|
131
|
+
cd code-context-control
|
|
132
|
+
pip install .[tui] # add the optional Textual TUI
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## A tour of the UI
|
|
138
|
+
|
|
139
|
+
C3 ships with two web UIs (no electron, no install — pure Flask + vanilla JS):
|
|
140
|
+
|
|
141
|
+
- **The Hub** (`c3-hub`, port 3330) — manage all your C3 projects from one dashboard.
|
|
142
|
+
- **The per-project UI** (`c3 ui`, per-project port) — deep dive into one project's session, memory, edits, instructions, and settings.
|
|
143
|
+
|
|
144
|
+
### 1. Project Hub — multi-project mission control
|
|
145
|
+
|
|
146
|
+
<p align="center">
|
|
147
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/hub_projects.png" alt="C3 Project Hub - all projects" width="900">
|
|
148
|
+
</p>
|
|
149
|
+
|
|
150
|
+
Every C3-initialized project on your machine appears here. Group them by tag, filter by active/idle, see which IDE each project uses, jump straight into your IDE with one click, and monitor session activity at a glance. Each project card shows live status, version, MCP wiring mode, port, and last activity.
|
|
151
|
+
|
|
152
|
+
Same data, grid layout:
|
|
153
|
+
|
|
154
|
+
<p align="center">
|
|
155
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/hub_projects_grid.png" alt="C3 Project Hub - grid view" width="900">
|
|
156
|
+
</p>
|
|
157
|
+
|
|
158
|
+
**Open in your IDE of choice** — C3 auto-detects which CLIs you have installed and gives you one-click launchers:
|
|
159
|
+
|
|
160
|
+
<p align="center">
|
|
161
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/hub_ide_config.png" alt="C3 Hub IDE picker" width="700">
|
|
162
|
+
</p>
|
|
163
|
+
|
|
164
|
+
Hub runs as a **background Windows service** if you want it to (no terminal, auto-starts on login):
|
|
165
|
+
|
|
166
|
+
<p align="center">
|
|
167
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/hub_settings.png" alt="C3 Hub settings" width="700">
|
|
168
|
+
</p>
|
|
169
|
+
|
|
170
|
+
### 2. Per-project dashboard — at-a-glance health
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
c3 ui # opens http://127.0.0.1:3333
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
<p align="center">
|
|
177
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_dashboard.png" alt="C3 per-project dashboard" width="900">
|
|
178
|
+
</p>
|
|
179
|
+
|
|
180
|
+
Real metrics from a real project: **448K tokens saved** (89.9% rate), 208 files indexed, 20 sessions, codebase breakdown by language, current-session live counters (in/out tokens, cache reads, services online), and a stream of recent tool calls and file changes.
|
|
181
|
+
|
|
182
|
+
### 3. Edit Ledger — every AI-driven edit tracked
|
|
183
|
+
|
|
184
|
+
<p align="center">
|
|
185
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_edits.png" alt="C3 Edit Ledger" width="900">
|
|
186
|
+
</p>
|
|
187
|
+
|
|
188
|
+
A complete audit trail of every file change made via `c3_edit` (or via Bash git commands intercepted by the C3 shell). Each entry shows timestamp, file, version number, change summary, and +/- line counts. Filter by file path, switch to **Stats** view for aggregate trends. Backed by a content-addressable store so any prior version is one click away.
|
|
189
|
+
|
|
190
|
+
### 4. Memory — durable knowledge across sessions
|
|
191
|
+
|
|
192
|
+
<p align="center">
|
|
193
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_memory.png" alt="C3 Memory" width="900">
|
|
194
|
+
</p>
|
|
195
|
+
|
|
196
|
+
A categorized store of facts the AI has learned about your project (architecture decisions, conventions, gotchas, references). Categories, full-text + semantic search, decision tracking, list ↔ graph toggle, and one-click Markdown export. Backed by TF-IDF + optional Ollama embeddings + `chromadb` (when the `[vector]` extra is installed).
|
|
197
|
+
|
|
198
|
+
### 5. Sessions — history, decisions, costs
|
|
199
|
+
|
|
200
|
+
<p align="center">
|
|
201
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_sessions.png" alt="C3 Sessions" width="900">
|
|
202
|
+
</p>
|
|
203
|
+
|
|
204
|
+
Every session you've ever run, with duration, decision count, file count, tool calls, token usage, and cost. Captured automatically via the IDE's Stop hook — nothing to remember to click. Click any row to see the full task list, decisions, and file diffs from that session.
|
|
205
|
+
|
|
206
|
+
### 6. Instructions — sync your project context across IDEs
|
|
207
|
+
|
|
208
|
+
<p align="center">
|
|
209
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_instructions.png" alt="C3 Instructions" width="900">
|
|
210
|
+
</p>
|
|
211
|
+
|
|
212
|
+
Manage `CLAUDE.md`, `AGENTS.md` (Codex), `GEMINI.md`, and `.github/copilot-instructions.md` from one editor. Generate from project state, run a Health Check (drift detection vs the actual codebase), Compact stale sections, or Promote insights captured during sessions. **One source of truth** instead of four out-of-sync files.
|
|
213
|
+
|
|
214
|
+
### 7. Chat — browse prior AI conversations
|
|
215
|
+
|
|
216
|
+
<p align="center">
|
|
217
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_chat.png" alt="C3 Chat" width="900">
|
|
218
|
+
</p>
|
|
219
|
+
|
|
220
|
+
C3 syncs and indexes your IDE's chat transcripts (currently Claude Code; others coming). Filter by source, search, click a row to view the full conversation. Useful for "wait, what did we decide about X last week?".
|
|
221
|
+
|
|
222
|
+
### 8. Settings — feature flags + integrations
|
|
223
|
+
|
|
224
|
+
<p align="center">
|
|
225
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_settings.png" alt="C3 Settings" width="900">
|
|
226
|
+
</p>
|
|
227
|
+
|
|
228
|
+
Per-project knobs for everything: budget thresholds, feature flag mode, edit ledger, background agents, delegate routing, Codex/Gemini integrations, agent workflows, proxy mode, MCP servers, Claude Code permission tier, and more.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## The MCP tool suite
|
|
233
|
+
|
|
234
|
+
C3 exposes 14 tools as a native MCP server. Your IDE calls them directly:
|
|
235
|
+
|
|
236
|
+
| Tool | What it does |
|
|
237
|
+
|---|---|
|
|
238
|
+
| `c3_search` | TF-IDF / regex / semantic search ranked across the indexed repo |
|
|
239
|
+
| `c3_compress` | AST-based file map (modes: `map`, `dense_map`, `smart`, `diff`, `bug_scan`, `ast`) |
|
|
240
|
+
| `c3_read` | Surgical reads — by symbol name, regex, or line ranges |
|
|
241
|
+
| `c3_edit` | Atomic patch with automatic ledger logging + content-addressable history |
|
|
242
|
+
| `c3_validate` | Type / syntax check (pyright, tsc, ruff, etc. — auto-detected) |
|
|
243
|
+
| `c3_filter` | Distill long terminal/log output via pattern + LLM summarization |
|
|
244
|
+
| `c3_shell` | Run shell commands with structured returns + auto-filtered stdout |
|
|
245
|
+
| `c3_status` | Project health, token budget, notifications, ghost-file detection |
|
|
246
|
+
| `c3_memory` | Persistent fact store with categories, recall, and graph queries |
|
|
247
|
+
| `c3_session` | Snapshot, restore, log decisions, compact session history |
|
|
248
|
+
| `c3_impact` | Blast-radius analysis before edits to shared symbols |
|
|
249
|
+
| `c3_delegate` | Offload heavy work to local Ollama / Codex / Gemini / etc. |
|
|
250
|
+
| `c3_agent` | Multi-step agentic workflows (review, investigate, refactor) |
|
|
251
|
+
| `c3_edits` | Edit-ledger queries + version diffs + restore points |
|
|
252
|
+
|
|
253
|
+
Every tool is **read-only safe in plan mode** (except `c3_edit` and `c3_shell`).
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## Tiered local AI (optional)
|
|
258
|
+
|
|
259
|
+
C3 ships with optional Ollama integration so the primary model doesn't have to waste context on grunt work:
|
|
260
|
+
|
|
261
|
+
| Tier | Model class | Used for | Latency target |
|
|
262
|
+
|---|---|---|---|
|
|
263
|
+
| **Nano** | `qwen2:0.5b` | Intent routing, classification | <100 ms |
|
|
264
|
+
| **Micro** | `deepseek-r1:1.5b` | Last-turn Q&A, summarization | <1 s |
|
|
265
|
+
| **Base** | `llama3.2:3b`+ | Code analysis, technical reasoning | <5 s |
|
|
266
|
+
|
|
267
|
+
```text
|
|
268
|
+
c3_delegate(task="summarize this 4k-line stacktrace", backend="ollama")
|
|
269
|
+
c3_delegate(task="rate-limit refactor", backend="auto") # picks the right tier
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
Ollama is **fully optional**. C3 works without it.
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Permissions (Claude Code)
|
|
277
|
+
|
|
278
|
+
C3 manages `.claude/settings.local.json` for you, with three sensible tiers:
|
|
279
|
+
|
|
280
|
+
| Tier | What it allows |
|
|
281
|
+
|---|---|
|
|
282
|
+
| `read-only` | Exploration only — no file writes, no git writes, no installs |
|
|
283
|
+
| `standard` | Normal dev workflow — edit, build, test, local git **(recommended)** |
|
|
284
|
+
| `permissive` | Full trust — everything except destructive ops |
|
|
285
|
+
|
|
286
|
+
All tiers always allow C3 MCP tools and include a hard deny list (`rm -rf`, `sudo`, `git push --force`, etc.).
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
c3 permissions show
|
|
290
|
+
c3 permissions standard
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## Benchmarks
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
c3 benchmark /path/to/project
|
|
299
|
+
c3 bench aider # Aider Polyglot suite
|
|
300
|
+
c3 bench swe # SWE-bench Lite
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
Real-world A/B tests: same task, with and without C3 mounted. Reports include token deltas, cost deltas, win rates, tool-usage analysis, and per-task breakdowns. See the **Benchmark Dashboard** under Settings → Background Agents in the Hub.
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## Security & privacy
|
|
308
|
+
|
|
309
|
+
- **Hub binds to `127.0.0.1` by default.** Setting `host` to a non-loopback interface in `~/.c3/hub_config.json` is opt-in and warned at startup. **Do not expose the Hub to a public network without auth/TLS in front of it.**
|
|
310
|
+
- **No telemetry by default.** The OSS package collects nothing. Opt-in Sentry crash reporting requires the `[telemetry]` extra plus both `SENTRY_DSN` and `C3_TELEMETRY_OPT_IN=1`. Even when enabled, request bodies, local variables, and prompts are stripped before sending.
|
|
311
|
+
- **API keys** for third-party model providers are read from environment variables and never persisted by C3.
|
|
312
|
+
- See [`SECURITY.md`](SECURITY.md) for the full hardening guide and disclosure policy.
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## License
|
|
317
|
+
|
|
318
|
+
- **Current OSS license** — Apache License 2.0 ([`LICENSE`](LICENSE)). Free for any use, including commercial. Modify, fork, redistribute — all permitted under Apache-2.0 terms.
|
|
319
|
+
- **Third-party deps** — see [`THIRD_PARTY_LICENSES.md`](THIRD_PARTY_LICENSES.md).
|
|
320
|
+
|
|
321
|
+
The author may introduce a paid offering or relicense future major versions; no commitment either way. Releases already published under Apache-2.0 (including all 2.x versions) keep their Apache-2.0 grant — that grant is irrevocable. Background and FAQ in [`LICENSING.md`](LICENSING.md). No warranty or support obligation; see LICENSE Sections 7–8.
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## Links
|
|
326
|
+
|
|
327
|
+
- **PyPI:** https://pypi.org/project/code-context-control/
|
|
328
|
+
- **Changelog:** [`CHANGELOG.md`](CHANGELOG.md)
|
|
329
|
+
- **Security policy:** [`SECURITY.md`](SECURITY.md)
|
|
330
|
+
- **Licensing FAQ:** [`LICENSING.md`](LICENSING.md)
|
|
331
|
+
- **Issues:** https://github.com/drknowhow/code-context-control/issues
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
<h1 align="center">Code Context Control</h1>
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<strong>The local code-intelligence layer for AI coding tools.</strong><br>
|
|
5
|
+
Stop burning tokens on whole-file reads, blind greps, and unbounded log dumps.<br>
|
|
6
|
+
Works with Claude Code, Codex, Gemini CLI, Copilot, Cursor, and Antigravity.
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://pypi.org/project/code-context-control/"><img alt="PyPI" src="https://img.shields.io/pypi/v/code-context-control?color=blue&logo=pypi&logoColor=white"></a>
|
|
11
|
+
<a href="LICENSE"><img alt="License: Apache-2.0" src="https://img.shields.io/badge/license-Apache--2.0-blue.svg"></a>
|
|
12
|
+
<img alt="Python 3.10+" src="https://img.shields.io/badge/python-3.10%2B-blue.svg">
|
|
13
|
+
<img alt="Platforms" src="https://img.shields.io/badge/platform-windows%20%7C%20macos%20%7C%20linux-lightgrey">
|
|
14
|
+
<img alt="Status: Beta" src="https://img.shields.io/badge/status-beta-yellow">
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
<p align="center">
|
|
18
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_dashboard.png" alt="C3 per-project dashboard" width="900">
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## The problem
|
|
24
|
+
|
|
25
|
+
LLM-driven coding tools have one expensive failure mode: **they read too much.** They `cat` whole files, regex the entire repo, dump 10k-line logs into context, edit-and-pray, and burn through budget before they touch a single line of code. On a half-day session you can spend $20+ on token waste that adds zero value.
|
|
26
|
+
|
|
27
|
+
## What C3 does about it
|
|
28
|
+
|
|
29
|
+
A thin **local** layer that sits between your IDE and your repo. Every AI tool call gets routed through narrow, surgical operations instead of broad, wasteful ones:
|
|
30
|
+
|
|
31
|
+
| Without C3 | With C3 |
|
|
32
|
+
|---|---|
|
|
33
|
+
| `Read` the whole 2,000-line file | `c3_compress` returns a 70%-smaller structural map → `c3_read(symbols=...)` for the exact function |
|
|
34
|
+
| `Grep` the whole repo blindly | `c3_search` returns ranked candidates with TF-IDF + symbol awareness |
|
|
35
|
+
| Dump full `pytest` output into the prompt | `c3_filter` distills 500 lines → 30 actionable ones |
|
|
36
|
+
| Edit, hope it compiled | `c3_edit` writes via a ledger + `c3_validate` runs `pyright`/`tsc` automatically |
|
|
37
|
+
| `Bash` test runs that hang on Windows | `c3_shell` returns structured `{exit_code, stdout, stderr, duration}` with auto-filter |
|
|
38
|
+
| Lose all context on `/clear` | `c3_session(snapshot)` + `c3_memory` persist decisions across sessions |
|
|
39
|
+
| Re-explain the project every session | Auto-synced `CLAUDE.md` / `AGENTS.md` / `GEMINI.md` / `copilot-instructions.md` from a single source of truth |
|
|
40
|
+
|
|
41
|
+
Everything runs **locally**. No source code, prompts, or model output ever leaves your machine unless you explicitly opt into a third-party model API.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Install
|
|
46
|
+
|
|
47
|
+
Requires Python 3.10+.
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
pip install code-context-control
|
|
51
|
+
c3 init /path/to/your/project
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The interactive setup walks you through:
|
|
55
|
+
1. **IDE selection** (Claude Code CLI/App, Codex CLI, Gemini CLI, VS Code, Cursor, Antigravity, or Custom)
|
|
56
|
+
2. Optional local `git init`
|
|
57
|
+
3. MCP server registration (auto-wired into your IDE)
|
|
58
|
+
4. (Claude Code only) Permission tier selection
|
|
59
|
+
|
|
60
|
+
Headless / scripted install:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
c3 init /path/to/project --force --ide claude --mcp-mode direct --permissions standard
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Or install from source:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
git clone https://github.com/drknowhow/code-context-control.git
|
|
70
|
+
cd code-context-control
|
|
71
|
+
pip install .[tui] # add the optional Textual TUI
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## A tour of the UI
|
|
77
|
+
|
|
78
|
+
C3 ships with two web UIs (no electron, no install — pure Flask + vanilla JS):
|
|
79
|
+
|
|
80
|
+
- **The Hub** (`c3-hub`, port 3330) — manage all your C3 projects from one dashboard.
|
|
81
|
+
- **The per-project UI** (`c3 ui`, per-project port) — deep dive into one project's session, memory, edits, instructions, and settings.
|
|
82
|
+
|
|
83
|
+
### 1. Project Hub — multi-project mission control
|
|
84
|
+
|
|
85
|
+
<p align="center">
|
|
86
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/hub_projects.png" alt="C3 Project Hub - all projects" width="900">
|
|
87
|
+
</p>
|
|
88
|
+
|
|
89
|
+
Every C3-initialized project on your machine appears here. Group them by tag, filter by active/idle, see which IDE each project uses, jump straight into your IDE with one click, and monitor session activity at a glance. Each project card shows live status, version, MCP wiring mode, port, and last activity.
|
|
90
|
+
|
|
91
|
+
Same data, grid layout:
|
|
92
|
+
|
|
93
|
+
<p align="center">
|
|
94
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/hub_projects_grid.png" alt="C3 Project Hub - grid view" width="900">
|
|
95
|
+
</p>
|
|
96
|
+
|
|
97
|
+
**Open in your IDE of choice** — C3 auto-detects which CLIs you have installed and gives you one-click launchers:
|
|
98
|
+
|
|
99
|
+
<p align="center">
|
|
100
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/hub_ide_config.png" alt="C3 Hub IDE picker" width="700">
|
|
101
|
+
</p>
|
|
102
|
+
|
|
103
|
+
Hub runs as a **background Windows service** if you want it to (no terminal, auto-starts on login):
|
|
104
|
+
|
|
105
|
+
<p align="center">
|
|
106
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/hub_settings.png" alt="C3 Hub settings" width="700">
|
|
107
|
+
</p>
|
|
108
|
+
|
|
109
|
+
### 2. Per-project dashboard — at-a-glance health
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
c3 ui # opens http://127.0.0.1:3333
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
<p align="center">
|
|
116
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_dashboard.png" alt="C3 per-project dashboard" width="900">
|
|
117
|
+
</p>
|
|
118
|
+
|
|
119
|
+
Real metrics from a real project: **448K tokens saved** (89.9% rate), 208 files indexed, 20 sessions, codebase breakdown by language, current-session live counters (in/out tokens, cache reads, services online), and a stream of recent tool calls and file changes.
|
|
120
|
+
|
|
121
|
+
### 3. Edit Ledger — every AI-driven edit tracked
|
|
122
|
+
|
|
123
|
+
<p align="center">
|
|
124
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_edits.png" alt="C3 Edit Ledger" width="900">
|
|
125
|
+
</p>
|
|
126
|
+
|
|
127
|
+
A complete audit trail of every file change made via `c3_edit` (or via Bash git commands intercepted by the C3 shell). Each entry shows timestamp, file, version number, change summary, and +/- line counts. Filter by file path, switch to **Stats** view for aggregate trends. Backed by a content-addressable store so any prior version is one click away.
|
|
128
|
+
|
|
129
|
+
### 4. Memory — durable knowledge across sessions
|
|
130
|
+
|
|
131
|
+
<p align="center">
|
|
132
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_memory.png" alt="C3 Memory" width="900">
|
|
133
|
+
</p>
|
|
134
|
+
|
|
135
|
+
A categorized store of facts the AI has learned about your project (architecture decisions, conventions, gotchas, references). Categories, full-text + semantic search, decision tracking, list ↔ graph toggle, and one-click Markdown export. Backed by TF-IDF + optional Ollama embeddings + `chromadb` (when the `[vector]` extra is installed).
|
|
136
|
+
|
|
137
|
+
### 5. Sessions — history, decisions, costs
|
|
138
|
+
|
|
139
|
+
<p align="center">
|
|
140
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_sessions.png" alt="C3 Sessions" width="900">
|
|
141
|
+
</p>
|
|
142
|
+
|
|
143
|
+
Every session you've ever run, with duration, decision count, file count, tool calls, token usage, and cost. Captured automatically via the IDE's Stop hook — nothing to remember to click. Click any row to see the full task list, decisions, and file diffs from that session.
|
|
144
|
+
|
|
145
|
+
### 6. Instructions — sync your project context across IDEs
|
|
146
|
+
|
|
147
|
+
<p align="center">
|
|
148
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_instructions.png" alt="C3 Instructions" width="900">
|
|
149
|
+
</p>
|
|
150
|
+
|
|
151
|
+
Manage `CLAUDE.md`, `AGENTS.md` (Codex), `GEMINI.md`, and `.github/copilot-instructions.md` from one editor. Generate from project state, run a Health Check (drift detection vs the actual codebase), Compact stale sections, or Promote insights captured during sessions. **One source of truth** instead of four out-of-sync files.
|
|
152
|
+
|
|
153
|
+
### 7. Chat — browse prior AI conversations
|
|
154
|
+
|
|
155
|
+
<p align="center">
|
|
156
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_chat.png" alt="C3 Chat" width="900">
|
|
157
|
+
</p>
|
|
158
|
+
|
|
159
|
+
C3 syncs and indexes your IDE's chat transcripts (currently Claude Code; others coming). Filter by source, search, click a row to view the full conversation. Useful for "wait, what did we decide about X last week?".
|
|
160
|
+
|
|
161
|
+
### 8. Settings — feature flags + integrations
|
|
162
|
+
|
|
163
|
+
<p align="center">
|
|
164
|
+
<img src="https://raw.githubusercontent.com/drknowhow/code-context-control/main/docs/screenshots/ui_settings.png" alt="C3 Settings" width="900">
|
|
165
|
+
</p>
|
|
166
|
+
|
|
167
|
+
Per-project knobs for everything: budget thresholds, feature flag mode, edit ledger, background agents, delegate routing, Codex/Gemini integrations, agent workflows, proxy mode, MCP servers, Claude Code permission tier, and more.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## The MCP tool suite
|
|
172
|
+
|
|
173
|
+
C3 exposes 14 tools as a native MCP server. Your IDE calls them directly:
|
|
174
|
+
|
|
175
|
+
| Tool | What it does |
|
|
176
|
+
|---|---|
|
|
177
|
+
| `c3_search` | TF-IDF / regex / semantic search ranked across the indexed repo |
|
|
178
|
+
| `c3_compress` | AST-based file map (modes: `map`, `dense_map`, `smart`, `diff`, `bug_scan`, `ast`) |
|
|
179
|
+
| `c3_read` | Surgical reads — by symbol name, regex, or line ranges |
|
|
180
|
+
| `c3_edit` | Atomic patch with automatic ledger logging + content-addressable history |
|
|
181
|
+
| `c3_validate` | Type / syntax check (pyright, tsc, ruff, etc. — auto-detected) |
|
|
182
|
+
| `c3_filter` | Distill long terminal/log output via pattern + LLM summarization |
|
|
183
|
+
| `c3_shell` | Run shell commands with structured returns + auto-filtered stdout |
|
|
184
|
+
| `c3_status` | Project health, token budget, notifications, ghost-file detection |
|
|
185
|
+
| `c3_memory` | Persistent fact store with categories, recall, and graph queries |
|
|
186
|
+
| `c3_session` | Snapshot, restore, log decisions, compact session history |
|
|
187
|
+
| `c3_impact` | Blast-radius analysis before edits to shared symbols |
|
|
188
|
+
| `c3_delegate` | Offload heavy work to local Ollama / Codex / Gemini / etc. |
|
|
189
|
+
| `c3_agent` | Multi-step agentic workflows (review, investigate, refactor) |
|
|
190
|
+
| `c3_edits` | Edit-ledger queries + version diffs + restore points |
|
|
191
|
+
|
|
192
|
+
Every tool is **read-only safe in plan mode** (except `c3_edit` and `c3_shell`).
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Tiered local AI (optional)
|
|
197
|
+
|
|
198
|
+
C3 ships with optional Ollama integration so the primary model doesn't have to waste context on grunt work:
|
|
199
|
+
|
|
200
|
+
| Tier | Model class | Used for | Latency target |
|
|
201
|
+
|---|---|---|---|
|
|
202
|
+
| **Nano** | `qwen2:0.5b` | Intent routing, classification | <100 ms |
|
|
203
|
+
| **Micro** | `deepseek-r1:1.5b` | Last-turn Q&A, summarization | <1 s |
|
|
204
|
+
| **Base** | `llama3.2:3b`+ | Code analysis, technical reasoning | <5 s |
|
|
205
|
+
|
|
206
|
+
```text
|
|
207
|
+
c3_delegate(task="summarize this 4k-line stacktrace", backend="ollama")
|
|
208
|
+
c3_delegate(task="rate-limit refactor", backend="auto") # picks the right tier
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Ollama is **fully optional**. C3 works without it.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Permissions (Claude Code)
|
|
216
|
+
|
|
217
|
+
C3 manages `.claude/settings.local.json` for you, with three sensible tiers:
|
|
218
|
+
|
|
219
|
+
| Tier | What it allows |
|
|
220
|
+
|---|---|
|
|
221
|
+
| `read-only` | Exploration only — no file writes, no git writes, no installs |
|
|
222
|
+
| `standard` | Normal dev workflow — edit, build, test, local git **(recommended)** |
|
|
223
|
+
| `permissive` | Full trust — everything except destructive ops |
|
|
224
|
+
|
|
225
|
+
All tiers always allow C3 MCP tools and include a hard deny list (`rm -rf`, `sudo`, `git push --force`, etc.).
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
c3 permissions show
|
|
229
|
+
c3 permissions standard
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Benchmarks
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
c3 benchmark /path/to/project
|
|
238
|
+
c3 bench aider # Aider Polyglot suite
|
|
239
|
+
c3 bench swe # SWE-bench Lite
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Real-world A/B tests: same task, with and without C3 mounted. Reports include token deltas, cost deltas, win rates, tool-usage analysis, and per-task breakdowns. See the **Benchmark Dashboard** under Settings → Background Agents in the Hub.
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Security & privacy
|
|
247
|
+
|
|
248
|
+
- **Hub binds to `127.0.0.1` by default.** Setting `host` to a non-loopback interface in `~/.c3/hub_config.json` is opt-in and warned at startup. **Do not expose the Hub to a public network without auth/TLS in front of it.**
|
|
249
|
+
- **No telemetry by default.** The OSS package collects nothing. Opt-in Sentry crash reporting requires the `[telemetry]` extra plus both `SENTRY_DSN` and `C3_TELEMETRY_OPT_IN=1`. Even when enabled, request bodies, local variables, and prompts are stripped before sending.
|
|
250
|
+
- **API keys** for third-party model providers are read from environment variables and never persisted by C3.
|
|
251
|
+
- See [`SECURITY.md`](SECURITY.md) for the full hardening guide and disclosure policy.
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## License
|
|
256
|
+
|
|
257
|
+
- **Current OSS license** — Apache License 2.0 ([`LICENSE`](LICENSE)). Free for any use, including commercial. Modify, fork, redistribute — all permitted under Apache-2.0 terms.
|
|
258
|
+
- **Third-party deps** — see [`THIRD_PARTY_LICENSES.md`](THIRD_PARTY_LICENSES.md).
|
|
259
|
+
|
|
260
|
+
The author may introduce a paid offering or relicense future major versions; no commitment either way. Releases already published under Apache-2.0 (including all 2.x versions) keep their Apache-2.0 grant — that grant is irrevocable. Background and FAQ in [`LICENSING.md`](LICENSING.md). No warranty or support obligation; see LICENSE Sections 7–8.
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Links
|
|
265
|
+
|
|
266
|
+
- **PyPI:** https://pypi.org/project/code-context-control/
|
|
267
|
+
- **Changelog:** [`CHANGELOG.md`](CHANGELOG.md)
|
|
268
|
+
- **Security policy:** [`SECURITY.md`](SECURITY.md)
|
|
269
|
+
- **Licensing FAQ:** [`LICENSING.md`](LICENSING.md)
|
|
270
|
+
- **Issues:** https://github.com/drknowhow/code-context-control/issues
|