cortexcode 0.8.1__tar.gz → 0.9.1__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.
Files changed (179) hide show
  1. {cortexcode-0.8.1 → cortexcode-0.9.1}/PKG-INFO +38 -44
  2. {cortexcode-0.8.1 → cortexcode-0.9.1}/README.md +35 -42
  3. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/ai_docs/doc_generator.py +5 -5
  4. cortexcode-0.9.1/cortexcode/cli/cli_index.py +609 -0
  5. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_servers.py +100 -37
  6. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/context/context_query.py +35 -7
  7. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexer.py +45 -1
  8. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/main.py +5 -1
  9. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/mcp/mcp_registry.py +1 -1
  10. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode.egg-info/PKG-INFO +38 -44
  11. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode.egg-info/requires.txt +1 -0
  12. {cortexcode-0.8.1 → cortexcode-0.9.1}/pyproject.toml +3 -3
  13. cortexcode-0.8.1/cortexcode/cli/cli_index.py +0 -110
  14. {cortexcode-0.8.1 → cortexcode-0.9.1}/LICENSE +0 -0
  15. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/__init__.py +0 -0
  16. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/advanced_analysis/__init__.py +0 -0
  17. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/advanced_analysis/advanced_analysis.py +0 -0
  18. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/advanced_analysis/advanced_analysis_cycles.py +0 -0
  19. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/advanced_analysis/advanced_analysis_docs.py +0 -0
  20. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/advanced_analysis/advanced_analysis_duplicates.py +0 -0
  21. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/advanced_analysis/advanced_analysis_endpoints.py +0 -0
  22. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/advanced_analysis/advanced_analysis_search.py +0 -0
  23. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/advanced_analysis/advanced_analysis_security.py +0 -0
  24. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/advanced_analysis.py +0 -0
  25. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/ai_docs/__init__.py +0 -0
  26. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/ai_docs/config.py +0 -0
  27. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/ai_docs/doc_cache.py +0 -0
  28. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/ai_docs/doc_lookup.py +0 -0
  29. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/ai_docs/doc_models.py +0 -0
  30. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/ai_docs/explainer.py +0 -0
  31. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/ai_docs/llm_client.py +0 -0
  32. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/ai_docs/page_generator.py +0 -0
  33. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/ai_docs/prompts.py +0 -0
  34. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/ai_docs/report_runner.py +0 -0
  35. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/analysis/__init__.py +0 -0
  36. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/analysis/analysis_complexity.py +0 -0
  37. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/analysis/analysis_dead_code.py +0 -0
  38. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/analysis/analysis_impact.py +0 -0
  39. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/analysis.py +0 -0
  40. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/__init__.py +0 -0
  41. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_ai_docs.py +0 -0
  42. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_bundle.py +0 -0
  43. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_complexity.py +0 -0
  44. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_config.py +0 -0
  45. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_context.py +0 -0
  46. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_dashboard.py +0 -0
  47. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_dead_code.py +0 -0
  48. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_diagrams.py +0 -0
  49. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_diff.py +0 -0
  50. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_docs.py +0 -0
  51. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_explain.py +0 -0
  52. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_find.py +0 -0
  53. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_githook.py +0 -0
  54. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_impact.py +0 -0
  55. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_jobs.py +0 -0
  56. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_package.py +0 -0
  57. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_report.py +0 -0
  58. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_scan.py +0 -0
  59. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_search.py +0 -0
  60. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_shell.py +0 -0
  61. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_stats.py +0 -0
  62. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_support.py +0 -0
  63. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_trace.py +0 -0
  64. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_watch.py +0 -0
  65. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_wiki.py +0 -0
  66. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/cli/cli_workspace.py +0 -0
  67. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/config.py +0 -0
  68. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/context/__init__.py +0 -0
  69. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/context/context_format.py +0 -0
  70. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/context/context_tokens.py +0 -0
  71. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/context.py +0 -0
  72. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/dashboard.py +0 -0
  73. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/diagrams/__init__.py +0 -0
  74. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/diagrams/architecture.py +0 -0
  75. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/diagrams/call_graph.py +0 -0
  76. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/diagrams/class_diagram.py +0 -0
  77. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/diagrams/dependencies.py +0 -0
  78. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/diagrams/directory_tree.py +0 -0
  79. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/diagrams/entities.py +0 -0
  80. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/diagrams/file_tree.py +0 -0
  81. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/diagrams/imports.py +0 -0
  82. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/diagrams/save.py +0 -0
  83. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/diagrams/sequence.py +0 -0
  84. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/diagrams/state.py +0 -0
  85. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/diagrams/utils.py +0 -0
  86. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/docs/__init__.py +0 -0
  87. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/docs/diagrams.py +0 -0
  88. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/docs/generator.py +0 -0
  89. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/docs/html_generators.py +0 -0
  90. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/docs/javascript.py +0 -0
  91. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/docs/javascript_sections.py +0 -0
  92. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/docs/templates.py +0 -0
  93. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/docs.py +0 -0
  94. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/git_diff.py +0 -0
  95. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/__init__.py +0 -0
  96. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/build.py +0 -0
  97. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/calls.py +0 -0
  98. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/config.py +0 -0
  99. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/defaults.py +0 -0
  100. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/dispatch.py +0 -0
  101. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/entities.py +0 -0
  102. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/extensions.py +0 -0
  103. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/extractor_mixin.py +0 -0
  104. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/extractors/__init__.py +0 -0
  105. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/extractors/csharp.py +0 -0
  106. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/extractors/dart.py +0 -0
  107. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/extractors/generic.py +0 -0
  108. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/extractors/java.py +0 -0
  109. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/extractors/javascript.py +0 -0
  110. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/extractors/kotlin.py +0 -0
  111. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/extractors/swift.py +0 -0
  112. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/filtering.py +0 -0
  113. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/frameworks.py +0 -0
  114. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/gitignore.py +0 -0
  115. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/imports_exports.py +0 -0
  116. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/incremental.py +0 -0
  117. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/languages.py +0 -0
  118. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/metadata.py +0 -0
  119. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/nodes.py +0 -0
  120. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/output.py +0 -0
  121. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/params.py +0 -0
  122. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/parsers.py +0 -0
  123. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/pipeline.py +0 -0
  124. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/profile.py +0 -0
  125. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/resolution.py +0 -0
  126. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/routes.py +0 -0
  127. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/session.py +0 -0
  128. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/storage.py +0 -0
  129. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/indexing/walk.py +0 -0
  130. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/knowledge/__init__.py +0 -0
  131. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/knowledge/build.py +0 -0
  132. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/knowledge/citations.py +0 -0
  133. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/knowledge/concepts.py +0 -0
  134. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/knowledge/models.py +0 -0
  135. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/knowledge/snippets.py +0 -0
  136. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/knowledge/usage.py +0 -0
  137. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/lsp_server.py +0 -0
  138. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/mcp/__init__.py +0 -0
  139. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/mcp/mcp_protocol.py +0 -0
  140. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/mcp/mcp_server.py +0 -0
  141. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/mcp/mcp_tool_handlers.py +0 -0
  142. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/mcp/mcp_transport.py +0 -0
  143. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/performance/__init__.py +0 -0
  144. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/performance/performance_config.py +0 -0
  145. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/performance/performance_index_storage.py +0 -0
  146. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/performance/performance_preview.py +0 -0
  147. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/performance.py +0 -0
  148. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/plugins.py +0 -0
  149. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/reports/__init__.py +0 -0
  150. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/reports/html/__init__.py +0 -0
  151. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/reports/html/dashboard.py +0 -0
  152. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/reports/html/dashboard_fragments.py +0 -0
  153. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/reports/html/view_model.py +0 -0
  154. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/reports/markdown/__init__.py +0 -0
  155. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/reports/markdown/api.py +0 -0
  156. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/reports/markdown/flows.py +0 -0
  157. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/reports/markdown/insights.py +0 -0
  158. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/reports/markdown/readme.py +0 -0
  159. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/reports/markdown/structure.py +0 -0
  160. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/reports/markdown/tech.py +0 -0
  161. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/reports/site/__init__.py +0 -0
  162. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/reports/site/generator.py +0 -0
  163. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/reports/site/viz.py +0 -0
  164. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/semantic_search.py +0 -0
  165. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/terminal/__init__.py +0 -0
  166. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/terminal/analysis.py +0 -0
  167. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/terminal/completion.py +0 -0
  168. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/terminal/headers.py +0 -0
  169. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/terminal/prompts.py +0 -0
  170. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/terminal/reports.py +0 -0
  171. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/terminal/stats.py +0 -0
  172. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/vuln_scan.py +0 -0
  173. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/watcher.py +0 -0
  174. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode/workspace.py +0 -0
  175. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode.egg-info/SOURCES.txt +0 -0
  176. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode.egg-info/dependency_links.txt +0 -0
  177. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode.egg-info/entry_points.txt +0 -0
  178. {cortexcode-0.8.1 → cortexcode-0.9.1}/cortexcode.egg-info/top_level.txt +0 -0
  179. {cortexcode-0.8.1 → cortexcode-0.9.1}/setup.cfg +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cortexcode
