reprompt-cli 1.4.1__tar.gz → 1.6.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 (262) hide show
  1. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/CHANGELOG.md +103 -0
  2. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/CLAUDE.md +10 -6
  3. reprompt_cli-1.6.0/PKG-INFO +215 -0
  4. reprompt_cli-1.6.0/README.md +170 -0
  5. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/docs/roadmap.md +22 -7
  6. reprompt_cli-1.6.0/docs/superpowers/specs/2026-03-28-v1.6-agent-intelligence-design.md +479 -0
  7. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/pyproject.toml +1 -1
  8. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/__init__.py +1 -1
  9. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/adapters/claude_code.py +10 -0
  10. reprompt_cli-1.6.0/src/reprompt/adapters/codex.py +239 -0
  11. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/bridge/manifest.py +2 -0
  12. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/cli.py +298 -160
  13. reprompt_cli-1.6.0/src/reprompt/core/agent.py +319 -0
  14. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/conversation.py +2 -0
  15. reprompt_cli-1.6.0/src/reprompt/core/dashboard.py +150 -0
  16. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/distill.py +66 -5
  17. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/pipeline.py +3 -0
  18. reprompt_cli-1.6.0/src/reprompt/core/privacy_scan.py +176 -0
  19. reprompt_cli-1.6.0/src/reprompt/core/session_type.py +112 -0
  20. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/suggestions.py +4 -2
  21. reprompt_cli-1.6.0/src/reprompt/output/agent_terminal.py +143 -0
  22. reprompt_cli-1.6.0/src/reprompt/output/dashboard_terminal.py +103 -0
  23. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/output/distill_terminal.py +4 -1
  24. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/output/terminal.py +47 -0
  25. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/storage/db.py +29 -0
  26. reprompt_cli-1.6.0/tests/test_agent.py +383 -0
  27. reprompt_cli-1.6.0/tests/test_agent_cli.py +178 -0
  28. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_bridge_cli.py +13 -4
  29. reprompt_cli-1.6.0/tests/test_bridge_e2e.py +343 -0
  30. reprompt_cli-1.6.0/tests/test_cli_deprecations.py +140 -0
  31. reprompt_cli-1.6.0/tests/test_cli_library_effectiveness.py +44 -0
  32. reprompt_cli-1.6.0/tests/test_codex_adapter.py +319 -0
  33. reprompt_cli-1.6.0/tests/test_copy_flag.py +133 -0
  34. reprompt_cli-1.6.0/tests/test_dashboard.py +423 -0
  35. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_db.py +39 -0
  36. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_distill.py +105 -0
  37. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_distill_cli.py +81 -0
  38. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_e2e.py +4 -19
  39. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_parse_conversation_claude.py +78 -0
  40. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_pipeline.py +1 -1
  41. reprompt_cli-1.6.0/tests/test_privacy_scan.py +195 -0
  42. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_recommend.py +3 -5
  43. reprompt_cli-1.6.0/tests/test_session_type.py +184 -0
  44. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_suggestions.py +9 -2
  45. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_trends_cli.py +6 -21
  46. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/uv.lock +1 -1
  47. reprompt_cli-1.4.1/PKG-INFO +0 -143
  48. reprompt_cli-1.4.1/README.md +0 -98
  49. reprompt_cli-1.4.1/tests/test_cli_library_effectiveness.py +0 -87
  50. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/.editorconfig +0 -0
  51. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  52. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  53. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  54. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  55. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  56. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/.github/dependabot.yml +0 -0
  57. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/.github/workflows/ci.yml +0 -0
  58. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/.github/workflows/publish.yml +0 -0
  59. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/.gitignore +0 -0
  60. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/.pre-commit-config.yaml +0 -0
  61. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/.testmondata +0 -0
  62. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/CODE_OF_CONDUCT.md +0 -0
  63. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/CONTRIBUTING.md +0 -0
  64. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/LICENSE +0 -0
  65. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/SECURITY.md +0 -0
  66. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/action.yml +0 -0
  67. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/docs/launch-post.md +0 -0
  68. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/docs/superpowers/specs/2026-03-11-html-dashboard-design.md +0 -0
  69. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/docs/superpowers/specs/2026-03-11-merge-view-design.md +0 -0
  70. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/docs/superpowers/specs/2026-03-11-prompt-templates-design.md +0 -0
  71. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/docs/superpowers/specs/2026-03-22-prompt-compress-design.md +0 -0
  72. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/docs/superpowers/specs/2026-03-23-distill-design.md +0 -0
  73. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/docs/superpowers/specs/2026-03-23-v131-suggestions-source-design.md +0 -0
  74. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/docs/superpowers/specs/2026-03-24-v14-context-recovery-design.md +0 -0
  75. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/docs/superpowers/specs/2026-03-24-v141-polish-design.md +0 -0
  76. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/module.yaml +0 -0
  77. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/scripts/generate_demo_data.py +0 -0
  78. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/scripts/launch/hn_monitor.py +0 -0
  79. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/scripts/launch/reddit_helper.py +0 -0
  80. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/adapters/__init__.py +0 -0
  81. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/adapters/aider.py +0 -0
  82. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/adapters/base.py +0 -0
  83. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/adapters/chatgpt.py +0 -0
  84. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/adapters/claude_chat.py +0 -0
  85. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/adapters/cline.py +0 -0
  86. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/adapters/cursor.py +0 -0
  87. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/adapters/filters.py +0 -0
  88. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/adapters/gemini.py +0 -0
  89. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/adapters/openclaw.py +0 -0
  90. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/bridge/__init__.py +0 -0
  91. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/bridge/handler.py +0 -0
  92. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/bridge/host.py +0 -0
  93. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/bridge/protocol.py +0 -0
  94. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/commands/__init__.py +0 -0
  95. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/commands/telemetry.py +0 -0
  96. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/commands/wrapped.py +0 -0
  97. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/config.py +0 -0
  98. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/__init__.py +0 -0
  99. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/analyzer.py +0 -0
  100. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/compress.py +0 -0
  101. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/dedup.py +0 -0
  102. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/digest.py +0 -0
  103. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/effectiveness.py +0 -0
  104. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/extractors.py +0 -0
  105. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/extractors_zh.py +0 -0
  106. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/insights.py +0 -0
  107. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/lang_detect.py +0 -0
  108. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/library.py +0 -0
  109. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/lint.py +0 -0
  110. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/merge_view.py +0 -0
  111. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/models.py +0 -0
  112. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/persona.py +0 -0
  113. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/privacy.py +0 -0
  114. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/prompt_dna.py +0 -0
  115. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/recommend.py +0 -0
  116. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/scorer.py +0 -0
  117. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/segmenter.py +0 -0
  118. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/session_meta.py +0 -0
  119. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/style.py +0 -0
  120. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/templates.py +0 -0
  121. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/timeutil.py +0 -0
  122. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/trends.py +0 -0
  123. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/core/wrapped.py +0 -0
  124. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/demo.py +0 -0
  125. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/embeddings/__init__.py +0 -0
  126. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/embeddings/base.py +0 -0
  127. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/embeddings/local_embed.py +0 -0
  128. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/embeddings/ollama.py +0 -0
  129. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/embeddings/openai_embed.py +0 -0
  130. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/embeddings/tfidf.py +0 -0
  131. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/mcp.py +0 -0
  132. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/mcp_main.py +0 -0
  133. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/output/__init__.py +0 -0
  134. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/output/chartjs.min.js +0 -0
  135. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/output/compress_terminal.py +0 -0
  136. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/output/export.py +0 -0
  137. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/output/html_report.py +0 -0
  138. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/output/json_out.py +0 -0
  139. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/output/markdown.py +0 -0
  140. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/output/wrapped_html.py +0 -0
  141. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/output/wrapped_terminal.py +0 -0
  142. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/py.typed +0 -0
  143. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/sharing/__init__.py +0 -0
  144. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/sharing/client.py +0 -0
  145. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/sharing/clipboard.py +0 -0
  146. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/storage/__init__.py +0 -0
  147. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/telemetry/__init__.py +0 -0
  148. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/telemetry/collector.py +0 -0
  149. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/telemetry/consent.py +0 -0
  150. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/telemetry/events.py +0 -0
  151. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/telemetry/prompt.py +0 -0
  152. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/telemetry/queue.py +0 -0
  153. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/src/reprompt/telemetry/sender.py +0 -0
  154. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/__init__.py +0 -0
  155. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/conftest.py +0 -0
  156. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/fixtures/aider_chat_history.md +0 -0
  157. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/fixtures/chatgpt_conversations.json +0 -0
  158. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/fixtures/claude_chat_export.json +0 -0
  159. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/fixtures/claude_session.jsonl +0 -0
  160. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/fixtures/cline_task/api_conversation_history.json +0 -0
  161. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/fixtures/export/default_export.md +0 -0
  162. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/fixtures/export/full_export.md +0 -0
  163. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/fixtures/gemini_session.json +0 -0
  164. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/fixtures/openclaw_session.jsonl +0 -0
  165. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_adapter_aider.py +0 -0
  166. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_adapter_chatgpt.py +0 -0
  167. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_adapter_claude.py +0 -0
  168. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_adapter_claude_chat.py +0 -0
  169. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_adapter_cline.py +0 -0
  170. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_adapter_gemini.py +0 -0
  171. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_adapter_openclaw.py +0 -0
  172. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_analyzer.py +0 -0
  173. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_bridge_handler.py +0 -0
  174. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_bridge_integration.py +0 -0
  175. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_bridge_manifest.py +0 -0
  176. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_bridge_protocol.py +0 -0
  177. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_cli.py +0 -0
  178. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_clipboard.py +0 -0
  179. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_compare_best_worst.py +0 -0
  180. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_compress.py +0 -0
  181. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_compress_cli.py +0 -0
  182. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_compress_dna.py +0 -0
  183. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_compress_html.py +0 -0
  184. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_compress_insights.py +0 -0
  185. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_config.py +0 -0
  186. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_conversation.py +0 -0
  187. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_coverage_boost.py +0 -0
  188. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_cursor_adapter.py +0 -0
  189. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_db_digest.py +0 -0
  190. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_db_effectiveness.py +0 -0
  191. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_db_trends.py +0 -0
  192. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_dedup.py +0 -0
  193. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_demo.py +0 -0
  194. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_deprecated_commands.py +0 -0
  195. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_digest.py +0 -0
  196. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_digest_cli.py +0 -0
  197. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_distill_weights.py +0 -0
  198. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_effectiveness.py +0 -0
  199. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_embeddings_local.py +0 -0
  200. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_embeddings_ollama.py +0 -0
  201. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_embeddings_openai.py +0 -0
  202. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_empty_state.py +0 -0
  203. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_export.py +0 -0
  204. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_export_cli.py +0 -0
  205. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_export_snapshot.py +0 -0
  206. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_extractors.py +0 -0
  207. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_extractors_routing.py +0 -0
  208. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_extractors_zh.py +0 -0
  209. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_extractors_zh_e2e.py +0 -0
  210. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_html_report.py +0 -0
  211. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_import_cli.py +0 -0
  212. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_import_e2e.py +0 -0
  213. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_insights.py +0 -0
  214. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_insights_cli.py +0 -0
  215. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_insights_expanded.py +0 -0
  216. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_install_hook.py +0 -0
  217. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_lang_detect.py +0 -0
  218. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_library.py +0 -0
  219. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_lint.py +0 -0
  220. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_lint_cli.py +0 -0
  221. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_markdown.py +0 -0
  222. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_mcp.py +0 -0
  223. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_merge_view.py +0 -0
  224. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_models.py +0 -0
  225. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_output.py +0 -0
  226. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_parse_conversation_base.py +0 -0
  227. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_parse_conversation_chatgpt.py +0 -0
  228. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_persona.py +0 -0
  229. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_privacy.py +0 -0
  230. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_privacy_cli.py +0 -0
  231. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_privacy_e2e.py +0 -0
  232. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_privacy_output.py +0 -0
  233. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_prompt_dna.py +0 -0
  234. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_public_api.py +0 -0
  235. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_schema_version.py +0 -0
  236. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_score_cli.py +0 -0
  237. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_scorer.py +0 -0
  238. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_segmenter.py +0 -0
  239. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_share_e2e.py +0 -0
  240. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_sharing_client.py +0 -0
  241. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_source_filter.py +0 -0
  242. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_style.py +0 -0
  243. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_style_trends.py +0 -0
  244. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_telemetry_cli.py +0 -0
  245. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_telemetry_collector.py +0 -0
  246. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_telemetry_consent.py +0 -0
  247. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_telemetry_e2e.py +0 -0
  248. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_telemetry_events.py +0 -0
  249. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_telemetry_prompt.py +0 -0
  250. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_telemetry_queue.py +0 -0
  251. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_telemetry_sender.py +0 -0
  252. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_template_cli.py +0 -0
  253. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_templates.py +0 -0
  254. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_timeutil.py +0 -0
  255. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_trends.py +0 -0
  256. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_use_cli.py +0 -0
  257. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_wrapped.py +0 -0
  258. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_wrapped_cli.py +0 -0
  259. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_wrapped_e2e.py +0 -0
  260. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_wrapped_html.py +0 -0
  261. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_wrapped_output.py +0 -0
  262. {reprompt_cli-1.4.1 → reprompt_cli-1.6.0}/tests/test_wrapped_share.py +0 -0
