llm-wiki-plus 2.2.0__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 (435) hide show
  1. llm_wiki_plus-2.2.0/LICENSE +21 -0
  2. llm_wiki_plus-2.2.0/PKG-INFO +176 -0
  3. llm_wiki_plus-2.2.0/README.md +124 -0
  4. llm_wiki_plus-2.2.0/llm_wiki_plus.egg-info/PKG-INFO +176 -0
  5. llm_wiki_plus-2.2.0/llm_wiki_plus.egg-info/SOURCES.txt +433 -0
  6. llm_wiki_plus-2.2.0/llm_wiki_plus.egg-info/dependency_links.txt +1 -0
  7. llm_wiki_plus-2.2.0/llm_wiki_plus.egg-info/entry_points.txt +3 -0
  8. llm_wiki_plus-2.2.0/llm_wiki_plus.egg-info/requires.txt +24 -0
  9. llm_wiki_plus-2.2.0/llm_wiki_plus.egg-info/top_level.txt +1 -0
  10. llm_wiki_plus-2.2.0/llmwiki/__init__.py +71 -0
  11. llm_wiki_plus-2.2.0/llmwiki/__main__.py +7 -0
  12. llm_wiki_plus-2.2.0/llmwiki/_frontmatter.py +178 -0
  13. llm_wiki_plus-2.2.0/llmwiki/_system_pages.py +72 -0
  14. llm_wiki_plus-2.2.0/llmwiki/adapter_config.py +123 -0
  15. llm_wiki_plus-2.2.0/llmwiki/adapters/__init__.py +141 -0
  16. llm_wiki_plus-2.2.0/llmwiki/adapters/base.py +334 -0
  17. llm_wiki_plus-2.2.0/llmwiki/adapters/claude_code.py +92 -0
  18. llm_wiki_plus-2.2.0/llmwiki/adapters/codex_cli.py +237 -0
  19. llm_wiki_plus-2.2.0/llmwiki/adapters/contrib/__init__.py +1 -0
  20. llm_wiki_plus-2.2.0/llmwiki/adapters/contrib/chatgpt.py +262 -0
  21. llm_wiki_plus-2.2.0/llmwiki/adapters/contrib/copilot_chat.py +130 -0
  22. llm_wiki_plus-2.2.0/llmwiki/adapters/contrib/copilot_cli.py +124 -0
  23. llm_wiki_plus-2.2.0/llmwiki/adapters/contrib/cursor_cli.py +300 -0
  24. llm_wiki_plus-2.2.0/llmwiki/adapters/contrib/cursor_ide.py +459 -0
  25. llm_wiki_plus-2.2.0/llmwiki/adapters/contrib/cursor_slug.py +11 -0
  26. llm_wiki_plus-2.2.0/llmwiki/adapters/contrib/gemini_cli.py +82 -0
  27. llm_wiki_plus-2.2.0/llmwiki/adapters/contrib/obsidian.py +129 -0
  28. llm_wiki_plus-2.2.0/llmwiki/adapters/contrib/openclaw.py +183 -0
  29. llm_wiki_plus-2.2.0/llmwiki/adapters/contrib/opencode.py +175 -0
  30. llm_wiki_plus-2.2.0/llmwiki/adapters/settings.py +133 -0
  31. llm_wiki_plus-2.2.0/llmwiki/adapters/status.py +103 -0
  32. llm_wiki_plus-2.2.0/llmwiki/add_doc.py +1050 -0
  33. llm_wiki_plus-2.2.0/llmwiki/agent_kit/__init__.py +35 -0
  34. llm_wiki_plus-2.2.0/llmwiki/agent_kit/commands/wiki-all.md +47 -0
  35. llm_wiki_plus-2.2.0/llmwiki/agent_kit/commands/wiki-build.md +15 -0
  36. llm_wiki_plus-2.2.0/llmwiki/agent_kit/commands/wiki-candidates.md +71 -0
  37. llm_wiki_plus-2.2.0/llmwiki/agent_kit/commands/wiki-graph.md +52 -0
  38. llm_wiki_plus-2.2.0/llmwiki/agent_kit/commands/wiki-ingest.md +59 -0
  39. llm_wiki_plus-2.2.0/llmwiki/agent_kit/commands/wiki-init.md +12 -0
  40. llm_wiki_plus-2.2.0/llmwiki/agent_kit/commands/wiki-lint.md +29 -0
  41. llm_wiki_plus-2.2.0/llmwiki/agent_kit/commands/wiki-query.md +30 -0
  42. llm_wiki_plus-2.2.0/llmwiki/agent_kit/commands/wiki-reflect.md +53 -0
  43. llm_wiki_plus-2.2.0/llmwiki/agent_kit/commands/wiki-sync.md +30 -0
  44. llm_wiki_plus-2.2.0/llmwiki/agent_kit/commands/wiki-synth.md +46 -0
  45. llm_wiki_plus-2.2.0/llmwiki/agent_kit/commands/wiki-update.md +41 -0
  46. llm_wiki_plus-2.2.0/llmwiki/agent_kit/skills/llmwiki-ingest/SKILL.md +81 -0
  47. llm_wiki_plus-2.2.0/llmwiki/agent_kit/skills/llmwiki-query/SKILL.md +64 -0
  48. llm_wiki_plus-2.2.0/llmwiki/agent_kit/skills/llmwiki-sync/SKILL.md +102 -0
  49. llm_wiki_plus-2.2.0/llmwiki/agent_kit/skills/wiki-all/SKILL.md +59 -0
  50. llm_wiki_plus-2.2.0/llmwiki/agent_label.py +104 -0
  51. llm_wiki_plus-2.2.0/llmwiki/automation_install.py +597 -0
  52. llm_wiki_plus-2.2.0/llmwiki/automation_plan.py +209 -0
  53. llm_wiki_plus-2.2.0/llmwiki/automation_status.py +48 -0
  54. llm_wiki_plus-2.2.0/llmwiki/backlinks.py +223 -0
  55. llm_wiki_plus-2.2.0/llmwiki/build.py +3475 -0
  56. llm_wiki_plus-2.2.0/llmwiki/cache.py +333 -0
  57. llm_wiki_plus-2.2.0/llmwiki/candidates.py +1080 -0
  58. llm_wiki_plus-2.2.0/llmwiki/candidates_harvest.py +542 -0
  59. llm_wiki_plus-2.2.0/llmwiki/candidates_site.py +838 -0
  60. llm_wiki_plus-2.2.0/llmwiki/categories.py +156 -0
  61. llm_wiki_plus-2.2.0/llmwiki/changelog_timeline.py +427 -0
  62. llm_wiki_plus-2.2.0/llmwiki/claude_path.py +55 -0
  63. llm_wiki_plus-2.2.0/llmwiki/cli.py +3353 -0
  64. llm_wiki_plus-2.2.0/llmwiki/completion.py +190 -0
  65. llm_wiki_plus-2.2.0/llmwiki/confidence.py +177 -0
  66. llm_wiki_plus-2.2.0/llmwiki/config_schedule.py +147 -0
  67. llm_wiki_plus-2.2.0/llmwiki/configure_sources.py +400 -0
  68. llm_wiki_plus-2.2.0/llmwiki/context_md.py +182 -0
  69. llm_wiki_plus-2.2.0/llmwiki/convert.py +2147 -0
  70. llm_wiki_plus-2.2.0/llmwiki/cron_spec.py +502 -0
  71. llm_wiki_plus-2.2.0/llmwiki/docs_pages.py +817 -0
  72. llm_wiki_plus-2.2.0/llmwiki/exporters.py +516 -0
  73. llm_wiki_plus-2.2.0/llmwiki/format_numbers.py +26 -0
  74. llm_wiki_plus-2.2.0/llmwiki/freshness.py +158 -0
  75. llm_wiki_plus-2.2.0/llmwiki/graph.py +788 -0
  76. llm_wiki_plus-2.2.0/llmwiki/graphify_bridge.py +537 -0
  77. llm_wiki_plus-2.2.0/llmwiki/htmlmd.py +202 -0
  78. llm_wiki_plus-2.2.0/llmwiki/ingest_queue.py +105 -0
  79. llm_wiki_plus-2.2.0/llmwiki/install_agent_kit.py +330 -0
  80. llm_wiki_plus-2.2.0/llmwiki/install_hint.py +139 -0
  81. llm_wiki_plus-2.2.0/llmwiki/lifecycle.py +166 -0
  82. llm_wiki_plus-2.2.0/llmwiki/link_checker.py +148 -0
  83. llm_wiki_plus-2.2.0/llmwiki/lint/__init__.py +308 -0
  84. llm_wiki_plus-2.2.0/llmwiki/lint/report.py +132 -0
  85. llm_wiki_plus-2.2.0/llmwiki/lint/rules/__init__.py +69 -0
  86. llm_wiki_plus-2.2.0/llmwiki/lint/rules/_helpers.py +119 -0
  87. llm_wiki_plus-2.2.0/llmwiki/lint/rules/claim_verification.py +40 -0
  88. llm_wiki_plus-2.2.0/llmwiki/lint/rules/content_freshness.py +41 -0
  89. llm_wiki_plus-2.2.0/llmwiki/lint/rules/contradiction_detection.py +157 -0
  90. llm_wiki_plus-2.2.0/llmwiki/lint/rules/duplicate_detection.py +164 -0
  91. llm_wiki_plus-2.2.0/llmwiki/lint/rules/frontmatter_completeness.py +47 -0
  92. llm_wiki_plus-2.2.0/llmwiki/lint/rules/frontmatter_count_consistency.py +61 -0
  93. llm_wiki_plus-2.2.0/llmwiki/lint/rules/frontmatter_validity.py +63 -0
  94. llm_wiki_plus-2.2.0/llmwiki/lint/rules/index_sync.py +68 -0
  95. llm_wiki_plus-2.2.0/llmwiki/lint/rules/link_integrity.py +82 -0
  96. llm_wiki_plus-2.2.0/llmwiki/lint/rules/orphan_detection.py +68 -0
  97. llm_wiki_plus-2.2.0/llmwiki/lint/rules/provenance_integrity.py +109 -0
  98. llm_wiki_plus-2.2.0/llmwiki/lint/rules/stale_candidates.py +59 -0
  99. llm_wiki_plus-2.2.0/llmwiki/lint/rules/stale_reference_detection.py +42 -0
  100. llm_wiki_plus-2.2.0/llmwiki/lint/rules/stub_source_pages.py +55 -0
  101. llm_wiki_plus-2.2.0/llmwiki/lint/rules/summary_accuracy.py +28 -0
  102. llm_wiki_plus-2.2.0/llmwiki/lint/rules/tags_topics_convention.py +58 -0
  103. llm_wiki_plus-2.2.0/llmwiki/lint/rules/tools_consistency.py +65 -0
  104. llm_wiki_plus-2.2.0/llmwiki/log_reader.py +128 -0
  105. llm_wiki_plus-2.2.0/llmwiki/manifest.py +132 -0
  106. llm_wiki_plus-2.2.0/llmwiki/mcp/__init__.py +29 -0
  107. llm_wiki_plus-2.2.0/llmwiki/mcp/__main__.py +5 -0
  108. llm_wiki_plus-2.2.0/llmwiki/mcp/server.py +1465 -0
  109. llm_wiki_plus-2.2.0/llmwiki/migrate_broken_provenance.py +463 -0
  110. llm_wiki_plus-2.2.0/llmwiki/migrate_page_kinds.py +343 -0
  111. llm_wiki_plus-2.2.0/llmwiki/migrate_topic_kinds.py +472 -0
  112. llm_wiki_plus-2.2.0/llmwiki/model_pricing.csv +13 -0
  113. llm_wiki_plus-2.2.0/llmwiki/models_page.py +279 -0
  114. llm_wiki_plus-2.2.0/llmwiki/obsidian_output.py +205 -0
  115. llm_wiki_plus-2.2.0/llmwiki/pipeline.py +411 -0
  116. llm_wiki_plus-2.2.0/llmwiki/pipeline_lock.py +108 -0
  117. llm_wiki_plus-2.2.0/llmwiki/project_topics.py +201 -0
  118. llm_wiki_plus-2.2.0/llmwiki/py.typed +0 -0
  119. llm_wiki_plus-2.2.0/llmwiki/quarantine.py +274 -0
  120. llm_wiki_plus-2.2.0/llmwiki/queue.py +29 -0
  121. llm_wiki_plus-2.2.0/llmwiki/queue_ops.py +193 -0
  122. llm_wiki_plus-2.2.0/llmwiki/raw_docs_site.py +505 -0
  123. llm_wiki_plus-2.2.0/llmwiki/references.py +244 -0
  124. llm_wiki_plus-2.2.0/llmwiki/reindex.py +499 -0
  125. llm_wiki_plus-2.2.0/llmwiki/remove_doc.py +304 -0
  126. llm_wiki_plus-2.2.0/llmwiki/render/__init__.py +20 -0
  127. llm_wiki_plus-2.2.0/llmwiki/render/collapse_section.py +76 -0
  128. llm_wiki_plus-2.2.0/llmwiki/render/css.py +1221 -0
  129. llm_wiki_plus-2.2.0/llmwiki/render/data.py +43 -0
  130. llm_wiki_plus-2.2.0/llmwiki/render/docs_css.py +473 -0
  131. llm_wiki_plus-2.2.0/llmwiki/render/graph_viewer.py +677 -0
  132. llm_wiki_plus-2.2.0/llmwiki/render/js.py +1902 -0
  133. llm_wiki_plus-2.2.0/llmwiki/schema.py +264 -0
  134. llm_wiki_plus-2.2.0/llmwiki/search_facets.py +138 -0
  135. llm_wiki_plus-2.2.0/llmwiki/search_tree.py +185 -0
  136. llm_wiki_plus-2.2.0/llmwiki/session_ready.py +235 -0
  137. llm_wiki_plus-2.2.0/llmwiki/skill_installer.py +111 -0
  138. llm_wiki_plus-2.2.0/llmwiki/slugs.py +198 -0
  139. llm_wiki_plus-2.2.0/llmwiki/source_checkout.py +56 -0
  140. llm_wiki_plus-2.2.0/llmwiki/source_topics.py +142 -0
  141. llm_wiki_plus-2.2.0/llmwiki/state_store.py +459 -0
  142. llm_wiki_plus-2.2.0/llmwiki/sync/__init__.py +13 -0
  143. llm_wiki_plus-2.2.0/llmwiki/sync/lookback.py +101 -0
  144. llm_wiki_plus-2.2.0/llmwiki/sync/status.py +137 -0
  145. llm_wiki_plus-2.2.0/llmwiki/synth/__init__.py +14 -0
  146. llm_wiki_plus-2.2.0/llmwiki/synth/base.py +190 -0
  147. llm_wiki_plus-2.2.0/llmwiki/synth/claude_cli.py +328 -0
  148. llm_wiki_plus-2.2.0/llmwiki/synth/estimate.py +609 -0
  149. llm_wiki_plus-2.2.0/llmwiki/synth/ollama.py +404 -0
  150. llm_wiki_plus-2.2.0/llmwiki/synth/pipeline.py +1813 -0
  151. llm_wiki_plus-2.2.0/llmwiki/synth/reporting.py +119 -0
  152. llm_wiki_plus-2.2.0/llmwiki/tag_utils.py +68 -0
  153. llm_wiki_plus-2.2.0/llmwiki/tags.py +360 -0
  154. llm_wiki_plus-2.2.0/llmwiki/topics.py +425 -0
  155. llm_wiki_plus-2.2.0/llmwiki/topics_consolidate.py +208 -0
  156. llm_wiki_plus-2.2.0/llmwiki/topics_page.py +571 -0
  157. llm_wiki_plus-2.2.0/llmwiki/trace.py +605 -0
  158. llm_wiki_plus-2.2.0/llmwiki/usage.py +1077 -0
  159. llm_wiki_plus-2.2.0/llmwiki/vault.py +345 -0
  160. llm_wiki_plus-2.2.0/llmwiki/vault_settings.py +130 -0
  161. llm_wiki_plus-2.2.0/llmwiki/vendor/NOTICE +38 -0
  162. llm_wiki_plus-2.2.0/llmwiki/vendor/github-dark.min.css +10 -0
  163. llm_wiki_plus-2.2.0/llmwiki/vendor/github.min.css +10 -0
  164. llm_wiki_plus-2.2.0/llmwiki/vendor/highlight.min.js +1213 -0
  165. llm_wiki_plus-2.2.0/llmwiki/vendor/vis-network.min.js +34 -0
  166. llm_wiki_plus-2.2.0/llmwiki/viz_heatmap.py +363 -0
  167. llm_wiki_plus-2.2.0/llmwiki/viz_tokens.py +423 -0
  168. llm_wiki_plus-2.2.0/llmwiki/viz_tools.py +241 -0
  169. llm_wiki_plus-2.2.0/llmwiki/viz_wiki_value.py +311 -0
  170. llm_wiki_plus-2.2.0/llmwiki/watch.py +292 -0
  171. llm_wiki_plus-2.2.0/llmwiki/wiki_adoption.py +131 -0
  172. llm_wiki_plus-2.2.0/llmwiki/wikilinks.py +153 -0
  173. llm_wiki_plus-2.2.0/pyproject.toml +146 -0
  174. llm_wiki_plus-2.2.0/setup.cfg +4 -0
  175. llm_wiki_plus-2.2.0/tests/test_102_acceptance.py +491 -0
  176. llm_wiki_plus-2.2.0/tests/test_108_acceptance.py +423 -0
  177. llm_wiki_plus-2.2.0/tests/test_109_acceptance.py +265 -0
  178. llm_wiki_plus-2.2.0/tests/test_112_acceptance.py +206 -0
  179. llm_wiki_plus-2.2.0/tests/test_113_acceptance.py +193 -0
  180. llm_wiki_plus-2.2.0/tests/test_122_acceptance.py +362 -0
  181. llm_wiki_plus-2.2.0/tests/test_127_acceptance.py +326 -0
  182. llm_wiki_plus-2.2.0/tests/test_138_vs_removed.py +84 -0
  183. llm_wiki_plus-2.2.0/tests/test_147_acceptance.py +500 -0
  184. llm_wiki_plus-2.2.0/tests/test_150_acceptance.py +311 -0
  185. llm_wiki_plus-2.2.0/tests/test_156_acceptance.py +500 -0
  186. llm_wiki_plus-2.2.0/tests/test_170_wiki_all_skill.py +112 -0
  187. llm_wiki_plus-2.2.0/tests/test_180_exclude_headless_acceptance.py +489 -0
  188. llm_wiki_plus-2.2.0/tests/test_182_configurable_adapters_acceptance.py +54 -0
  189. llm_wiki_plus-2.2.0/tests/test_209_release_skill.py +528 -0
  190. llm_wiki_plus-2.2.0/tests/test_81_acceptance.py +443 -0
  191. llm_wiki_plus-2.2.0/tests/test_activity_timeline_label.py +86 -0
  192. llm_wiki_plus-2.2.0/tests/test_adapter_config.py +155 -0
  193. llm_wiki_plus-2.2.0/tests/test_adapter_exclude_headless_slice3.py +139 -0
  194. llm_wiki_plus-2.2.0/tests/test_adapter_graduation.py +92 -0
  195. llm_wiki_plus-2.2.0/tests/test_adapter_is_available_unified.py +121 -0
  196. llm_wiki_plus-2.2.0/tests/test_adapter_is_headless_contract.py +17 -0
  197. llm_wiki_plus-2.2.0/tests/test_adapter_settings.py +113 -0
  198. llm_wiki_plus-2.2.0/tests/test_adapter_tag.py +132 -0
  199. llm_wiki_plus-2.2.0/tests/test_adapters.py +95 -0
  200. llm_wiki_plus-2.2.0/tests/test_add_doc.py +926 -0
  201. llm_wiki_plus-2.2.0/tests/test_ai_suggested_tags.py +384 -0
  202. llm_wiki_plus-2.2.0/tests/test_all_min_refs.py +339 -0
  203. llm_wiki_plus-2.2.0/tests/test_all_optout.py +290 -0
  204. llm_wiki_plus-2.2.0/tests/test_archive_cold_storage.py +299 -0
  205. llm_wiki_plus-2.2.0/tests/test_automation_install.py +878 -0
  206. llm_wiki_plus-2.2.0/tests/test_automation_plan.py +250 -0
  207. llm_wiki_plus-2.2.0/tests/test_awos_context_gate.py +234 -0
  208. llm_wiki_plus-2.2.0/tests/test_awos_context_gate_acceptance.py +447 -0
  209. llm_wiki_plus-2.2.0/tests/test_backlinks.py +368 -0
  210. llm_wiki_plus-2.2.0/tests/test_brand_system_doc.py +168 -0
  211. llm_wiki_plus-2.2.0/tests/test_build_analytics.py +282 -0
  212. llm_wiki_plus-2.2.0/tests/test_cache.py +434 -0
  213. llm_wiki_plus-2.2.0/tests/test_candidates.py +918 -0
  214. llm_wiki_plus-2.2.0/tests/test_candidates_harvest.py +680 -0
  215. llm_wiki_plus-2.2.0/tests/test_candidates_site.py +691 -0
  216. llm_wiki_plus-2.2.0/tests/test_case_insensitive_paths.py +41 -0
  217. llm_wiki_plus-2.2.0/tests/test_categories.py +224 -0
  218. llm_wiki_plus-2.2.0/tests/test_changelog_timeline.py +334 -0
  219. llm_wiki_plus-2.2.0/tests/test_chatgpt_adapter.py +305 -0
  220. llm_wiki_plus-2.2.0/tests/test_chip_contrast.py +96 -0
  221. llm_wiki_plus-2.2.0/tests/test_ci_workflow.py +174 -0
  222. llm_wiki_plus-2.2.0/tests/test_cli.py +313 -0
  223. llm_wiki_plus-2.2.0/tests/test_cli_candidates_only.py +281 -0
  224. llm_wiki_plus-2.2.0/tests/test_cli_doc_parity.py +53 -0
  225. llm_wiki_plus-2.2.0/tests/test_cli_lifecycle_help.py +108 -0
  226. llm_wiki_plus-2.2.0/tests/test_cli_observability.py +329 -0
  227. llm_wiki_plus-2.2.0/tests/test_cli_trace.py +125 -0
  228. llm_wiki_plus-2.2.0/tests/test_cmd_all_parser.py +294 -0
  229. llm_wiki_plus-2.2.0/tests/test_cmd_graph_fallback.py +70 -0
  230. llm_wiki_plus-2.2.0/tests/test_collapse_section.py +56 -0
  231. llm_wiki_plus-2.2.0/tests/test_collision_retry.py +343 -0
  232. llm_wiki_plus-2.2.0/tests/test_completion.py +132 -0
  233. llm_wiki_plus-2.2.0/tests/test_confidence.py +185 -0
  234. llm_wiki_plus-2.2.0/tests/test_config_vault_default.py +38 -0
  235. llm_wiki_plus-2.2.0/tests/test_configure_sources.py +502 -0
  236. llm_wiki_plus-2.2.0/tests/test_context_md.py +192 -0
  237. llm_wiki_plus-2.2.0/tests/test_contradiction_filler.py +106 -0
  238. llm_wiki_plus-2.2.0/tests/test_convert.py +529 -0
  239. llm_wiki_plus-2.2.0/tests/test_convert_no_op_perf.py +143 -0
  240. llm_wiki_plus-2.2.0/tests/test_convert_state_and_coerce.py +352 -0
  241. llm_wiki_plus-2.2.0/tests/test_converter_metrics.py +440 -0
  242. llm_wiki_plus-2.2.0/tests/test_copilot_adapters.py +465 -0
  243. llm_wiki_plus-2.2.0/tests/test_cron_spec.py +608 -0
  244. llm_wiki_plus-2.2.0/tests/test_cross_platform_paths.py +166 -0
  245. llm_wiki_plus-2.2.0/tests/test_cursor_cli_exclude_headless.py +404 -0
  246. llm_wiki_plus-2.2.0/tests/test_cursor_ide_adapter.py +121 -0
  247. llm_wiki_plus-2.2.0/tests/test_cursor_ide_fixtures.py +45 -0
  248. llm_wiki_plus-2.2.0/tests/test_dashboard.py +96 -0
  249. llm_wiki_plus-2.2.0/tests/test_default_redaction.py +171 -0
  250. llm_wiki_plus-2.2.0/tests/test_demo_gate.py +243 -0
  251. llm_wiki_plus-2.2.0/tests/test_docker.py +200 -0
  252. llm_wiki_plus-2.2.0/tests/test_docs_adapter_currency.py +133 -0
  253. llm_wiki_plus-2.2.0/tests/test_docs_structure.py +357 -0
  254. llm_wiki_plus-2.2.0/tests/test_edge_cases.py +346 -0
  255. llm_wiki_plus-2.2.0/tests/test_edge_cases_unit.py +392 -0
  256. llm_wiki_plus-2.2.0/tests/test_editorconfig_lychee.py +161 -0
  257. llm_wiki_plus-2.2.0/tests/test_exclude_headless.py +388 -0
  258. llm_wiki_plus-2.2.0/tests/test_exclude_headless_synthesis.py +324 -0
  259. llm_wiki_plus-2.2.0/tests/test_file_protocol_search.py +207 -0
  260. llm_wiki_plus-2.2.0/tests/test_filter_slug_label.py +83 -0
  261. llm_wiki_plus-2.2.0/tests/test_flat_naming.py +132 -0
  262. llm_wiki_plus-2.2.0/tests/test_footer_build_timestamp.py +27 -0
  263. llm_wiki_plus-2.2.0/tests/test_force_counters.py +297 -0
  264. llm_wiki_plus-2.2.0/tests/test_freshness.py +266 -0
  265. llm_wiki_plus-2.2.0/tests/test_frontmatter_consolidation.py +75 -0
  266. llm_wiki_plus-2.2.0/tests/test_frontmatter_shared.py +278 -0
  267. llm_wiki_plus-2.2.0/tests/test_gap_fixes.py +194 -0
  268. llm_wiki_plus-2.2.0/tests/test_github_link_rewriter.py +193 -0
  269. llm_wiki_plus-2.2.0/tests/test_graph_context_menu.py +227 -0
  270. llm_wiki_plus-2.2.0/tests/test_graph_kind_colors.py +93 -0
  271. llm_wiki_plus-2.2.0/tests/test_graph_link_targets.py +67 -0
  272. llm_wiki_plus-2.2.0/tests/test_graph_physics_freeze.py +87 -0
  273. llm_wiki_plus-2.2.0/tests/test_graph_site_url.py +305 -0
  274. llm_wiki_plus-2.2.0/tests/test_graph_theme_sync.py +87 -0
  275. llm_wiki_plus-2.2.0/tests/test_graph_top_nav.py +107 -0
  276. llm_wiki_plus-2.2.0/tests/test_graph_topic_panel.py +183 -0
  277. llm_wiki_plus-2.2.0/tests/test_graph_vendor_packaging.py +142 -0
  278. llm_wiki_plus-2.2.0/tests/test_graph_viewer.py +442 -0
  279. llm_wiki_plus-2.2.0/tests/test_graphify_bridge.py +228 -0
  280. llm_wiki_plus-2.2.0/tests/test_harness_starts_no_server.py +109 -0
  281. llm_wiki_plus-2.2.0/tests/test_healer_comment.py +185 -0
  282. llm_wiki_plus-2.2.0/tests/test_highlightjs.py +357 -0
  283. llm_wiki_plus-2.2.0/tests/test_home_card_date_range.py +96 -0
  284. llm_wiki_plus-2.2.0/tests/test_homebrew_tap.py +212 -0
  285. llm_wiki_plus-2.2.0/tests/test_htmlmd.py +80 -0
  286. llm_wiki_plus-2.2.0/tests/test_ignore.py +89 -0
  287. llm_wiki_plus-2.2.0/tests/test_include_subagents.py +370 -0
  288. llm_wiki_plus-2.2.0/tests/test_ingest_queue_shim.py +57 -0
  289. llm_wiki_plus-2.2.0/tests/test_init_vault.py +62 -0
  290. llm_wiki_plus-2.2.0/tests/test_install_agent_kit.py +597 -0
  291. llm_wiki_plus-2.2.0/tests/test_install_docs_match_packaging.py +86 -0
  292. llm_wiki_plus-2.2.0/tests/test_install_hint.py +153 -0
  293. llm_wiki_plus-2.2.0/tests/test_is_subagent.py +116 -0
  294. llm_wiki_plus-2.2.0/tests/test_issue_383_pipeline.py +131 -0
  295. llm_wiki_plus-2.2.0/tests/test_lifecycle.py +151 -0
  296. llm_wiki_plus-2.2.0/tests/test_light_mode_polish.py +75 -0
  297. llm_wiki_plus-2.2.0/tests/test_lint_determinism.py +120 -0
  298. llm_wiki_plus-2.2.0/tests/test_lint_min_refs.py +264 -0
  299. llm_wiki_plus-2.2.0/tests/test_lint_perf.py +301 -0
  300. llm_wiki_plus-2.2.0/tests/test_lint_rules.py +1229 -0
  301. llm_wiki_plus-2.2.0/tests/test_lint_vault_settings.py +415 -0
  302. llm_wiki_plus-2.2.0/tests/test_lint_windows_paths.py +72 -0
  303. llm_wiki_plus-2.2.0/tests/test_log_reader.py +107 -0
  304. llm_wiki_plus-2.2.0/tests/test_mcp_byte_cap.py +177 -0
  305. llm_wiki_plus-2.2.0/tests/test_mcp_caller_attribution.py +343 -0
  306. llm_wiki_plus-2.2.0/tests/test_mcp_enhanced.py +524 -0
  307. llm_wiki_plus-2.2.0/tests/test_mcp_lint_parity.py +280 -0
  308. llm_wiki_plus-2.2.0/tests/test_mcp_protocol.py +287 -0
  309. llm_wiki_plus-2.2.0/tests/test_mcp_read_page_allowlist.py +108 -0
  310. llm_wiki_plus-2.2.0/tests/test_mcp_safety.py +476 -0
  311. llm_wiki_plus-2.2.0/tests/test_mcp_usage.py +477 -0
  312. llm_wiki_plus-2.2.0/tests/test_mcp_wiki_add.py +131 -0
  313. llm_wiki_plus-2.2.0/tests/test_md_cache.py +227 -0
  314. llm_wiki_plus-2.2.0/tests/test_migrate_broken_provenance.py +231 -0
  315. llm_wiki_plus-2.2.0/tests/test_migrate_page_kinds.py +467 -0
  316. llm_wiki_plus-2.2.0/tests/test_migrate_raw_encoded_username.py +128 -0
  317. llm_wiki_plus-2.2.0/tests/test_migrate_state.py +214 -0
  318. llm_wiki_plus-2.2.0/tests/test_migrate_tools_used.py +195 -0
  319. llm_wiki_plus-2.2.0/tests/test_migrate_topic_kinds.py +497 -0
  320. llm_wiki_plus-2.2.0/tests/test_mobile_hamburger_nav.py +109 -0
  321. llm_wiki_plus-2.2.0/tests/test_models_page.py +191 -0
  322. llm_wiki_plus-2.2.0/tests/test_no_phantom_adapters.py +71 -0
  323. llm_wiki_plus-2.2.0/tests/test_obsidian_docs.py +49 -0
  324. llm_wiki_plus-2.2.0/tests/test_obsidian_templates.py +121 -0
  325. llm_wiki_plus-2.2.0/tests/test_ollama_backend.py +513 -0
  326. llm_wiki_plus-2.2.0/tests/test_openclaw_cursor_cli_adapters.py +231 -0
  327. llm_wiki_plus-2.2.0/tests/test_opencode_adapter.py +229 -0
  328. llm_wiki_plus-2.2.0/tests/test_page_kinds.py +205 -0
  329. llm_wiki_plus-2.2.0/tests/test_pages_deploy.py +399 -0
  330. llm_wiki_plus-2.2.0/tests/test_palette_dialog_a11y.py +134 -0
  331. llm_wiki_plus-2.2.0/tests/test_palette_indexes.py +130 -0
  332. llm_wiki_plus-2.2.0/tests/test_parse_jsonl_oserror.py +90 -0
  333. llm_wiki_plus-2.2.0/tests/test_path_traversal.py +158 -0
  334. llm_wiki_plus-2.2.0/tests/test_pipeline_lock.py +97 -0
  335. llm_wiki_plus-2.2.0/tests/test_post_review_remediation.py +148 -0
  336. llm_wiki_plus-2.2.0/tests/test_pr_template.py +141 -0
  337. llm_wiki_plus-2.2.0/tests/test_pre_push_hook.py +230 -0
  338. llm_wiki_plus-2.2.0/tests/test_privacy_username.py +44 -0
  339. llm_wiki_plus-2.2.0/tests/test_project_page_connections.py +348 -0
  340. llm_wiki_plus-2.2.0/tests/test_project_stubs.py +413 -0
  341. llm_wiki_plus-2.2.0/tests/test_project_topics.py +232 -0
  342. llm_wiki_plus-2.2.0/tests/test_provenance_sources_links.py +325 -0
  343. llm_wiki_plus-2.2.0/tests/test_quarantine.py +298 -0
  344. llm_wiki_plus-2.2.0/tests/test_queue.py +106 -0
  345. llm_wiki_plus-2.2.0/tests/test_queue_dispatch.py +135 -0
  346. llm_wiki_plus-2.2.0/tests/test_raw_docs_site.py +221 -0
  347. llm_wiki_plus-2.2.0/tests/test_raw_immutability.py +163 -0
  348. llm_wiki_plus-2.2.0/tests/test_reader_api_doc.py +209 -0
  349. llm_wiki_plus-2.2.0/tests/test_readme_badges.py +170 -0
  350. llm_wiki_plus-2.2.0/tests/test_reference_coverage.py +279 -0
  351. llm_wiki_plus-2.2.0/tests/test_references.py +428 -0
  352. llm_wiki_plus-2.2.0/tests/test_refresh_demo.py +270 -0
  353. llm_wiki_plus-2.2.0/tests/test_reindex.py +408 -0
  354. llm_wiki_plus-2.2.0/tests/test_release_pipeline.py +262 -0
  355. llm_wiki_plus-2.2.0/tests/test_remove_doc.py +308 -0
  356. llm_wiki_plus-2.2.0/tests/test_render_is_subagent.py +68 -0
  357. llm_wiki_plus-2.2.0/tests/test_render_split.py +101 -0
  358. llm_wiki_plus-2.2.0/tests/test_schedule_config.py +49 -0
  359. llm_wiki_plus-2.2.0/tests/test_schema.py +155 -0
  360. llm_wiki_plus-2.2.0/tests/test_schema_entity_types.py +44 -0
  361. llm_wiki_plus-2.2.0/tests/test_search_facets.py +250 -0
  362. llm_wiki_plus-2.2.0/tests/test_search_tree.py +312 -0
  363. llm_wiki_plus-2.2.0/tests/test_session_description.py +139 -0
  364. llm_wiki_plus-2.2.0/tests/test_session_ready.py +69 -0
  365. llm_wiki_plus-2.2.0/tests/test_session_ref.py +118 -0
  366. llm_wiki_plus-2.2.0/tests/test_session_ref_stripper.py +201 -0
  367. llm_wiki_plus-2.2.0/tests/test_session_resume_cwd.py +386 -0
  368. llm_wiki_plus-2.2.0/tests/test_sessions_index_no_date_dup.py +168 -0
  369. llm_wiki_plus-2.2.0/tests/test_setup_guide_doc.py +92 -0
  370. llm_wiki_plus-2.2.0/tests/test_site_chrome_shared.py +176 -0
  371. llm_wiki_plus-2.2.0/tests/test_skill_installer.py +155 -0
  372. llm_wiki_plus-2.2.0/tests/test_slash_cli_parity.py +200 -0
  373. llm_wiki_plus-2.2.0/tests/test_slug_fallback.py +188 -0
  374. llm_wiki_plus-2.2.0/tests/test_slugs.py +226 -0
  375. llm_wiki_plus-2.2.0/tests/test_source_checkout_guard.py +182 -0
  376. llm_wiki_plus-2.2.0/tests/test_source_file_index.py +137 -0
  377. llm_wiki_plus-2.2.0/tests/test_source_root_content.py +27 -0
  378. llm_wiki_plus-2.2.0/tests/test_source_synth_is_done.py +186 -0
  379. llm_wiki_plus-2.2.0/tests/test_source_topics.py +116 -0
  380. llm_wiki_plus-2.2.0/tests/test_state_downgrade_guard.py +144 -0
  381. llm_wiki_plus-2.2.0/tests/test_state_store.py +72 -0
  382. llm_wiki_plus-2.2.0/tests/test_state_widget.py +836 -0
  383. llm_wiki_plus-2.2.0/tests/test_static_site_no_server.py +378 -0
  384. llm_wiki_plus-2.2.0/tests/test_stub_backlog.py +463 -0
  385. llm_wiki_plus-2.2.0/tests/test_subprocess_paths.py +182 -0
  386. llm_wiki_plus-2.2.0/tests/test_suite_config_isolation.py +22 -0
  387. llm_wiki_plus-2.2.0/tests/test_sync_downgrade_guard_cli.py +112 -0
  388. llm_wiki_plus-2.2.0/tests/test_sync_lookback.py +923 -0
  389. llm_wiki_plus-2.2.0/tests/test_sync_own_output.py +184 -0
  390. llm_wiki_plus-2.2.0/tests/test_synth_claude_cli.py +338 -0
  391. llm_wiki_plus-2.2.0/tests/test_synth_dedup_guard.py +133 -0
  392. llm_wiki_plus-2.2.0/tests/test_synth_parallel.py +851 -0
  393. llm_wiki_plus-2.2.0/tests/test_synth_parallel_acceptance.py +819 -0
  394. llm_wiki_plus-2.2.0/tests/test_synth_pipeline.py +796 -0
  395. llm_wiki_plus-2.2.0/tests/test_synth_raw_docs.py +231 -0
  396. llm_wiki_plus-2.2.0/tests/test_synth_rename.py +90 -0
  397. llm_wiki_plus-2.2.0/tests/test_synth_run_summary.py +441 -0
  398. llm_wiki_plus-2.2.0/tests/test_synth_stub_guard.py +98 -0
  399. llm_wiki_plus-2.2.0/tests/test_synthesize_estimate.py +752 -0
  400. llm_wiki_plus-2.2.0/tests/test_synthesize_overview_safety.py +166 -0
  401. llm_wiki_plus-2.2.0/tests/test_synthesize_path.py +450 -0
  402. llm_wiki_plus-2.2.0/tests/test_tag_utils.py +121 -0
  403. llm_wiki_plus-2.2.0/tests/test_tags.py +494 -0
  404. llm_wiki_plus-2.2.0/tests/test_theme_pre_paint.py +75 -0
  405. llm_wiki_plus-2.2.0/tests/test_topic_freshness.py +148 -0
  406. llm_wiki_plus-2.2.0/tests/test_topic_graph_sparse_fallback.py +82 -0
  407. llm_wiki_plus-2.2.0/tests/test_topic_identity_line.py +130 -0
  408. llm_wiki_plus-2.2.0/tests/test_topic_page_content.py +290 -0
  409. llm_wiki_plus-2.2.0/tests/test_topic_project_routing.py +260 -0
  410. llm_wiki_plus-2.2.0/tests/test_topic_search_index.py +207 -0
  411. llm_wiki_plus-2.2.0/tests/test_topics.py +567 -0
  412. llm_wiki_plus-2.2.0/tests/test_trace.py +232 -0
  413. llm_wiki_plus-2.2.0/tests/test_tracked_file_guard.py +121 -0
  414. llm_wiki_plus-2.2.0/tests/test_tutorial_ux.py +227 -0
  415. llm_wiki_plus-2.2.0/tests/test_two_way_editing.py +201 -0
  416. llm_wiki_plus-2.2.0/tests/test_ui_a11y_bundle_473.py +133 -0
  417. llm_wiki_plus-2.2.0/tests/test_usage_cli.py +112 -0
  418. llm_wiki_plus-2.2.0/tests/test_usage_daily.py +209 -0
  419. llm_wiki_plus-2.2.0/tests/test_username_autodetect.py +163 -0
  420. llm_wiki_plus-2.2.0/tests/test_username_redact_paths.py +105 -0
  421. llm_wiki_plus-2.2.0/tests/test_v02.py +203 -0
  422. llm_wiki_plus-2.2.0/tests/test_v03.py +130 -0
  423. llm_wiki_plus-2.2.0/tests/test_v04.py +294 -0
  424. llm_wiki_plus-2.2.0/tests/test_v1378_remediation.py +206 -0
  425. llm_wiki_plus-2.2.0/tests/test_vault.py +608 -0
  426. llm_wiki_plus-2.2.0/tests/test_vault_path_audit.py +167 -0
  427. llm_wiki_plus-2.2.0/tests/test_vault_sync_routing.py +195 -0
  428. llm_wiki_plus-2.2.0/tests/test_viewport_meta.py +49 -0
  429. llm_wiki_plus-2.2.0/tests/test_viz_heatmap.py +274 -0
  430. llm_wiki_plus-2.2.0/tests/test_viz_tokens.py +354 -0
  431. llm_wiki_plus-2.2.0/tests/test_viz_tools.py +214 -0
  432. llm_wiki_plus-2.2.0/tests/test_watch_adapters.py +52 -0
  433. llm_wiki_plus-2.2.0/tests/test_wcag_contrast.py +197 -0
  434. llm_wiki_plus-2.2.0/tests/test_wiki_adoption.py +72 -0
  435. llm_wiki_plus-2.2.0/tests/test_wikilinks.py +213 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Pratiyush
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,176 @@
1
+ Metadata-Version: 2.4
2
+ Name: llm-wiki-plus
3
+ Version: 2.2.0
4
+ Summary: Karpathy-style LLM wiki from your Claude Code, Codex CLI, Cursor, and Obsidian sessions
5
+ Author-email: Alexander Makarov <4ellendger@gmail.com>, Pratiyush <pratiyush1@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/AlexanderMakarov/llm-wiki
8
+ Project-URL: Documentation, https://github.com/AlexanderMakarov/llm-wiki/tree/main/docs
9
+ Project-URL: Repository, https://github.com/AlexanderMakarov/llm-wiki
10
+ Project-URL: Issues, https://github.com/AlexanderMakarov/llm-wiki/issues
11
+ Project-URL: Changelog, https://github.com/AlexanderMakarov/llm-wiki/blob/main/CHANGELOG.md
12
+ Project-URL: Releases, https://github.com/AlexanderMakarov/llm-wiki/releases
13
+ Keywords: llm-wiki,karpathy,knowledge-base,claude-code,codex-cli,cursor,obsidian,session-history,static-site,mcp
14
+ Classifier: Development Status :: 3 - Alpha
15
+ Classifier: Environment :: Console
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Operating System :: MacOS
19
+ Classifier: Operating System :: POSIX :: Linux
20
+ Classifier: Operating System :: Microsoft :: Windows
21
+ Classifier: Programming Language :: Python :: 3
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Topic :: Documentation
24
+ Classifier: Topic :: Software Development :: Documentation
25
+ Classifier: Topic :: Text Processing :: Markup :: Markdown
26
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
27
+ Classifier: Framework :: Pytest
28
+ Classifier: Typing :: Typed
29
+ Classifier: Natural Language :: English
30
+ Requires-Python: >=3.12
31
+ Description-Content-Type: text/markdown
32
+ License-File: LICENSE
33
+ Requires-Dist: markdown>=3.9
34
+ Provides-Extra: highlight
35
+ Provides-Extra: graph
36
+ Requires-Dist: graphifyy>=0.4.20; extra == "graph"
37
+ Provides-Extra: add
38
+ Requires-Dist: trafilatura>=2.0.0; extra == "add"
39
+ Requires-Dist: markitdown[docx,pdf,pptx,xlsx]>=0.1.2; extra == "add"
40
+ Provides-Extra: dev
41
+ Requires-Dist: pytest>=8.4.2; extra == "dev"
42
+ Requires-Dist: ruff>=0.15.11; extra == "dev"
43
+ Provides-Extra: e2e
44
+ Requires-Dist: pytest>=8.4.2; extra == "e2e"
45
+ Requires-Dist: pytest-playwright>=0.7.1; extra == "e2e"
46
+ Requires-Dist: pytest-bdd>=8.1.0; extra == "e2e"
47
+ Requires-Dist: pytest-html>=4.2.0; extra == "e2e"
48
+ Requires-Dist: Pillow>=10.0; extra == "e2e"
49
+ Provides-Extra: all
50
+ Requires-Dist: graphifyy>=0.4.20; extra == "all"
51
+ Dynamic: license-file
52
+
53
+ # llmwiki
54
+
55
+ Your coding-agent sessions, compiled into a local wiki you can search, graph, and open as plain files.
56
+
57
+ [Live demo](https://alexandermakarov.github.io/llm-wiki/) · [Karpathy's LLM Wiki pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f)
58
+
59
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
60
+ [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/)
61
+ [![Version](https://img.shields.io/badge/version-v2.2.0-10B981.svg)](CHANGELOG.md)
62
+ [![CI](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/ci.yml)
63
+ [![Link check](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/link-check.yml/badge.svg?branch=main)](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/link-check.yml)
64
+ [![Wiki checks](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/wiki-checks.yml/badge.svg?branch=main)](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/wiki-checks.yml)
65
+
66
+ llmwiki turns transcripts from Claude Code, Codex, Cursor, OpenClaw and others into redacted markdown, then builds a static site: session browser, topic graph, candidate review, MCP tools. Your data stays in a vault outside git. Nothing has to be running to read the site — open `site/index.html`.
67
+
68
+ ## What you get
69
+
70
+ - **A searchable static site** — sessions, projects, topics, graph, analytics. Dark mode, Cmd+K search, syntax highlighting. Open the files; there is no server.
71
+ - **A knowledge layer** — `synth` writes source summaries and harvests entity/concept *candidates*. You review those on `/candidates.html` and apply decisions with `llmwiki candidates apply`. That review is a real gate, not an optional extra.
72
+ - **Exports agents can read** — `llms.txt`, `llms-full.txt`, JSON-LD, sitemap, RSS, plus an MCP server.
73
+ - **Your data never lands in git.** Transcripts, wiki pages and the built site live in a vault directory you choose. This repository is code plus a public [demo](demo/).
74
+
75
+ Page kinds and where each field comes from: [docs/reference/page-kinds.md](docs/reference/page-kinds.md). Every screen: [docs/reference/ui.md](docs/reference/ui.md).
76
+
77
+ ## Install
78
+
79
+ Requires **Python ≥ 3.12** (CI verifies **3.12** only; newer interpreters are installable but not matrix-tested). Runtime dependency is `markdown` only.
80
+
81
+ ```bash
82
+ pip install llm-wiki-plus
83
+ # or: brew install AlexanderMakarov/tap/llmwiki
84
+ llmwiki init --vault ~/llmwiki-vault
85
+ ```
86
+
87
+ Point a gitignored `config.json` at the vault so later commands need no `--vault`:
88
+
89
+ ```json
90
+ {
91
+ "vault": { "default_path": "/home/USER/llmwiki-vault" }
92
+ }
93
+ ```
94
+
95
+ From a clone, `./setup.sh` installs the package and reports which agents it can see. The clone itself is not a vault — bare `llmwiki init` / `sync` / `build` against this repository are refused; name `--vault` or `demo`.
96
+
97
+ **Agent commands** (slash commands and skills) ship inside the package. After install:
98
+
99
+ ```bash
100
+ llmwiki install-agent-kit --dest ~/.claude
101
+ ```
102
+
103
+ That is what a Homebrew or pip user runs so `/wiki-sync` and friends work from *their* project, not from this repository. See [docs/reference/cli.md](docs/reference/cli.md).
104
+
105
+ The install also drops a small `.llmwiki-agent-kit.json` manifest in `--dest`, recording which files it wrote and their checksums. It is safe — and useful — to commit alongside `.claude/commands/`: it is what lets a later upgrade recognise its own files and remove ones it has retired, while leaving anything you wrote or edited alone.
106
+
107
+ ## The loop
108
+
109
+ ```text
110
+ sync / add → synth → review candidates → build → open site/index.html
111
+ ```
112
+
113
+ ```bash
114
+ llmwiki sync # new transcripts → vault/raw/sessions/
115
+ llmwiki add notes.md # optional: drop a document into raw/docs/
116
+ llmwiki synth # source pages + harvest candidates
117
+ # open vault/site/candidates.html, set decisions, paste the printed command
118
+ llmwiki build # vault/wiki/ → vault/site/
119
+ ```
120
+
121
+ `synth` does not rebuild the site. `build` does. `candidates apply` rebuilds after a successful batch so `/candidates.html` matches the wiki (`--no-rebuild` skips that). Candidate review is the human gate: a row starts with no decision, Apply assembles `llmwiki candidates apply --vault … --actions '…'`, and only that command writes the wiki.
122
+
123
+ One-shot: `llmwiki all --graph-engine builtin` runs the whole loop — sync → synth → build → graph → lint. Opt out of a stage with `--no-sync`, `--no-synth`, `--skip-graph`, or `--skip-lint`.
124
+
125
+ ## Agents
126
+
127
+ One row per agent. **Supplies sessions** = `llmwiki sync` can read its transcript store. **Reads the wiki** = slash commands / MCP after `install-agent-kit` (any MCP client can also call `python3 -m llmwiki.mcp`). **Core** adapters run on a default `sync` when their store exists; **contrib** adapters need `--adapter <name>` or `adapters.<name>.enabled` in config.
128
+
129
+ | Agent | Supplies sessions | Reads the wiki | Core or contrib |
130
+ |---|---|---|---|
131
+ | Claude Code | `~/.claude/projects/*/*.jsonl` | slash commands, MCP | core (`claude_code`) |
132
+ | Codex CLI | `~/.codex/sessions/` | `AGENTS.md` workflow, MCP | core (`codex_cli`) |
133
+ | ChatGPT | contrib store | MCP | contrib (`chatgpt`) |
134
+ | Copilot Chat | VS Code workspaceStorage | MCP | contrib (`copilot_chat`) |
135
+ | Copilot CLI | `~/.copilot/session-state/` | MCP | contrib (`copilot_cli`) |
136
+ | Cursor IDE | workspaceStorage | MCP | contrib (`cursor`) |
137
+ | Cursor CLI | `~/.cursor/chats/` | MCP | contrib (`cursor_cli`) |
138
+ | Gemini CLI | `~/.gemini/` | MCP | contrib (`gemini_cli`) |
139
+ | Obsidian | markdown vault intake | wikilinks in the vault | contrib (`obsidian`) |
140
+ | OpenCode | shared OpenClaw schema | MCP | contrib (`opencode`) |
141
+ | OpenClaw | `~/.openclaw/agents/*/sessions/` | MCP | contrib (`openclaw`) |
142
+
143
+ ```bash
144
+ llmwiki adapters --wide
145
+ llmwiki sync --adapter openclaw
146
+ ```
147
+
148
+ ## Configuration
149
+
150
+ Shipped defaults: [`examples/sessions_config.json`](examples/sessions_config.json). Personal overrides: gitignored `config.json` at the clone root, merged on top. Full keys: [docs/configuration.md](docs/configuration.md).
151
+
152
+ Skip projects or dates with a `.llmwikiignore` next to the vault (one path or glob per line).
153
+
154
+ ## Documentation
155
+
156
+ | Topic | Link |
157
+ |---|---|
158
+ | Hub | [docs/index.md](docs/index.md) |
159
+ | Install + first vault | [docs/getting-started.md](docs/getting-started.md) |
160
+ | Page kinds | [docs/reference/page-kinds.md](docs/reference/page-kinds.md) |
161
+ | CLI | [docs/reference/cli.md](docs/reference/cli.md) |
162
+ | Site UI | [docs/reference/ui.md](docs/reference/ui.md) |
163
+ | Architecture | [docs/architecture.md](docs/architecture.md) |
164
+ | Upgrading | [docs/UPGRADING.md](docs/UPGRADING.md) |
165
+ | GitHub Pages | [docs/deploy/github-pages.md](docs/deploy/github-pages.md) |
166
+
167
+ This repository's `CLAUDE.md` and `AGENTS.md` are for people changing llmwiki itself. Vault workflows for users live in the installed agent kit.
168
+
169
+ ## Acknowledgements
170
+
171
+ - [Andrej Karpathy](https://twitter.com/karpathy) — [LLM Wiki idea](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f)
172
+ - [Pratiyush](https://github.com/Pratiyush/llm-wiki) — upstream this work extends
173
+
174
+ ## License
175
+
176
+ [MIT](LICENSE) © Alexander Makarov; based on upstream [Pratiyush/llm-wiki](https://github.com/Pratiyush/llm-wiki)
@@ -0,0 +1,124 @@
1
+ # llmwiki
2
+
3
+ Your coding-agent sessions, compiled into a local wiki you can search, graph, and open as plain files.
4
+
5
+ [Live demo](https://alexandermakarov.github.io/llm-wiki/) · [Karpathy's LLM Wiki pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f)
6
+
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
8
+ [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/)
9
+ [![Version](https://img.shields.io/badge/version-v2.2.0-10B981.svg)](CHANGELOG.md)
10
+ [![CI](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/ci.yml)
11
+ [![Link check](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/link-check.yml/badge.svg?branch=main)](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/link-check.yml)
12
+ [![Wiki checks](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/wiki-checks.yml/badge.svg?branch=main)](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/wiki-checks.yml)
13
+
14
+ llmwiki turns transcripts from Claude Code, Codex, Cursor, OpenClaw and others into redacted markdown, then builds a static site: session browser, topic graph, candidate review, MCP tools. Your data stays in a vault outside git. Nothing has to be running to read the site — open `site/index.html`.
15
+
16
+ ## What you get
17
+
18
+ - **A searchable static site** — sessions, projects, topics, graph, analytics. Dark mode, Cmd+K search, syntax highlighting. Open the files; there is no server.
19
+ - **A knowledge layer** — `synth` writes source summaries and harvests entity/concept *candidates*. You review those on `/candidates.html` and apply decisions with `llmwiki candidates apply`. That review is a real gate, not an optional extra.
20
+ - **Exports agents can read** — `llms.txt`, `llms-full.txt`, JSON-LD, sitemap, RSS, plus an MCP server.
21
+ - **Your data never lands in git.** Transcripts, wiki pages and the built site live in a vault directory you choose. This repository is code plus a public [demo](demo/).
22
+
23
+ Page kinds and where each field comes from: [docs/reference/page-kinds.md](docs/reference/page-kinds.md). Every screen: [docs/reference/ui.md](docs/reference/ui.md).
24
+
25
+ ## Install
26
+
27
+ Requires **Python ≥ 3.12** (CI verifies **3.12** only; newer interpreters are installable but not matrix-tested). Runtime dependency is `markdown` only.
28
+
29
+ ```bash
30
+ pip install llm-wiki-plus
31
+ # or: brew install AlexanderMakarov/tap/llmwiki
32
+ llmwiki init --vault ~/llmwiki-vault
33
+ ```
34
+
35
+ Point a gitignored `config.json` at the vault so later commands need no `--vault`:
36
+
37
+ ```json
38
+ {
39
+ "vault": { "default_path": "/home/USER/llmwiki-vault" }
40
+ }
41
+ ```
42
+
43
+ From a clone, `./setup.sh` installs the package and reports which agents it can see. The clone itself is not a vault — bare `llmwiki init` / `sync` / `build` against this repository are refused; name `--vault` or `demo`.
44
+
45
+ **Agent commands** (slash commands and skills) ship inside the package. After install:
46
+
47
+ ```bash
48
+ llmwiki install-agent-kit --dest ~/.claude
49
+ ```
50
+
51
+ That is what a Homebrew or pip user runs so `/wiki-sync` and friends work from *their* project, not from this repository. See [docs/reference/cli.md](docs/reference/cli.md).
52
+
53
+ The install also drops a small `.llmwiki-agent-kit.json` manifest in `--dest`, recording which files it wrote and their checksums. It is safe — and useful — to commit alongside `.claude/commands/`: it is what lets a later upgrade recognise its own files and remove ones it has retired, while leaving anything you wrote or edited alone.
54
+
55
+ ## The loop
56
+
57
+ ```text
58
+ sync / add → synth → review candidates → build → open site/index.html
59
+ ```
60
+
61
+ ```bash
62
+ llmwiki sync # new transcripts → vault/raw/sessions/
63
+ llmwiki add notes.md # optional: drop a document into raw/docs/
64
+ llmwiki synth # source pages + harvest candidates
65
+ # open vault/site/candidates.html, set decisions, paste the printed command
66
+ llmwiki build # vault/wiki/ → vault/site/
67
+ ```
68
+
69
+ `synth` does not rebuild the site. `build` does. `candidates apply` rebuilds after a successful batch so `/candidates.html` matches the wiki (`--no-rebuild` skips that). Candidate review is the human gate: a row starts with no decision, Apply assembles `llmwiki candidates apply --vault … --actions '…'`, and only that command writes the wiki.
70
+
71
+ One-shot: `llmwiki all --graph-engine builtin` runs the whole loop — sync → synth → build → graph → lint. Opt out of a stage with `--no-sync`, `--no-synth`, `--skip-graph`, or `--skip-lint`.
72
+
73
+ ## Agents
74
+
75
+ One row per agent. **Supplies sessions** = `llmwiki sync` can read its transcript store. **Reads the wiki** = slash commands / MCP after `install-agent-kit` (any MCP client can also call `python3 -m llmwiki.mcp`). **Core** adapters run on a default `sync` when their store exists; **contrib** adapters need `--adapter <name>` or `adapters.<name>.enabled` in config.
76
+
77
+ | Agent | Supplies sessions | Reads the wiki | Core or contrib |
78
+ |---|---|---|---|
79
+ | Claude Code | `~/.claude/projects/*/*.jsonl` | slash commands, MCP | core (`claude_code`) |
80
+ | Codex CLI | `~/.codex/sessions/` | `AGENTS.md` workflow, MCP | core (`codex_cli`) |
81
+ | ChatGPT | contrib store | MCP | contrib (`chatgpt`) |
82
+ | Copilot Chat | VS Code workspaceStorage | MCP | contrib (`copilot_chat`) |
83
+ | Copilot CLI | `~/.copilot/session-state/` | MCP | contrib (`copilot_cli`) |
84
+ | Cursor IDE | workspaceStorage | MCP | contrib (`cursor`) |
85
+ | Cursor CLI | `~/.cursor/chats/` | MCP | contrib (`cursor_cli`) |
86
+ | Gemini CLI | `~/.gemini/` | MCP | contrib (`gemini_cli`) |
87
+ | Obsidian | markdown vault intake | wikilinks in the vault | contrib (`obsidian`) |
88
+ | OpenCode | shared OpenClaw schema | MCP | contrib (`opencode`) |
89
+ | OpenClaw | `~/.openclaw/agents/*/sessions/` | MCP | contrib (`openclaw`) |
90
+
91
+ ```bash
92
+ llmwiki adapters --wide
93
+ llmwiki sync --adapter openclaw
94
+ ```
95
+
96
+ ## Configuration
97
+
98
+ Shipped defaults: [`examples/sessions_config.json`](examples/sessions_config.json). Personal overrides: gitignored `config.json` at the clone root, merged on top. Full keys: [docs/configuration.md](docs/configuration.md).
99
+
100
+ Skip projects or dates with a `.llmwikiignore` next to the vault (one path or glob per line).
101
+
102
+ ## Documentation
103
+
104
+ | Topic | Link |
105
+ |---|---|
106
+ | Hub | [docs/index.md](docs/index.md) |
107
+ | Install + first vault | [docs/getting-started.md](docs/getting-started.md) |
108
+ | Page kinds | [docs/reference/page-kinds.md](docs/reference/page-kinds.md) |
109
+ | CLI | [docs/reference/cli.md](docs/reference/cli.md) |
110
+ | Site UI | [docs/reference/ui.md](docs/reference/ui.md) |
111
+ | Architecture | [docs/architecture.md](docs/architecture.md) |
112
+ | Upgrading | [docs/UPGRADING.md](docs/UPGRADING.md) |
113
+ | GitHub Pages | [docs/deploy/github-pages.md](docs/deploy/github-pages.md) |
114
+
115
+ This repository's `CLAUDE.md` and `AGENTS.md` are for people changing llmwiki itself. Vault workflows for users live in the installed agent kit.
116
+
117
+ ## Acknowledgements
118
+
119
+ - [Andrej Karpathy](https://twitter.com/karpathy) — [LLM Wiki idea](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f)
120
+ - [Pratiyush](https://github.com/Pratiyush/llm-wiki) — upstream this work extends
121
+
122
+ ## License
123
+
124
+ [MIT](LICENSE) © Alexander Makarov; based on upstream [Pratiyush/llm-wiki](https://github.com/Pratiyush/llm-wiki)
@@ -0,0 +1,176 @@
1
+ Metadata-Version: 2.4
2
+ Name: llm-wiki-plus
3
+ Version: 2.2.0
4
+ Summary: Karpathy-style LLM wiki from your Claude Code, Codex CLI, Cursor, and Obsidian sessions
5
+ Author-email: Alexander Makarov <4ellendger@gmail.com>, Pratiyush <pratiyush1@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/AlexanderMakarov/llm-wiki
8
+ Project-URL: Documentation, https://github.com/AlexanderMakarov/llm-wiki/tree/main/docs
9
+ Project-URL: Repository, https://github.com/AlexanderMakarov/llm-wiki
10
+ Project-URL: Issues, https://github.com/AlexanderMakarov/llm-wiki/issues
11
+ Project-URL: Changelog, https://github.com/AlexanderMakarov/llm-wiki/blob/main/CHANGELOG.md
12
+ Project-URL: Releases, https://github.com/AlexanderMakarov/llm-wiki/releases
13
+ Keywords: llm-wiki,karpathy,knowledge-base,claude-code,codex-cli,cursor,obsidian,session-history,static-site,mcp
14
+ Classifier: Development Status :: 3 - Alpha
15
+ Classifier: Environment :: Console
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Operating System :: MacOS
19
+ Classifier: Operating System :: POSIX :: Linux
20
+ Classifier: Operating System :: Microsoft :: Windows
21
+ Classifier: Programming Language :: Python :: 3
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Topic :: Documentation
24
+ Classifier: Topic :: Software Development :: Documentation
25
+ Classifier: Topic :: Text Processing :: Markup :: Markdown
26
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
27
+ Classifier: Framework :: Pytest
28
+ Classifier: Typing :: Typed
29
+ Classifier: Natural Language :: English
30
+ Requires-Python: >=3.12
31
+ Description-Content-Type: text/markdown
32
+ License-File: LICENSE
33
+ Requires-Dist: markdown>=3.9
34
+ Provides-Extra: highlight
35
+ Provides-Extra: graph
36
+ Requires-Dist: graphifyy>=0.4.20; extra == "graph"
37
+ Provides-Extra: add
38
+ Requires-Dist: trafilatura>=2.0.0; extra == "add"
39
+ Requires-Dist: markitdown[docx,pdf,pptx,xlsx]>=0.1.2; extra == "add"
40
+ Provides-Extra: dev
41
+ Requires-Dist: pytest>=8.4.2; extra == "dev"
42
+ Requires-Dist: ruff>=0.15.11; extra == "dev"
43
+ Provides-Extra: e2e
44
+ Requires-Dist: pytest>=8.4.2; extra == "e2e"
45
+ Requires-Dist: pytest-playwright>=0.7.1; extra == "e2e"
46
+ Requires-Dist: pytest-bdd>=8.1.0; extra == "e2e"
47
+ Requires-Dist: pytest-html>=4.2.0; extra == "e2e"
48
+ Requires-Dist: Pillow>=10.0; extra == "e2e"
49
+ Provides-Extra: all
50
+ Requires-Dist: graphifyy>=0.4.20; extra == "all"
51
+ Dynamic: license-file
52
+
53
+ # llmwiki
54
+
55
+ Your coding-agent sessions, compiled into a local wiki you can search, graph, and open as plain files.
56
+
57
+ [Live demo](https://alexandermakarov.github.io/llm-wiki/) · [Karpathy's LLM Wiki pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f)
58
+
59
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
60
+ [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/)
61
+ [![Version](https://img.shields.io/badge/version-v2.2.0-10B981.svg)](CHANGELOG.md)
62
+ [![CI](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/ci.yml)
63
+ [![Link check](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/link-check.yml/badge.svg?branch=main)](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/link-check.yml)
64
+ [![Wiki checks](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/wiki-checks.yml/badge.svg?branch=main)](https://github.com/AlexanderMakarov/llm-wiki/actions/workflows/wiki-checks.yml)
65
+
66
+ llmwiki turns transcripts from Claude Code, Codex, Cursor, OpenClaw and others into redacted markdown, then builds a static site: session browser, topic graph, candidate review, MCP tools. Your data stays in a vault outside git. Nothing has to be running to read the site — open `site/index.html`.
67
+
68
+ ## What you get
69
+
70
+ - **A searchable static site** — sessions, projects, topics, graph, analytics. Dark mode, Cmd+K search, syntax highlighting. Open the files; there is no server.
71
+ - **A knowledge layer** — `synth` writes source summaries and harvests entity/concept *candidates*. You review those on `/candidates.html` and apply decisions with `llmwiki candidates apply`. That review is a real gate, not an optional extra.
72
+ - **Exports agents can read** — `llms.txt`, `llms-full.txt`, JSON-LD, sitemap, RSS, plus an MCP server.
73
+ - **Your data never lands in git.** Transcripts, wiki pages and the built site live in a vault directory you choose. This repository is code plus a public [demo](demo/).
74
+
75
+ Page kinds and where each field comes from: [docs/reference/page-kinds.md](docs/reference/page-kinds.md). Every screen: [docs/reference/ui.md](docs/reference/ui.md).
76
+
77
+ ## Install
78
+
79
+ Requires **Python ≥ 3.12** (CI verifies **3.12** only; newer interpreters are installable but not matrix-tested). Runtime dependency is `markdown` only.
80
+
81
+ ```bash
82
+ pip install llm-wiki-plus
83
+ # or: brew install AlexanderMakarov/tap/llmwiki
84
+ llmwiki init --vault ~/llmwiki-vault
85
+ ```
86
+
87
+ Point a gitignored `config.json` at the vault so later commands need no `--vault`:
88
+
89
+ ```json
90
+ {
91
+ "vault": { "default_path": "/home/USER/llmwiki-vault" }
92
+ }
93
+ ```
94
+
95
+ From a clone, `./setup.sh` installs the package and reports which agents it can see. The clone itself is not a vault — bare `llmwiki init` / `sync` / `build` against this repository are refused; name `--vault` or `demo`.
96
+
97
+ **Agent commands** (slash commands and skills) ship inside the package. After install:
98
+
99
+ ```bash
100
+ llmwiki install-agent-kit --dest ~/.claude
101
+ ```
102
+
103
+ That is what a Homebrew or pip user runs so `/wiki-sync` and friends work from *their* project, not from this repository. See [docs/reference/cli.md](docs/reference/cli.md).
104
+
105
+ The install also drops a small `.llmwiki-agent-kit.json` manifest in `--dest`, recording which files it wrote and their checksums. It is safe — and useful — to commit alongside `.claude/commands/`: it is what lets a later upgrade recognise its own files and remove ones it has retired, while leaving anything you wrote or edited alone.
106
+
107
+ ## The loop
108
+
109
+ ```text
110
+ sync / add → synth → review candidates → build → open site/index.html
111
+ ```
112
+
113
+ ```bash
114
+ llmwiki sync # new transcripts → vault/raw/sessions/
115
+ llmwiki add notes.md # optional: drop a document into raw/docs/
116
+ llmwiki synth # source pages + harvest candidates
117
+ # open vault/site/candidates.html, set decisions, paste the printed command
118
+ llmwiki build # vault/wiki/ → vault/site/
119
+ ```
120
+
121
+ `synth` does not rebuild the site. `build` does. `candidates apply` rebuilds after a successful batch so `/candidates.html` matches the wiki (`--no-rebuild` skips that). Candidate review is the human gate: a row starts with no decision, Apply assembles `llmwiki candidates apply --vault … --actions '…'`, and only that command writes the wiki.
122
+
123
+ One-shot: `llmwiki all --graph-engine builtin` runs the whole loop — sync → synth → build → graph → lint. Opt out of a stage with `--no-sync`, `--no-synth`, `--skip-graph`, or `--skip-lint`.
124
+
125
+ ## Agents
126
+
127
+ One row per agent. **Supplies sessions** = `llmwiki sync` can read its transcript store. **Reads the wiki** = slash commands / MCP after `install-agent-kit` (any MCP client can also call `python3 -m llmwiki.mcp`). **Core** adapters run on a default `sync` when their store exists; **contrib** adapters need `--adapter <name>` or `adapters.<name>.enabled` in config.
128
+
129
+ | Agent | Supplies sessions | Reads the wiki | Core or contrib |
130
+ |---|---|---|---|
131
+ | Claude Code | `~/.claude/projects/*/*.jsonl` | slash commands, MCP | core (`claude_code`) |
132
+ | Codex CLI | `~/.codex/sessions/` | `AGENTS.md` workflow, MCP | core (`codex_cli`) |
133
+ | ChatGPT | contrib store | MCP | contrib (`chatgpt`) |
134
+ | Copilot Chat | VS Code workspaceStorage | MCP | contrib (`copilot_chat`) |
135
+ | Copilot CLI | `~/.copilot/session-state/` | MCP | contrib (`copilot_cli`) |
136
+ | Cursor IDE | workspaceStorage | MCP | contrib (`cursor`) |
137
+ | Cursor CLI | `~/.cursor/chats/` | MCP | contrib (`cursor_cli`) |
138
+ | Gemini CLI | `~/.gemini/` | MCP | contrib (`gemini_cli`) |
139
+ | Obsidian | markdown vault intake | wikilinks in the vault | contrib (`obsidian`) |
140
+ | OpenCode | shared OpenClaw schema | MCP | contrib (`opencode`) |
141
+ | OpenClaw | `~/.openclaw/agents/*/sessions/` | MCP | contrib (`openclaw`) |
142
+
143
+ ```bash
144
+ llmwiki adapters --wide
145
+ llmwiki sync --adapter openclaw
146
+ ```
147
+
148
+ ## Configuration
149
+
150
+ Shipped defaults: [`examples/sessions_config.json`](examples/sessions_config.json). Personal overrides: gitignored `config.json` at the clone root, merged on top. Full keys: [docs/configuration.md](docs/configuration.md).
151
+
152
+ Skip projects or dates with a `.llmwikiignore` next to the vault (one path or glob per line).
153
+
154
+ ## Documentation
155
+
156
+ | Topic | Link |
157
+ |---|---|
158
+ | Hub | [docs/index.md](docs/index.md) |
159
+ | Install + first vault | [docs/getting-started.md](docs/getting-started.md) |
160
+ | Page kinds | [docs/reference/page-kinds.md](docs/reference/page-kinds.md) |
161
+ | CLI | [docs/reference/cli.md](docs/reference/cli.md) |
162
+ | Site UI | [docs/reference/ui.md](docs/reference/ui.md) |
163
+ | Architecture | [docs/architecture.md](docs/architecture.md) |
164
+ | Upgrading | [docs/UPGRADING.md](docs/UPGRADING.md) |
165
+ | GitHub Pages | [docs/deploy/github-pages.md](docs/deploy/github-pages.md) |
166
+
167
+ This repository's `CLAUDE.md` and `AGENTS.md` are for people changing llmwiki itself. Vault workflows for users live in the installed agent kit.
168
+
169
+ ## Acknowledgements
170
+
171
+ - [Andrej Karpathy](https://twitter.com/karpathy) — [LLM Wiki idea](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f)
172
+ - [Pratiyush](https://github.com/Pratiyush/llm-wiki) — upstream this work extends
173
+
174
+ ## License
175
+
176
+ [MIT](LICENSE) © Alexander Makarov; based on upstream [Pratiyush/llm-wiki](https://github.com/Pratiyush/llm-wiki)