3
- Version: 0.8.1
4
- Summary: Lightweight code indexing for AI assistants — save 90%+ tokens with structured context
3
+ Version: 0.9.1
4
+ Summary: Lightweight code indexing for AI assistants — build a searchable codegraph and grounded context
5
5
  Author-email: Naveen <naveen_joshi07@outlook.com>
6
6
  License: MIT
7
7
  Project-URL: Homepage, https://github.com/naveen-joshi/cortexcode
@@ -32,6 +32,7 @@ Requires-Dist: tree-sitter-rust>=0.23.0
32
32
  Requires-Dist: tree-sitter-java>=0.23.0
33
33
  Requires-Dist: tree-sitter-c-sharp>=0.23.0
34
34
  Requires-Dist: click>=8.1.0
35
+ Requires-Dist: questionary>=2.0.1
35
36
  Requires-Dist: watchdog>=4.0.0
36
37
  Requires-Dist: rich>=13.0.0
37
38
  Requires-Dist: pyyaml>=6.0.0
@@ -54,44 +55,36 @@ Dynamic: license-file
54
55
  <h1 align="center">CortexCode</h1>
55
56
  <p align="center">
56
57
  <strong>Lightweight code indexing for AI assistants</strong><br>
57
- Save 90%+ tokens by giving AI agents structured context instead of raw source files.
58
+ Build a searchable codegraph, generate documentation, and give AI assistants grounded context.
58
59
  </p>