@@ -2,6 +2,109 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [1.6.0] - 2026-03-28
6
+
7
+ ### Added
8
+ - **Agent workflow analysis** — `reprompt agent` detects error loops, tool call patterns, and session efficiency from existing session files. Zero config, zero instrumentation.
9
+ - **Codex CLI adapter** — full support for OpenAI Codex CLI sessions (`~/.codex/sessions/`), including user/assistant turns, tool calls (shell + function), error detection with exit codes, and file path tracking. 9th adapter.
10
+ - **Sensitive content detection** — `reprompt privacy --deep` scans stored prompts for API keys, JWT tokens, emails, IP addresses, passwords, env secrets, and home paths. All regex-based, zero network.
11
+ - **Chrome Web Store extension** — `install-extension` now defaults to the published extension ID; `extension-status` shows the Chrome Web Store install link.
12
+ - **Extension E2E tests** — 8 tests covering the full extension -> Native Messaging -> DB -> CLI pipeline across 3 sources.
13
+
14
+ ### Changed
15
+ - **ConversationTurn model** — added `tool_names` and `error_text` fields for richer agent analysis (backward-compatible defaults)
16
+ - **Claude Code adapter** — now extracts individual tool names (Read, Edit, Bash, etc.) from tool_use blocks, not just counts
17
+ - **Suggestions** — `distill` now suggests `reprompt agent`; `agent` suggests `--loops-only` and `privacy --deep`
18
+ - Tests: 1397 -> 1490+
19
+
20
+ ## [1.5.0] - 2026-03-25
21
+
22
+ ### Added
23
+ - **Instant dashboard** — bare `reprompt` now shows a health overview: total prompts, sessions, avg score, top categories, recent activity. Zero-state guides new users; data-state gives at-a-glance intelligence
24
+ - **Session type detection** — `distill` auto-classifies sessions (debugging, feature-dev, exploration, refactoring, config, learning) and adapts signal weights per type
25
+ - **Hook suggestion throttle** — `reprompt scan` suggests `install-hook` only once, not every run
26
+
27
+ ### Changed
28
+ - **Command consolidation (23 → 20)** — deprecated `library`, `recommend`, `trends` as standalone commands; functionality absorbed into `report --smart` and `style --trends` flags
29
+ - **Signal quality improvements** — reduced false positives in position, length, and error_recovery signals for more accurate distillation
30
+ - Tests: 1350 → 1397
31
+
32
+ ### Deprecated
33
+ - `reprompt library` → use `reprompt report --smart`
34
+ - `reprompt recommend` → use `reprompt insights`
35
+ - `reprompt trends` → use `reprompt style --trends`
36
+
37
+ ## [1.4.1] - 2026-03-25
38
+
39
+ ### Added
40
+ - **`compare --best-worst`** — auto-selects your highest and lowest scoring prompts from the database for instant comparison
41
+ - **`style --trends`** — period-over-period style fingerprint comparison showing how your prompting patterns evolve
42
+
43
+ ## [1.4.0] - 2026-03-24
44
+
45
+ ### Added
46
+ - **Context recovery** — `distill --export` generates a markdown summary of conversation context, ready to paste into a new session when context is lost
47
+ - **`--full` mode** — exports all turns (not just important ones) for complete session records
48
+ - **`--show-weights` / `--weights`** — transparent signal weighting so you can see and tune how importance is scored
49
+ - **Template sub-app** — `reprompt template save|list|use` for managing reusable prompts
50
+ - **Enhanced insights** — effectiveness scoring and similar prompt suggestions
51
+
52
+ ### Changed
53
+ - **Command consolidation (27 → 23)** — deprecated `save`, `templates`, `use`, `effectiveness`, `merge-view` in favor of unified `template` and `insights` commands
54
+ - Tests: 1250 → 1350
55
+
56
+ ### Deprecated
57
+ - `reprompt save` → use `reprompt template save`
58
+ - `reprompt templates` → use `reprompt template list`
59
+ - `reprompt use` → use `reprompt template use`
60
+ - `reprompt effectiveness` → folded into `reprompt insights`
61
+ - `reprompt merge-view` → use `reprompt report --smart`
62
+
63
+ ## [1.3.1] - 2026-03-23
64
+
65
+ ### Added
66
+ - **Actionable suggestions** — 5 core commands now show contextual "→ Try:" hints guiding users to the next useful command
67
+ - **`--source` consistency** — all data commands support `--source` filtering
68
+
69
+ ### Fixed
70
+ - System-injected XML prompts (starting with `<`) filtered from distillation input
71
+
72
+ ## [1.3.0] - 2026-03-23
73
+
74
+ ### Added
75
+ - **Conversation distillation** — `reprompt distill` extracts the most important turns from AI conversations using 6-signal importance scoring: position, length, tool trigger, error recovery, semantic shift, uniqueness
76
+ - **Full conversation parsing** — adapters now return both user and assistant turns (Claude Code and ChatGPT have full implementations; others fall back to user-only)
77
+ - **Rule-based summaries** — `--summary` generates compressed conversation overviews without requiring an LLM
78
+ - **Flexible session selection** — `--last N` for recent sessions, `--threshold` to control importance cutoff
79
+ - **Output options** — `--json`, `--copy` for pipeline integration
80
+
81
+ ### Changed
82
+ - Tests: 1153 → 1217
83
+
84
+ ## [1.2.0] - 2026-03-23
85
+
86
+ ### Added
87
+ - **4-layer prompt compression** — `reprompt compress` optimizes prompts through character normalization, phrase simplification (40+ zh / 50+ en rules), filler word deletion (jieba-aware), and structure cleanup
88
+ - **Compressibility in PromptDNA** — every scanned prompt gets a compressibility score, visible in insights and HTML dashboard
89
+ - **`--copy` flag** — compressed output copies to clipboard
90
+
91
+ ### Changed
92
+ - Tests: 1046 → 1153
93
+
94
+ ### Research
95
+ - Compression rules based on LLMLingua (Microsoft), CompactPrompt, TSC, stopwords-iso/zh, Prompt Report 2406.06608
96
+
97
+ ## [1.1.0] - 2026-03-22
98
+
99
+ ### Added
100
+ - **Privacy exposure analysis** — `reprompt privacy` shows what data you've sent to which AI tools: file paths, error messages, code snippets, personal identifiers
101
+ - **Per-adapter breakdown** — see privacy exposure grouped by source (Claude Code vs ChatGPT vs Cursor etc.)
102
+ - **Instruction repetition scoring** — detects and scores redundant instructions within prompts
103
+ - **Per-source insights** — `reprompt insights --source` shows patterns specific to each tool
104
+
105
+ ### Changed
106
+ - Tests: 923 → 1046
107
+
5
108
  ## [1.0.0] - 2026-03-16
6
109
 
7
110
  ### Changed
@@ -18,7 +18,7 @@ uv run python -m build # build wheel
18
18
 
19
19
  ```
20
20
  src/reprompt/
21
- ├── cli.py # Typer CLI (scan, import, report, search, library, recommend, demo, status, purge, install-hook, install-extension, extension-status, score, compare, insights, digest, style, template [save|list|use], privacy, compress, distill) + plugin loading
21
+ ├── cli.py # Typer CLI (scan, import, report, search, demo, status, purge, install-hook, install-extension, extension-status, score, compare, insights, digest, style, template [save|list|use], privacy, compress, distill, agent, lint, wrapped, telemetry, mcp-serve) + bare `reprompt` dashboard + plugin loading
22
22
  ├── config.py # pydantic-settings, env vars (REPROMPT_ prefix) + TOML config
23
23
  ├── demo.py # Built-in demo data generator (no network required)
24
24
  ├── core/
@@ -40,13 +40,16 @@ src/reprompt/
40
40
  │ ├── persona.py # 6 prompt personas (Architect/Debugger/Explorer/Novelist/Sniper/Teacher)
41
41
  │ ├── wrapped.py # WrappedReport dataclass + build_wrapped(db) aggregation
42
42
  │ ├── privacy.py # Privacy metadata registry + exposure summary per adapter
43
+ │ ├── privacy_scan.py # Sensitive content detection (API keys, tokens, PII) via regex
43
44
  │ ├── compress.py # 4-layer prompt compression (char norm + phrase simplify + filler delete + structure cleanup)
44
- │ ├── suggestions.py # Command journey suggestions ("→ Try:" hints for 5 core commands)
45
+ │ ├── suggestions.py # Command journey suggestions ("→ Try:" hints for 7 core commands)
45
46
  │ ├── conversation.py # ConversationTurn, Conversation, DistillResult dataclasses
46
- └── distill.py # 6-signal importance scoring + filtering + summary generation
47
+ ├── distill.py # 6-signal importance scoring + filtering + summary generation
48
+ │ └── agent.py # Agent workflow analysis: error loop detection, tool distribution, efficiency
47
49
  ├── adapters/
48
50
  │ ├── base.py # BaseAdapter ABC + parse_conversation() default
49
- │ ├── claude_code.py # Claude Code JSONL parser
51
+ │ ├── claude_code.py # Claude Code JSONL parser (full conversation + tool names)
52
+ │ ├── codex.py # Codex CLI JSONL rollout parser (full conversation + shell/function calls)
50
53
  │ ├── openclaw.py # OpenClaw JSON parser (supports ~/.openclaw/ + legacy ~/.opencode/)
51
54
  │ ├── cursor.py # Cursor IDE .vscdb parser (cursorDiskKV + legacy ItemTable)
52
55
  │ ├── aider.py # Aider markdown chat history parser (.aider.chat.history.md)
@@ -87,7 +90,8 @@ src/reprompt/
87
90
  ├── wrapped_terminal.py # Rich Prompt Wrapped report rendering
88
91
  ├── wrapped_html.py # Self-contained HTML share card (dark theme)
89
92
  ├── compress_terminal.py # Rich output for compress command
90
- └── distill_terminal.py # Rich output for distill command
93
+ ├── distill_terminal.py # Rich output for distill command
94
+ └── agent_terminal.py # Rich output for agent workflow report
91
95
  ```