59
60
  </p>
60
61
 
61
- <p align="center">
62
- <a href="https://pypi.org/project/cortexcode/"><img src="https://img.shields.io/pypi/v/cortexcode?style=flat-square&color=blue" alt="PyPI"></a>
63
- <a href="https://pypi.org/project/cortexcode/"><img src="https://img.shields.io/pypi/pyversions/cortexcode?style=flat-square" alt="Python"></a>
64
- <a href="https://github.com/naveen-joshi/cortexcode/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="License"></a>
65
- <a href="https://github.com/naveen-joshi/cortexcode"><img src="https://img.shields.io/github/stars/naveen-joshi/cortexcode?style=flat-square" alt="Stars"></a>
66
- <a href="https://marketplace.visualstudio.com/items?itemName=cortexcode.cortexcode-vscode"><img src="https://img.shields.io/visual-studio-marketplace/v/cortexcode.cortexcode-vscode?style=flat-square" alt="VS Code"></a>
67
- </p>
68
-
69
62
  ---
70
63
 
71
64
  ## The Problem
72
65
 
73
66
  AI coding assistants (Copilot, Cursor, Windsurf, etc.) need to understand your codebase. The current approach: **dump entire source files into the context window**. This is:
74
67
 
75
- - **Expensive** — A 150-file project can cost 200K+ tokens per query
76
- - **Slow** — More tokens = slower responses
77
- - **Wasteful** — Most of those tokens are irrelevant to the question
68
+ - **Noisy** — Important signals are buried inside large files
69
+ - **Fragile** — Assistants miss architecture, relationships, and runtime surface area
70
+ - **Hard to reuse** — Raw file dumps do not become a durable project map
78
71
 
79
72
  ## The Solution
80
73
 
81
- CortexCode indexes your codebase using **AST parsing** (tree-sitter) and provides a structured, searchable index. Instead of feeding 200K tokens of raw code, you feed **~500 tokens of relevant context**.
74
+ CortexCode indexes your codebase using **AST parsing** (tree-sitter) and builds a structured, searchable codegraph. You can explore symbols, trace flows, generate docs and diagrams, produce CodeWiki pages, and connect AI tools through MCP.
82
75
 