92
96
 
93
97
  ## Data Flow
@@ -124,7 +128,7 @@ reprompt-extension (private) ← Browser extension: Chrome/Firefox prompt capt
124
128
  - Pattern upsert (not clear+re-insert) for stable IDs
125
129
  - Prompts starting with `<` are filtered (system-injected XML)
126
130
  - Config: env vars (REPROMPT_ prefix) > TOML (~/.config/reprompt/config.toml) > defaults
127
- - Tests: pytest, 1295 tests, 95% coverage target
131
+ - Tests: pytest, 1490+ tests, 95% coverage target
128
132
 
129
133
  ## Prompt Science Engine
130
134
 
@@ -0,0 +1,215 @@
1
+ Metadata-Version: 2.4
2
+ Name: reprompt-cli
3
+ Version: 1.6.0
4
+ Summary: Discover, analyze, and optimize your prompts from AI coding sessions
5
+ Project-URL: Homepage, https://github.com/reprompt-dev/reprompt
6
+ Project-URL: Repository, https://github.com/reprompt-dev/reprompt
7
+ Project-URL: Issues, https://github.com/reprompt-dev/reprompt/issues
8
+ Project-URL: Changelog, https://github.com/reprompt-dev/reprompt/blob/main/CHANGELOG.md
9
+ License: MIT
10
+ License-File: LICENSE
11
+ Keywords: ai,analytics,claude-code,cli,llm,prompt
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Topic :: Software Development :: Libraries
22
+ Classifier: Typing :: Typed
23
+ Requires-Python: >=3.10
24
+ Requires-Dist: pydantic-settings>=2.0
25
+ Requires-Dist: rich>=13.0
26
+ Requires-Dist: scikit-learn>=1.4
27
+ Requires-Dist: typer>=0.9
28
+ Provides-Extra: chinese
29
+ Requires-Dist: jieba>=0.42; extra == 'chinese'
30
+ Provides-Extra: dev
31
+ Requires-Dist: jieba>=0.42; extra == 'dev'
32
+ Requires-Dist: mypy>=1.0; extra == 'dev'
33
+ Requires-Dist: pytest-cov>=5.0; extra == 'dev'
34
+ Requires-Dist: pytest>=8.0; extra == 'dev'
35
+ Requires-Dist: ruff>=0.4; extra == 'dev'
36
+ Provides-Extra: local
37
+ Requires-Dist: sentence-transformers>=2.0; extra == 'local'
38
+ Provides-Extra: mcp
39
+ Requires-Dist: fastmcp>=2.0; extra == 'mcp'
40
+ Provides-Extra: ollama
41
+ Requires-Dist: requests>=2.31; extra == 'ollama'
42
+ Provides-Extra: openai
43
+ Requires-Dist: openai>=1.0; extra == 'openai'
44
+ Description-Content-Type: text/markdown
45
+
46
+ # `re:prompt`
47
+
48
+ **Prompt Intelligence for AI power users** -- understand, optimize, and manage your AI conversations.
49
+
50
+ [![PyPI version](https://img.shields.io/pypi/v/reprompt-cli)](https://pypi.org/project/reprompt-cli/)
51
+ [![Python 3.10+](https://img.shields.io/pypi/pyversions/reprompt-cli)](https://pypi.org/project/reprompt-cli/)
52
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
53
+ [![Tests](https://img.shields.io/badge/tests-passing-brightgreen)](https://github.com/reprompt-dev/reprompt/actions)
54
+ [![Coverage](https://img.shields.io/badge/coverage-95%25-brightgreen)](https://github.com/reprompt-dev/reprompt)
55
+
56
+ ---
57
+
58
+ ## See it in action
59
+
60
+ ```bash
61
+ $ pip install reprompt-cli
62
+ $ reprompt
63
+ ╭─ Prompt Dashboard ─────────────────────────────────────────╮
64
+ │ Prompts: 1,063 (295 unique) Sessions: 890 │
65
+ │ Avg Score: 68/100 Top: debug (31%), impl (24%)│
66
+ │ Sources: claude-code, cursor, chatgpt │
67
+ ╰────────────────────────────────────────────────────────────╯
68
+
69
+ $ reprompt score "Fix the auth bug in src/login.ts where JWT expires"
70
+ Score: 74/100
71
+ Structure: 18/25 | Context: 22/25 | Position: 15/20 | Repetition: 9/15 | Clarity: 10/15
72
+ Tip: Add the error message for +15% accuracy
73
+
74
+ $ reprompt distill --last 3 --summary
75
+ Session: feature-dev (42 turns, 18 important)
76
+ Key moments: initial spec → auth module → test failures → JWT fix → passing
77
+ Context: "Building auth system with JWT refresh tokens for Express API"
78
+
79
+ $ reprompt compress "请帮我看一下这个代码,就是那个 login 的那个文件,好像有点问题"
80
+ Before: 31 tokens → After: 15 tokens (52% saved)
81
+ "看一下 login 文件的问题"
82
+ ```
83
+
84
+ ## What it does
85
+
86
+ ### Analyze
87
+
88
+ | Command | Description |
89
+ |---------|-------------|
90
+ | `reprompt` | Instant dashboard -- prompts, sessions, avg score, top categories |
91
+ | `reprompt scan` | Auto-discover prompts from 9 AI tools |
92
+ | `reprompt score "prompt"` | Research-backed 0-100 scoring with 30+ features |
93
+ | `reprompt compare "a" "b"` | Side-by-side prompt analysis (or `--best-worst` for auto-selection) |
94
+ | `reprompt insights` | Personal patterns vs research-optimal benchmarks |
95
+ | `reprompt style` | Prompting fingerprint with `--trends` for evolution tracking |
96
+ | `reprompt agent` | Agent workflow analysis -- error loops, tool patterns, session efficiency |
97
+
98
+ ### Optimize
99
+
100
+ | Command | Description |
101
+ |---------|-------------|
102
+ | `reprompt compress "prompt"` | 4-layer prompt compression (50%+ token savings typical) |
103
+ | `reprompt distill` | Extract important turns from conversations with 6-signal scoring |
104
+ | `reprompt distill --export` | Recover context when a session runs out -- paste into new session |
105
+ | `reprompt lint` | Prompt quality linter with GitHub Action support |
106
+
107
+ ### Manage
108
+
109
+ | Command | Description |
110
+ |---------|-------------|
111
+ | `reprompt privacy` | See what data you sent where -- file paths, errors, PII exposure |
112
+ | `reprompt privacy --deep` | Scan for sensitive content: API keys, tokens, passwords, PII |
113
+ | `reprompt report` | Full analytics: hot phrases, clusters, patterns (`--html` for dashboard) |
114
+ | `reprompt digest` | Weekly summary comparing current vs previous period |
115
+ | `reprompt wrapped` | Prompt DNA report -- persona, scores, shareable card |
116
+ | `reprompt template save\|list\|use` | Save and reuse your best prompts |
117
+
118
+ ## Prompt Science
119
+
120
+ Scoring is calibrated against 4 research papers covering 30+ features across 5 dimensions:
121
+
122
+ | Dimension | What it measures | Paper |
123
+ |-----------|-----------------|-------|
124
+ | **Structure** | Markdown, code blocks, explicit constraints | Prompt Report 2406.06608 |
125
+ | **Context** | File paths, error messages, technical specificity | Google 2512.14982 |
126
+ | **Position** | Instruction placement relative to context | Stanford 2307.03172 |
127
+ | **Repetition** | Redundancy that degrades model attention | Google 2512.14982 |
128
+ | **Clarity** | Readability, sentence length, ambiguity | SPELL (EMNLP 2023) |
129
+
130
+ All analysis runs locally in <1ms per prompt. No LLM calls, no network requests.
131
+
132
+ ## Conversation Distillation
133
+
134
+ `reprompt distill` scores every turn in a conversation using 6 signals:
135
+
136
+ - **Position** -- first/last turns carry framing and conclusions
137
+ - **Length** -- substantial turns contain more information
138
+ - **Tool trigger** -- turns that cause tool calls are action-driving
139
+ - **Error recovery** -- turns that follow errors show problem-solving
140
+ - **Semantic shift** -- topic changes mark conversation boundaries
141
+ - **Uniqueness** -- novel phrasing vs repetitive follow-ups
142
+
143
+ Session type (debugging, feature-dev, exploration, refactoring) is auto-detected and signal weights adapt accordingly.
144
+
145
+ ## Supported AI tools
146
+
147
+ | Tool | Format | Auto-discovered by `scan` |
148
+ |------|--------|--------------------------|
149
+ | Claude Code | JSONL | Yes |
150
+ | Codex CLI | JSONL | Yes |
151
+ | Cursor | .vscdb | Yes |
152
+ | Aider | Markdown | Yes |
153
+ | Gemini CLI | JSON | Yes |
154
+ | Cline (VS Code) | JSON | Yes |
155
+ | OpenClaw / OpenCode | JSON | Yes |
156
+ | ChatGPT | JSON | Via `reprompt import` |
157
+ | Claude.ai | JSON/ZIP | Via `reprompt import` |
158
+
159
+ ## Installation
160
+
161
+ ```bash
162
+ pip install reprompt-cli # core (all features, zero config)
163
+ pip install reprompt-cli[chinese] # + Chinese prompt analysis (jieba)
164
+ pip install reprompt-cli[mcp] # + MCP server for Claude Code / Continue.dev / Zed
165
+ ```
166
+
167
+ ### Quick start
168
+
169
+ ```bash
170
+ reprompt scan # discover prompts from installed AI tools
171
+ reprompt # see your dashboard
172
+ reprompt score "your prompt here" # score any prompt instantly
173
+ reprompt distill --last 1 # distill your most recent conversation
174
+ ```
175
+
176
+ ### Auto-scan after every session
177
+
178
+ ```bash
179
+ reprompt install-hook # adds post-session hook to Claude Code
180
+ ```
181
+
182
+ ### Browser extension
183
+
184
+ Capture prompts from ChatGPT, Claude.ai, and Gemini directly in your browser:
185
+
186
+ 1. **Install the extension** from [Chrome Web Store](https://chromewebstore.google.com/detail/reprompt/ojdccpagaanchmkninlbgbgemdcjckhn)
187
+ 2. **Connect to the CLI:** `reprompt install-extension`
188
+ 3. **Verify:** `reprompt extension-status`
189
+
190
+ Captured prompts sync locally via Native Messaging -- nothing leaves your machine.
191
+
192
+ ## Privacy
193
+
194
+ - All analysis runs locally. No prompts leave your machine.
195
+ - `reprompt privacy` shows exactly what you've sent to which AI tool.
196
+ - Optional telemetry sends only anonymous 26-dimension feature vectors -- never prompt text.
197
+ - Open source: audit exactly what's collected.
198
+
199
+ [Privacy policy](https://getreprompt.dev/privacy)
200
+
201
+ ## Links
202
+
203
+ - **Website:** [getreprompt.dev](https://getreprompt.dev)
204
+ - **Chrome Extension:** [Chrome Web Store](https://chromewebstore.google.com/detail/reprompt/ojdccpagaanchmkninlbgbgemdcjckhn)
205
+ - **PyPI:** [reprompt-cli](https://pypi.org/project/reprompt-cli/)
206
+ - **Changelog:** [CHANGELOG.md](CHANGELOG.md)
207
+ - **Privacy:** [getreprompt.dev/privacy](https://getreprompt.dev/privacy)
208
+
209
+ ## Contributing
210
+
211
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.
212
+
213
+ ## License
214
+
215
+ MIT
@@ -0,0 +1,170 @@
1
+ # `re:prompt`
2
+
3
+ **Prompt Intelligence for AI power users** -- understand, optimize, and manage your AI conversations.
4
+
5
+ [![PyPI version](https://img.shields.io/pypi/v/reprompt-cli)](https://pypi.org/project/reprompt-cli/)
6
+ [![Python 3.10+](https://img.shields.io/pypi/pyversions/reprompt-cli)](https://pypi.org/project/reprompt-cli/)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
+ [![Tests](https://img.shields.io/badge/tests-passing-brightgreen)](https://github.com/reprompt-dev/reprompt/actions)
9
+ [![Coverage](https://img.shields.io/badge/coverage-95%25-brightgreen)](https://github.com/reprompt-dev/reprompt)
10
+
11
+ ---
12
+
13
+ ## See it in action
14
+
15
+ ```bash
16
+ $ pip install reprompt-cli
17
+ $ reprompt
18
+ ╭─ Prompt Dashboard ─────────────────────────────────────────╮
19
+ │ Prompts: 1,063 (295 unique) Sessions: 890 │
20
+ │ Avg Score: 68/100 Top: debug (31%), impl (24%)│
21
+ │ Sources: claude-code, cursor, chatgpt │
22
+ ╰────────────────────────────────────────────────────────────╯
23
+
24
+ $ reprompt score "Fix the auth bug in src/login.ts where JWT expires"
25
+ Score: 74/100
26
+ Structure: 18/25 | Context: 22/25 | Position: 15/20 | Repetition: 9/15 | Clarity: 10/15
27
+ Tip: Add the error message for +15% accuracy
28
+
29
+ $ reprompt distill --last 3 --summary
30
+ Session: feature-dev (42 turns, 18 important)
31
+ Key moments: initial spec → auth module → test failures → JWT fix → passing
32
+ Context: "Building auth system with JWT refresh tokens for Express API"
33
+
34
+ $ reprompt compress "请帮我看一下这个代码,就是那个 login 的那个文件,好像有点问题"
35
+ Before: 31 tokens → After: 15 tokens (52% saved)
36
+ "看一下 login 文件的问题"
37
+ ```
38
+
39
+ ## What it does
40
+
41
+ ### Analyze
42
+
43
+ | Command | Description |
44
+ |---------|-------------|
45
+ | `reprompt` | Instant dashboard -- prompts, sessions, avg score, top categories |
46
+ | `reprompt scan` | Auto-discover prompts from 9 AI tools |
47
+ | `reprompt score "prompt"` | Research-backed 0-100 scoring with 30+ features |
48
+ | `reprompt compare "a" "b"` | Side-by-side prompt analysis (or `--best-worst` for auto-selection) |
49
+ | `reprompt insights` | Personal patterns vs research-optimal benchmarks |
50
+ | `reprompt style` | Prompting fingerprint with `--trends` for evolution tracking |
51
+ | `reprompt agent` | Agent workflow analysis -- error loops, tool patterns, session efficiency |
52
+
53
+ ### Optimize
54
+
55
+ | Command | Description |
56
+ |---------|-------------|
57
+ | `reprompt compress "prompt"` | 4-layer prompt compression (50%+ token savings typical) |
58
+ | `reprompt distill` | Extract important turns from conversations with 6-signal scoring |
59
+ | `reprompt distill --export` | Recover context when a session runs out -- paste into new session |
60
+ | `reprompt lint` | Prompt quality linter with GitHub Action support |
61
+
62
+ ### Manage
63
+
64
+ | Command | Description |
65
+ |---------|-------------|
66
+ | `reprompt privacy` | See what data you sent where -- file paths, errors, PII exposure |
67
+ | `reprompt privacy --deep` | Scan for sensitive content: API keys, tokens, passwords, PII |
68
+ | `reprompt report` | Full analytics: hot phrases, clusters, patterns (`--html` for dashboard) |
69
+ | `reprompt digest` | Weekly summary comparing current vs previous period |
70
+ | `reprompt wrapped` | Prompt DNA report -- persona, scores, shareable card |
71
+ | `reprompt template save\|list\|use` | Save and reuse your best prompts |
72
+
73
+ ## Prompt Science
74
+
75
+ Scoring is calibrated against 4 research papers covering 30+ features across 5 dimensions:
76
+
77
+ | Dimension | What it measures | Paper |
78
+ |-----------|-----------------|-------|
79
+ | **Structure** | Markdown, code blocks, explicit constraints | Prompt Report 2406.06608 |
80
+ | **Context** | File paths, error messages, technical specificity | Google 2512.14982 |
81
+ | **Position** | Instruction placement relative to context | Stanford 2307.03172 |
82
+ | **Repetition** | Redundancy that degrades model attention | Google 2512.14982 |
83
+ | **Clarity** | Readability, sentence length, ambiguity | SPELL (EMNLP 2023) |
84
+
85
+ All analysis runs locally in <1ms per prompt. No LLM calls, no network requests.
86
+
87
+ ## Conversation Distillation
88
+
89
+ `reprompt distill` scores every turn in a conversation using 6 signals:
90
+
91
+ - **Position** -- first/last turns carry framing and conclusions
92
+ - **Length** -- substantial turns contain more information
93
+ - **Tool trigger** -- turns that cause tool calls are action-driving
94
+ - **Error recovery** -- turns that follow errors show problem-solving
95
+ - **Semantic shift** -- topic changes mark conversation boundaries
96
+ - **Uniqueness** -- novel phrasing vs repetitive follow-ups
97
+
98
+ Session type (debugging, feature-dev, exploration, refactoring) is auto-detected and signal weights adapt accordingly.
99
+
100
+ ## Supported AI tools
101
+
102
+ | Tool | Format | Auto-discovered by `scan` |
103
+ |------|--------|--------------------------|
104
+ | Claude Code | JSONL | Yes |
105
+ | Codex CLI | JSONL | Yes |
106
+ | Cursor | .vscdb | Yes |
107
+ | Aider | Markdown | Yes |
108
+ | Gemini CLI | JSON | Yes |
109
+ | Cline (VS Code) | JSON | Yes |
110
+ | OpenClaw / OpenCode | JSON | Yes |
111
+ | ChatGPT | JSON | Via `reprompt import` |
112
+ | Claude.ai | JSON/ZIP | Via `reprompt import` |
113
+
114
+ ## Installation
115
+
116
+ ```bash
117
+ pip install reprompt-cli # core (all features, zero config)
118
+ pip install reprompt-cli[chinese] # + Chinese prompt analysis (jieba)
119
+ pip install reprompt-cli[mcp] # + MCP server for Claude Code / Continue.dev / Zed
120
+ ```
121
+
122
+ ### Quick start
123
+
124
+ ```bash
125
+ reprompt scan # discover prompts from installed AI tools
126
+ reprompt # see your dashboard
127
+ reprompt score "your prompt here" # score any prompt instantly
128
+ reprompt distill --last 1 # distill your most recent conversation
129
+ ```
130
+
131
+ ### Auto-scan after every session
132
+
133
+ ```bash
134
+ reprompt install-hook # adds post-session hook to Claude Code
135
+ ```
136
+
137
+ ### Browser extension
138
+
139
+ Capture prompts from ChatGPT, Claude.ai, and Gemini directly in your browser:
140
+
141
+ 1. **Install the extension** from [Chrome Web Store](https://chromewebstore.google.com/detail/reprompt/ojdccpagaanchmkninlbgbgemdcjckhn)
142
+ 2. **Connect to the CLI:** `reprompt install-extension`
143
+ 3. **Verify:** `reprompt extension-status`
144
+
145
+ Captured prompts sync locally via Native Messaging -- nothing leaves your machine.
146
+
147
+ ## Privacy
148
+
149
+ - All analysis runs locally. No prompts leave your machine.
150
+ - `reprompt privacy` shows exactly what you've sent to which AI tool.
151
+ - Optional telemetry sends only anonymous 26-dimension feature vectors -- never prompt text.
152
+ - Open source: audit exactly what's collected.
153
+
154
+ [Privacy policy](https://getreprompt.dev/privacy)
155
+
156
+ ## Links
157
+
158
+ - **Website:** [getreprompt.dev](https://getreprompt.dev)
159
+ - **Chrome Extension:** [Chrome Web Store](https://chromewebstore.google.com/detail/reprompt/ojdccpagaanchmkninlbgbgemdcjckhn)
160
+ - **PyPI:** [reprompt-cli](https://pypi.org/project/reprompt-cli/)
161
+ - **Changelog:** [CHANGELOG.md](CHANGELOG.md)
162
+ - **Privacy:** [getreprompt.dev/privacy](https://getreprompt.dev/privacy)
163
+
164
+ ## Contributing
165
+
166
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.
167
+
168
+ ## License
169
+
170
+ MIT
@@ -1,6 +1,6 @@
1
1
  # reprompt Roadmap
2
2
 
3
- > Last updated: 2026-03-25 · Current version: v1.4.1
3
+ > Last updated: 2026-03-25 · Current version: v1.5.0
4
4
 
5
5
  ## Vision
6
6
 
@@ -10,18 +10,19 @@ reprompt is the **prompt intelligence** tool for AI sessions — distill your co
10
10
 
11
11
  ---
12
12
 
13
- ## Current State (v1.4.0) — Production Stable
13
+ ## Current State (v1.5.0) — Production Stable
14
14
 
15
15
  ### Adapters (8)
16
16
  Claude Code · OpenClaw · Cursor IDE · Aider · Gemini CLI · Cline · ChatGPT · Claude.ai
17
17
 
18
- ### Commands (23 visible, 5 deprecated)
19
- `scan` · `import` · `report` · `library` · `trends` · `recommend` · `template [save|list|use]` · `lint` · `search` · `demo` · `status` · `purge` · `install-hook` · `install-extension` · `extension-status` · `score` · `compare` · `insights` · `digest` · `style` · `wrapped` · `telemetry` · `mcp-serve` · `compress` · `distill` · `privacy`
18
+ ### Commands (23 visible, 8 deprecated)
19
+ `scan` · `import` · `report` · `template [save|list|use]` · `lint` · `search` · `demo` · `status` · `purge` · `install-hook` · `install-extension` · `extension-status` · `score` · `compare` · `insights` · `digest` · `style` · `wrapped` · `telemetry` · `mcp-serve` · `compress` · `distill` · `privacy`
20
20
 
21
21
  ### Integrations
22
22
  - MCP server (`reprompt mcp-serve`) for IDE integration
23
23
  - GitHub Action (`action.yml`) for CI prompt quality checks
24
24
  - HTML dashboard (`reprompt report --html`)
25
+ - Bare `reprompt` dashboard (zero-state + data-state)
25
26
  - Browser extension (Chrome/Firefox) via Native Messaging bridge
26
27
  - JSON output on all commands for pipeline integration
27
28
 
@@ -36,15 +37,30 @@ Claude Code · OpenClaw · Cursor IDE · Aider · Gemini CLI · Cline · ChatGPT
36
37
  | v1.3.1 | UX polish | Actionable suggestions on 5 commands, `--source` filter on all data commands |
37
38
  | v1.4.0 | Context recovery + consolidation | `distill --export` context document, signal transparency, command consolidation (27→23) |
38
39
  | v1.4.1 | Compare + style polish | `compare --best-worst` auto-pick, `style --trends` period-over-period deltas |
40
+ | v1.5.0 | Dashboard + signal fixes | Bare `reprompt` dashboard, session type detection, distill signal quality fixes, scan hook shows once |
39
41
 
40
42
  ### Quality
41
- - 1316 tests, ≥90% coverage
43
+ - 1397 tests, ≥90% coverage
42
44
  - Strict mypy, ruff lint/format
43
45
  - CI: coverage gate + pre-publish test step
44
46
  - Stable public API (`score_prompt`, `compare_prompts`, `extract_features`)
45
47
 
46
48
  ---
47
49
 
50
+ ## v1.5.0 — Dashboard + Session Type Detection + Signal Fixes
51
+
52
+ | Priority | Item | Rationale |
53
+ |----------|------|-----------|
54
+ | P1 | Bare `reprompt` dashboard | **DONE** — zero-state shows onboarding guide; data-state shows 7d summary (prompts, sessions, avg score, compressibility, long sessions) with score-by-task-type breakdown and contextual next-step suggestions |
55
+ | P1 | Session type detection | **DONE** — auto-detects session type (debug, feature, refactor, explore, review, etc.) and adjusts distill signal weights per type |
56
+ | P2 | Distill signal quality fixes | **DONE** — position signal no longer over-scores small-talk openers/closers; length signal penalizes error dumps; error_recovery signal filters "ok try again" noise |
57
+ | P3 | Scan hook suggestion shows once | **DONE** — `install-hook` suggestion displays only on first scan, not every time |
58
+ | P3 | `library`/`recommend`/`trends` deprecated | **DONE** — consolidated into `template list`, `template list --smart`, and `digest --trends` respectively |
59
+
60
+ **Status: Dashboard, session-aware distill, and signal quality shipped.**
61
+
62
+ ---
63
+
48
64
  ## v1.4 — Context Recovery + Command Consolidation
49
65
 
50
66
  | Priority | Item | Rationale |
@@ -61,11 +77,10 @@ Claude Code · OpenClaw · Cursor IDE · Aider · Gemini CLI · Cline · ChatGPT
61
77
 
62
78
  ---
63
79
 
64
- ## v1.5+ — Future Work
80
+ ## v1.6+ — Future Work
65
81
 
66
82
  | Feature | Description |
67
83
  |---------|-------------|
68
- | Distill false positive reduction | Position signal breaks on small-talk openers / "thanks bye" closers; long error dumps score high on length+uniqueness but aren't decision points; "ok try again" triggers error_recovery but is noise. Community feedback from r/LLMDevs. |
69
84
  | Sensitive content detection | Privacy narrative; PII in prompts |
70
85
  | Agent workflow analysis | Multi-step agent session patterns |
71
86
  | `.reprompt.yml` configurable lint | Team/Pro direction |