83
76
  ```
84
77
  ┌─────────────────────────────────────────────────┐
85
78
  │ Without CortexCode With CortexCode │
86
79
  │ │
87
- 200,000 tokens500 tokens
88
- $0.006/query $0.00002/query
89
- All files dumped Only relevant syms
90
- │ No structure Call graph + types
80
+ Raw files onlySearchable codegraph
81
+ Manual digging Linked symbols
82
+ Ad-hoc prompts Reusable context
83
+ │ No project map Docs + diagrams
91
84
  └─────────────────────────────────────────────────┘
92
85
  ```
93
86
 
94
- Run `cortexcode stats` on your project to see your actual savings.
87
+ Run `cortexcode index` on your project to generate the codegraph and start exploring.
95
88
 
96
89
  ## Quick Start
97
90
 
@@ -107,9 +100,6 @@ cd cortexcode && pip install -e .
107
100
  cd your-project
108
101
  cortexcode index
109
102
 
110
- # See token savings
111
- cortexcode stats
112
-
113
103
  # Get context for AI
114
104
  cortexcode context "handleAuth"
115
105
 
@@ -117,6 +107,22 @@ cortexcode context "handleAuth"
117
107
  cortexcode docs --open
118
108
  ```
119
109
 
110
+ ### Post-Index Wizard
111
+
112
+ After running `cortexcode index`, an interactive wizard can guide you through generating outputs:
113
+
114
+ ```bash
115
+ cortexcode index # Run index, then wizard prompts
116
+ cortexcode index --force-wizard # Force wizard in non-TTY mode
117
+ cortexcode index --no-post-index-wizard # Skip wizard
118
+ ```
119
+
120
+ **Wizard features:**
121
+ - Multi-select checkbox for docs, diagrams, AI docs, CodeWiki, reports, visualization, dashboard, MCP setup
122
+ - Smart recommendations based on detected project shape
123
+ - Follow-up prompts for diagram types, AI doc types, wiki options
124
+ - Preference persistence — saves your choices for future runs
125
+
120
126
  ## Features
121
127
 
122
128
  ### Multi-Language AST Indexing
@@ -142,24 +148,14 @@ Parses source code into structured symbols using tree-sitter grammars.
142
148
  - **Entities** — Database models and ORM definitions
143
149
  - **Framework Detection** — React components, Angular services, etc.
144
150
 
145
- ### Token Savings
151
+ ### Project Exploration & Context
146
152
 
147
- CortexCode dramatically reduces the tokens needed to give AI assistants useful context:
153
+ Use CortexCode to inspect structure and answer practical questions about a codebase:
148
154
 
149
- ```bash
150
- $ cortexcode stats
151
-
152
- ╭──────── Token Savings Analysis ────────╮
153
- │ Source files 154 files │
154
- │ Raw project tokens 203,847 │
155
- │ Full index tokens 45,291 │
156
- │ Context query tokens 487 │
157
- │ │
158
- │ Tokens saved 203,360 │
159
- │ Savings 99.8% │
160
- │ Compression ratio 418.6x │
161
- ╰─────────────────────────────────────────╯
162
- ```
155
+ - **Context lookup** — Pull relevant symbols and files for a query
156
+ - **Call graph tracing** — Follow how behavior moves across modules
157
+ - **Architecture visibility** — Inspect routes, entities, dependencies, and layers
158
+ - **Reusable index** Keep a structured project map that tools can build on
163
159
 
164
160
  ### Interactive HTML Documentation
165
161
 
@@ -194,7 +190,6 @@ cortexcode wiki --no-modules # Skip per-module pages (faster)
194
190
  - **Mermaid diagrams** — Auto-generated flow diagrams
195
191
  - **Concept mapping** — Maps technical concepts to symbols and files
196
192
  - **Concept search** — Ask "how does authentication work?" and get grounded answers
197
- - **Token tracking** — See exactly how many tokens each page used
198
193
 
199
194
  **Output:** `.cortexcode/wiki/index.html` — Open directly or serve locally.
200
195
 
@@ -245,12 +240,12 @@ CortexCode supports both a short form (`cc`) and full form (`cortexcode`). Comma
245
240
  | Command | Description |
246
241
  |---------|-------------|
247
242
  | `cc analyze context [query]` | Get relevant context for AI |
248
- | `cc analyze context [query] --tokens` | Show token savings for query |
243
+ | `cc analyze context [query] --tokens` | Show context size estimates for a query |
249
244
  | `cc analyze search [query]` | Grep-like symbol search with type/file filters |
250
245
  | `cc analyze find [query]` | Semantic search by meaning ("auth handler") |
251
246
  | `cc analyze diff` | Show changed symbols since last commit |
252
247
  | `cc analyze diff --ref HEAD~3` | Compare against any git ref |
253
- | `cc analyze stats` | Show project stats and token savings |
248
+ | `cc analyze stats` | Show project index and analysis stats |
254
249
  | `cc analyze scan` | Scan dependencies for security warnings |
255
250
  | `cc analyze trace <symbol>` | Trace code flow through call graph |
256
251
  | `cc analyze flow <concept>` | Analyze code flow grouped by file |
@@ -355,7 +350,7 @@ Add to `~/.windsurf/config.json`:
355
350
 
356
351
  ```bash
357
352
  # Paste this output into your AI chat
358
- cortexcode context "useAuth" --tokens
353
+ cortexcode context "useAuth"
359
354
  ```
360
355
 
361
356
  ### 2. JSON Index (programmatic)
@@ -552,7 +547,6 @@ CortexCode respects `.gitignore` files (including nested ones) and has built-in
552
547
  ## Roadmap
553
548
 
554
549
  - [x] MCP server for direct AI agent integration
555
- - [x] Tiktoken-based accurate token counting
556
550
  - [x] Semantic search over symbols (TF-IDF + synonym expansion)
557
551
  - [x] Cross-file type inference
558
552
  - [x] Git diff-aware context (show only changed symbols)
@@ -2,44 +2,36 @@
2
2
  <h1 align="center">CortexCode</h1>
3
3
  <p align="center">
4
4
  <strong>Lightweight code indexing for AI assistants</strong><br>
5
- Save 90%+ tokens by giving AI agents structured context instead of raw source files.
5
+ Build a searchable codegraph, generate documentation, and give AI assistants grounded context.
6
6
  </p>
7
7
  </p>
8
8
 
9
- <p align="center">
10
- <a href="https://pypi.org/project/cortexcode/"><img src="https://img.shields.io/pypi/v/cortexcode?style=flat-square&color=blue" alt="PyPI"></a>
11
- <a href="https://pypi.org/project/cortexcode/"><img src="https://img.shields.io/pypi/pyversions/cortexcode?style=flat-square" alt="Python"></a>
12
- <a href="https://github.com/naveen-joshi/cortexcode/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="License"></a>
13
- <a href="https://github.com/naveen-joshi/cortexcode"><img src="https://img.shields.io/github/stars/naveen-joshi/cortexcode?style=flat-square" alt="Stars"></a>
14
- <a href="https://marketplace.visualstudio.com/items?itemName=cortexcode.cortexcode-vscode"><img src="https://img.shields.io/visual-studio-marketplace/v/cortexcode.cortexcode-vscode?style=flat-square" alt="VS Code"></a>
15
- </p>
16
-
17
9
  ---
18
10
 
19
11
  ## The Problem
20
12
 
21
13
  AI coding assistants (Copilot, Cursor, Windsurf, etc.) need to understand your codebase. The current approach: **dump entire source files into the context window**. This is:
22
14
 
23
- - **Expensive** — A 150-file project can cost 200K+ tokens per query
24
- - **Slow** — More tokens = slower responses
25
- - **Wasteful** — Most of those tokens are irrelevant to the question
15
+ - **Noisy** — Important signals are buried inside large files
16
+ - **Fragile** — Assistants miss architecture, relationships, and runtime surface area
17
+ - **Hard to reuse** — Raw file dumps do not become a durable project map
26
18
 
27
19
  ## The Solution
28
20
 
29
- CortexCode indexes your codebase using **AST parsing** (tree-sitter) and provides a structured, searchable index. Instead of feeding 200K tokens of raw code, you feed **~500 tokens of relevant context**.
21
+ CortexCode indexes your codebase using **AST parsing** (tree-sitter) and builds a structured, searchable codegraph. You can explore symbols, trace flows, generate docs and diagrams, produce CodeWiki pages, and connect AI tools through MCP.
30
22
 
31
23
  ```
32
24
  ┌─────────────────────────────────────────────────┐
33
25
  │ Without CortexCode With CortexCode │
34
26
  │ │
35
- 200,000 tokens500 tokens
36
- $0.006/query $0.00002/query
37
- All files dumped Only relevant syms
38
- │ No structure Call graph + types
27
+ Raw files onlySearchable codegraph
28
+ Manual digging Linked symbols
29
+ Ad-hoc prompts Reusable context
30
+ │ No project map Docs + diagrams
39
31
  └─────────────────────────────────────────────────┘
40
32
  ```
41
33
 
42
- Run `cortexcode stats` on your project to see your actual savings.
34
+ Run `cortexcode index` on your project to generate the codegraph and start exploring.
43
35
 
44
36
  ## Quick Start
45
37
 
@@ -55,9 +47,6 @@ cd cortexcode && pip install -e .
55
47
  cd your-project
56
48
  cortexcode index
57
49
 
58
- # See token savings
59
- cortexcode stats
60
-
61
50
  # Get context for AI
62
51
  cortexcode context "handleAuth"
63
52
 
@@ -65,6 +54,22 @@ cortexcode context "handleAuth"
65
54
  cortexcode docs --open
66
55
  ```
67
56
 
57
+ ### Post-Index Wizard
58
+
59
+ After running `cortexcode index`, an interactive wizard can guide you through generating outputs:
60
+
61
+ ```bash
62
+ cortexcode index # Run index, then wizard prompts
63
+ cortexcode index --force-wizard # Force wizard in non-TTY mode
64
+ cortexcode index --no-post-index-wizard # Skip wizard
65
+ ```
66
+
67
+ **Wizard features:**
68
+ - Multi-select checkbox for docs, diagrams, AI docs, CodeWiki, reports, visualization, dashboard, MCP setup
69
+ - Smart recommendations based on detected project shape
70
+ - Follow-up prompts for diagram types, AI doc types, wiki options
71
+ - Preference persistence — saves your choices for future runs
72
+
68
73
  ## Features
69
74
 
70
75
  ### Multi-Language AST Indexing
@@ -90,24 +95,14 @@ Parses source code into structured symbols using tree-sitter grammars.
90
95
  - **Entities** — Database models and ORM definitions
91
96
  - **Framework Detection** — React components, Angular services, etc.
92
97
 
93
- ### Token Savings
98
+ ### Project Exploration & Context
94
99
 
95
- CortexCode dramatically reduces the tokens needed to give AI assistants useful context:
100
+ Use CortexCode to inspect structure and answer practical questions about a codebase:
96
101
 
97
- ```bash
98
- $ cortexcode stats
99
-
100
- ╭──────── Token Savings Analysis ────────╮
101
- │ Source files 154 files │
102
- │ Raw project tokens 203,847 │
103
- │ Full index tokens 45,291 │
104
- │ Context query tokens 487 │
105
- │ │
106
- │ Tokens saved 203,360 │
107
- │ Savings 99.8% │
108
- │ Compression ratio 418.6x │
109
- ╰─────────────────────────────────────────╯
110
- ```
102
+ - **Context lookup** — Pull relevant symbols and files for a query
103
+ - **Call graph tracing** — Follow how behavior moves across modules
104
+ - **Architecture visibility** — Inspect routes, entities, dependencies, and layers
105
+ - **Reusable index** Keep a structured project map that tools can build on
111
106
 
112
107
  ### Interactive HTML Documentation
113
108
 
@@ -142,7 +137,6 @@ cortexcode wiki --no-modules # Skip per-module pages (faster)
142
137
  - **Mermaid diagrams** — Auto-generated flow diagrams
143
138
  - **Concept mapping** — Maps technical concepts to symbols and files
144
139
  - **Concept search** — Ask "how does authentication work?" and get grounded answers
145
- - **Token tracking** — See exactly how many tokens each page used
146
140
 
147
141
  **Output:** `.cortexcode/wiki/index.html` — Open directly or serve locally.
148
142
 
@@ -193,12 +187,12 @@ CortexCode supports both a short form (`cc`) and full form (`cortexcode`). Comma
193
187
  | Command | Description |
194
188
  |---------|-------------|
195
189
  | `cc analyze context [query]` | Get relevant context for AI |
196
- | `cc analyze context [query] --tokens` | Show token savings for query |
190
+ | `cc analyze context [query] --tokens` | Show context size estimates for a query |
197
191
  | `cc analyze search [query]` | Grep-like symbol search with type/file filters |
198
192
  | `cc analyze find [query]` | Semantic search by meaning ("auth handler") |
199
193
  | `cc analyze diff` | Show changed symbols since last commit |
200
194
  | `cc analyze diff --ref HEAD~3` | Compare against any git ref |
201
- | `cc analyze stats` | Show project stats and token savings |
195
+ | `cc analyze stats` | Show project index and analysis stats |
202
196
  | `cc analyze scan` | Scan dependencies for security warnings |
203
197
  | `cc analyze trace <symbol>` | Trace code flow through call graph |
204
198
  | `cc analyze flow <concept>` | Analyze code flow grouped by file |
@@ -303,7 +297,7 @@ Add to `~/.windsurf/config.json`:
303
297
 
304
298
  ```bash
305
299
  # Paste this output into your AI chat
306
- cortexcode context "useAuth" --tokens
300
+ cortexcode context "useAuth"
307
301
  ```
308
302
 
309
303
  ### 2. JSON Index (programmatic)
@@ -500,7 +494,6 @@ CortexCode respects `.gitignore` files (including nested ones) and has built-in
500
494
  ## Roadmap
501
495
 
502
496
  - [x] MCP server for direct AI agent integration
503
- - [x] Tiktoken-based accurate token counting
504
497
  - [x] Semantic search over symbols (TF-IDF + synonym expansion)
505
498
  - [x] Cross-file type inference
506
499
  - [x] Git diff-aware context (show only changed symbols)
@@ -60,7 +60,7 @@ class AIDocGenerator:
60
60
  messages = prompts.generate_project_overview_prompt(index_data)
61
61
  output.overview = self._generate(messages, "overview")
62
62
  if output.overview:
63
- (output_dir / "AI_OVERVIEW.md").write_text(output.overview)
63
+ (output_dir / "AI_OVERVIEW.md").write_text(output.overview, encoding="utf-8")
64
64
  print(" -> AI_OVERVIEW.md")
65
65
 
66
66
  if "api" in docs:
@@ -68,7 +68,7 @@ class AIDocGenerator:
68
68
  messages = prompts.generate_api_docs_prompt(index_data)
69
69
  output.api_docs = self._generate(messages, "api")
70
70
  if output.api_docs:
71
- (output_dir / "AI_API.md").write_text(output.api_docs)
71
+ (output_dir / "AI_API.md").write_text(output.api_docs, encoding="utf-8")
72
72
  print(" -> AI_API.md")
73
73
 
74
74
  if "architecture" in docs:
@@ -76,7 +76,7 @@ class AIDocGenerator:
76
76
  messages = prompts.generate_architecture_prompt(index_data)
77
77
  output.architecture = self._generate(messages, "architecture")
78
78
  if output.architecture:
79
- (output_dir / "AI_ARCHITECTURE.md").write_text(output.architecture)
79
+ (output_dir / "AI_ARCHITECTURE.md").write_text(output.architecture, encoding="utf-8")
80
80
  print(" -> AI_ARCHITECTURE.md")
81
81
 
82
82
  if "flows" in docs:
@@ -84,7 +84,7 @@ class AIDocGenerator:
84
84
  messages = prompts.generate_flow_docs_prompt(index_data)
85
85
  output.flows = self._generate(messages, "flows")
86
86
  if output.flows:
87
- (output_dir / "AI_FLOWS.md").write_text(output.flows)
87
+ (output_dir / "AI_FLOWS.md").write_text(output.flows, encoding="utf-8")
88
88
  print(" -> AI_FLOWS.md")
89
89
 
90
90
  return output
@@ -107,7 +107,7 @@ class AIDocGenerator:
107
107
  result = self._generate(messages, f"module_{module_name}")
108
108
 
109
109
  if output_path and result:
110
- Path(output_path).write_text(result)
110
+ Path(output_path).write_text(result, encoding="utf-8")
111
111
 
112
112
  return result
113
113