repr-cli 0.2.16__tar.gz → 0.2.18__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 (74) hide show
  1. {repr_cli-0.2.16 → repr_cli-0.2.18}/PKG-INFO +48 -10
  2. {repr_cli-0.2.16 → repr_cli-0.2.18}/README.md +44 -9
  3. {repr_cli-0.2.16 → repr_cli-0.2.18}/pyproject.toml +8 -1
  4. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/__init__.py +1 -1
  5. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/api.py +363 -62
  6. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/auth.py +47 -38
  7. repr_cli-0.2.18/repr/change_synthesis.py +478 -0
  8. repr_cli-0.2.18/repr/cli.py +6700 -0
  9. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/config.py +119 -11
  10. repr_cli-0.2.18/repr/configure.py +889 -0
  11. repr_cli-0.2.18/repr/cron.py +419 -0
  12. repr_cli-0.2.18/repr/dashboard/__init__.py +9 -0
  13. repr_cli-0.2.18/repr/dashboard/build.py +126 -0
  14. repr_cli-0.2.18/repr/dashboard/dist/assets/index-B-aCjaCw.js +384 -0
  15. repr_cli-0.2.18/repr/dashboard/dist/assets/index-BYFVbEev.css +1 -0
  16. repr_cli-0.2.18/repr/dashboard/dist/assets/index-BrrhyJFO.css +1 -0
  17. repr_cli-0.2.18/repr/dashboard/dist/assets/index-C7Gzxc4f.js +384 -0
  18. repr_cli-0.2.18/repr/dashboard/dist/assets/index-CQdMXo6g.js +391 -0
  19. repr_cli-0.2.18/repr/dashboard/dist/assets/index-CcEg74ts.js +270 -0
  20. repr_cli-0.2.18/repr/dashboard/dist/assets/index-Cerc-iA_.js +377 -0
  21. repr_cli-0.2.18/repr/dashboard/dist/assets/index-CjVcBW2L.css +1 -0
  22. repr_cli-0.2.18/repr/dashboard/dist/assets/index-Cs8ofFGd.js +384 -0
  23. repr_cli-0.2.18/repr/dashboard/dist/assets/index-Dfl3mR5E.js +377 -0
  24. repr_cli-0.2.18/repr/dashboard/dist/assets/index-DwN0SeMc.css +1 -0
  25. repr_cli-0.2.18/repr/dashboard/dist/assets/index-YFch_e0S.js +384 -0
  26. repr_cli-0.2.18/repr/dashboard/dist/favicon.svg +4 -0
  27. repr_cli-0.2.18/repr/dashboard/dist/index.html +14 -0
  28. repr_cli-0.2.18/repr/dashboard/manager.py +234 -0
  29. repr_cli-0.2.18/repr/dashboard/server.py +1489 -0
  30. repr_cli-0.2.18/repr/db.py +980 -0
  31. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/hooks.py +3 -2
  32. repr_cli-0.2.18/repr/loaders/__init__.py +22 -0
  33. repr_cli-0.2.18/repr/loaders/base.py +156 -0
  34. repr_cli-0.2.18/repr/loaders/claude_code.py +287 -0
  35. repr_cli-0.2.18/repr/loaders/clawdbot.py +313 -0
  36. repr_cli-0.2.18/repr/loaders/gemini_antigravity.py +381 -0
  37. repr_cli-0.2.18/repr/mcp_server.py +1196 -0
  38. repr_cli-0.2.18/repr/models.py +503 -0
  39. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/openai_analysis.py +25 -0
  40. repr_cli-0.2.18/repr/session_extractor.py +481 -0
  41. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/storage.py +328 -0
  42. repr_cli-0.2.18/repr/story_synthesis.py +1296 -0
  43. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/templates.py +68 -4
  44. repr_cli-0.2.18/repr/timeline.py +710 -0
  45. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/tools.py +17 -8
  46. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr_cli.egg-info/PKG-INFO +48 -10
  47. repr_cli-0.2.18/repr_cli.egg-info/SOURCES.txt +70 -0
  48. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr_cli.egg-info/entry_points.txt +1 -0
  49. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr_cli.egg-info/requires.txt +3 -0
  50. {repr_cli-0.2.16 → repr_cli-0.2.18}/tests/test_stories_review.py +2 -3
  51. {repr_cli-0.2.16 → repr_cli-0.2.18}/tests/test_token_budget.py +10 -3
  52. repr_cli-0.2.16/repr/cli.py +0 -2758
  53. repr_cli-0.2.16/repr_cli.egg-info/SOURCES.txt +0 -38
  54. {repr_cli-0.2.16 → repr_cli-0.2.18}/LICENSE +0 -0
  55. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/__main__.py +0 -0
  56. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/discovery.py +0 -0
  57. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/doctor.py +0 -0
  58. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/extractor.py +0 -0
  59. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/keychain.py +0 -0
  60. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/llm.py +0 -0
  61. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/privacy.py +0 -0
  62. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/telemetry.py +0 -0
  63. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/ui.py +0 -0
  64. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr/updater.py +0 -0
  65. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr_cli.egg-info/dependency_links.txt +0 -0
  66. {repr_cli-0.2.16 → repr_cli-0.2.18}/repr_cli.egg-info/top_level.txt +0 -0
  67. {repr_cli-0.2.16 → repr_cli-0.2.18}/setup.cfg +0 -0
  68. {repr_cli-0.2.16 → repr_cli-0.2.18}/setup.py +0 -0
  69. {repr_cli-0.2.16 → repr_cli-0.2.18}/tests/test_deduplication.py +0 -0
  70. {repr_cli-0.2.16 → repr_cli-0.2.18}/tests/test_environment_variables.py +0 -0
  71. {repr_cli-0.2.16 → repr_cli-0.2.18}/tests/test_network_sandboxing.py +0 -0
  72. {repr_cli-0.2.16 → repr_cli-0.2.18}/tests/test_privacy_guarantees.py +0 -0
  73. {repr_cli-0.2.16 → repr_cli-0.2.18}/tests/test_profile_export.py +0 -0
  74. {repr_cli-0.2.16 → repr_cli-0.2.18}/tests/test_repo_identity.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: repr-cli
3
- Version: 0.2.16
3
+ Version: 0.2.18
4
4
  Summary: A beautiful, privacy-first CLI that analyzes your code repositories and generates a compelling developer profile
5
5
  Author-email: Repr <hello@repr.dev>
6
6
  License: MIT License
@@ -49,6 +49,9 @@ Requires-Dist: httpx>=0.25.0
49
49
  Requires-Dist: openai>=1.0.0
50
50
  Requires-Dist: keyring>=24.0.0
51
51
  Requires-Dist: pydantic>=2.0.0
52
+ Requires-Dist: fastmcp<3,>=2.0.0
53
+ Requires-Dist: jinja2>=3.1.0
54
+ Requires-Dist: simple-term-menu>=1.6.0
52
55
  Provides-Extra: dev
53
56
  Requires-Dist: pytest>=7.0.0; extra == "dev"
54
57
  Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
@@ -56,17 +59,27 @@ Requires-Dist: black>=23.0.0; extra == "dev"
56
59
  Requires-Dist: ruff>=0.1.0; extra == "dev"
57
60
  Dynamic: license-file
58
61
 
62
+ <p align="center">
63
+ <strong>Official $REPR Links:</strong> <a href="https://bags.fm/5WsMLk8Zb8PWTXoHev7Ry6QDHNC2KSpY5x8R13GGBAGS">Bags.fm</a> · <a href="https://axiom.trade/t/5WsMLk8Zb8PWTXoHev7Ry6QDHNC2KSpY5x8R13GGBAGS">Axiom</a> · <a href="https://jup.ag/swap?sell=So11111111111111111111111111111111111111112&buy=5WsMLk8Zb8PWTXoHev7Ry6QDHNC2KSpY5x8R13GGBAGS">Jupiter</a> · <a href="https://photon-sol.tinyastro.io/en/lp/5WsMLk8Zb8PWTXoHev7Ry6QDHNC2KSpY5x8R13GGBAGS">Photon</a>
64
+ <br>
65
+ <strong>Official CA:</strong> <code>5WsMLk8Zb8PWTXoHev7Ry6QDHNC2KSpY5x8R13GGBAGS</code> (on Solana)
66
+ </p>
67
+
68
+
59
69
  # Repr CLI
60
70
 
61
- **Stop trying to remember what you did.** Your git history is already a career diary—repr unlocks it.
71
+ **The developer context layer.**
62
72
 
63
- Turn commits into professional narratives for interviews, performance reviews, and career growth. Local-first, privacy-focused, works offline.
73
+ Your git history is rich with context about what you build, how you think, and how you grow. repr captures that context and makes it available everywhere — to AI agents, to applications, to you.
74
+
75
+ **Use it however you need:** Interview prep, performance reviews, social content, AI agent context — these are all *lenses* into the same underlying data. Local-first, privacy-focused, works offline.
64
76
 
65
77
  [![PyPI version](https://img.shields.io/pypi/v/repr-cli.svg)](https://pypi.org/project/repr-cli/)
66
78
  [![Python versions](https://img.shields.io/pypi/pyversions/repr-cli.svg)](https://pypi.org/project/repr-cli/)
67
79
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
68
80
  [![Build](https://github.com/repr-app/cli/actions/workflows/build-release.yml/badge.svg)](https://github.com/repr-app/cli/actions/workflows/build-release.yml)
69
81
 
82
+
70
83
  ## Real Developers, Real Results
71
84
 
72
85
  > *"I used repr to prep for my Meta interview in 30 minutes. Turned 2 years of commits into 8 STAR-format stories. Nailed every behavioral question."*
@@ -78,17 +91,31 @@ Turn commits into professional narratives for interviews, performance reviews, a
78
91
  > *"I run repr in a fully air-gapped environment. Zero network calls, 100% local. It's the only tool I trust for this."*
79
92
  > **— Alex, Defense Contractor**
80
93
 
81
- ## Perfect For
94
+ ## Lenses (Ways to Use Your Context)
82
95
 
83
- - 🎯 **Interview Prep** — Generate STAR-format stories in 30 minutes instead of hours of commit archaeology
84
- - 📊 **Performance Reviews** — Turn 6 months of work into quantified impact with one command
85
- - 🚀 **Sprint Demos** — Professional changelogs for stakeholders in seconds
86
- - 👔 **Weekly 1-on-1s** — Show up with specific examples instead of vague "I worked on stuff"
87
- - 🔒 **Sensitive Work** — Air-gapped support for defense, healthcare, finance
88
- - 💼 **Engineering Managers** — Prep for team reviews with per-developer summaries
96
+ - 🤖 **AI Agent Context** — MCP server lets Claude Code, Cursor, and other agents know your work history
97
+ - 🎯 **Interview Prep** — Generate STAR-format stories in 30 minutes (interview lens)
98
+ - 📊 **Performance Reviews** — Turn 6 months of work into quantified impact (resume lens)
99
+ - 🚀 **Sprint Demos** — Professional changelogs for stakeholders (changelog lens)
100
+ - 📱 **Build in Public** — Social posts from your actual work (content lens)
101
+ - 🔒 **Proof of Work** — Verified credentials from real commits (proof lens)
102
+ - 💼 **Engineering Managers** — Team summaries and sprint recaps
89
103
 
90
104
  ## Why Repr
91
105
 
106
+ ### Context That Compounds
107
+
108
+ The longer you use repr, the richer your context becomes. By the time you need a resume, interview prep, or content — you have months of structured history ready to use. No other tool builds this persistent layer.
109
+
110
+ ### AI-Native
111
+
112
+ repr exposes your context via MCP (Model Context Protocol), so AI agents like Claude Code, Cursor, and Clawdbot can know your work history and patterns. Your coding assistant finally understands *you*.
113
+
114
+ ```bash
115
+ # Start MCP server for AI agents
116
+ repr mcp serve
117
+ ```
118
+
92
119
  ### Privacy First (Not an Afterthought)
93
120
 
94
121
  - ✅ **Local-first by default** — Your repos, diffs, and stories stay on your machine in `~/.repr/`
@@ -98,6 +125,16 @@ Turn commits into professional narratives for interviews, performance reviews, a
98
125
  - ✅ **OS keychain** — API keys never touch config files, stored in system keychain
99
126
  - ✅ **Zero telemetry** — No tracking, no analytics, no silent uploads
100
127
 
128
+ ### Story Engine (New in v0.2.16)
129
+
130
+ `repr` now synthesizes **Stories** from your commits — coherent narratives that capture WHY and HOW you built something, not just WHAT changed.
131
+
132
+ - **Generate**: Create stories from your commits with `repr generate`
133
+ - **Dashboard**: Explore your work in a premium dark-mode UI with `repr dashboard` (or `rp dashboard`)
134
+ - **MCP Integration**: AI agents can answer questions about your implementation details
135
+
136
+ [Read the Story Engine Documentation →](docs/STORY_ENGINE.md)
137
+
101
138
  ### Time Savings
102
139
 
103
140
  | Task | Without repr | With repr | Savings |
@@ -385,3 +422,4 @@ brew install repr
385
422
  repr init ~/code
386
423
  repr generate --local
387
424
  ```
425
+
@@ -1,14 +1,24 @@
1
+ <p align="center">
2
+ <strong>Official $REPR Links:</strong> <a href="https://bags.fm/5WsMLk8Zb8PWTXoHev7Ry6QDHNC2KSpY5x8R13GGBAGS">Bags.fm</a> · <a href="https://axiom.trade/t/5WsMLk8Zb8PWTXoHev7Ry6QDHNC2KSpY5x8R13GGBAGS">Axiom</a> · <a href="https://jup.ag/swap?sell=So11111111111111111111111111111111111111112&buy=5WsMLk8Zb8PWTXoHev7Ry6QDHNC2KSpY5x8R13GGBAGS">Jupiter</a> · <a href="https://photon-sol.tinyastro.io/en/lp/5WsMLk8Zb8PWTXoHev7Ry6QDHNC2KSpY5x8R13GGBAGS">Photon</a>
3
+ <br>
4
+ <strong>Official CA:</strong> <code>5WsMLk8Zb8PWTXoHev7Ry6QDHNC2KSpY5x8R13GGBAGS</code> (on Solana)
5
+ </p>
6
+
7
+
1
8
  # Repr CLI
2
9
 
3
- **Stop trying to remember what you did.** Your git history is already a career diary—repr unlocks it.
10
+ **The developer context layer.**
4
11
 
5
- Turn commits into professional narratives for interviews, performance reviews, and career growth. Local-first, privacy-focused, works offline.
12
+ Your git history is rich with context about what you build, how you think, and how you grow. repr captures that context and makes it available everywhere — to AI agents, to applications, to you.
13
+
14
+ **Use it however you need:** Interview prep, performance reviews, social content, AI agent context — these are all *lenses* into the same underlying data. Local-first, privacy-focused, works offline.
6
15
 
7
16
  [![PyPI version](https://img.shields.io/pypi/v/repr-cli.svg)](https://pypi.org/project/repr-cli/)
8
17
  [![Python versions](https://img.shields.io/pypi/pyversions/repr-cli.svg)](https://pypi.org/project/repr-cli/)
9
18
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
10
19
  [![Build](https://github.com/repr-app/cli/actions/workflows/build-release.yml/badge.svg)](https://github.com/repr-app/cli/actions/workflows/build-release.yml)
11
20
 
21
+
12
22
  ## Real Developers, Real Results
13
23
 
14
24
  > *"I used repr to prep for my Meta interview in 30 minutes. Turned 2 years of commits into 8 STAR-format stories. Nailed every behavioral question."*
@@ -20,17 +30,31 @@ Turn commits into professional narratives for interviews, performance reviews, a
20
30
  > *"I run repr in a fully air-gapped environment. Zero network calls, 100% local. It's the only tool I trust for this."*
21
31
  > **— Alex, Defense Contractor**
22
32
 
23
- ## Perfect For
33
+ ## Lenses (Ways to Use Your Context)
24
34
 
25
- - 🎯 **Interview Prep** — Generate STAR-format stories in 30 minutes instead of hours of commit archaeology
26
- - 📊 **Performance Reviews** — Turn 6 months of work into quantified impact with one command
27
- - 🚀 **Sprint Demos** — Professional changelogs for stakeholders in seconds
28
- - 👔 **Weekly 1-on-1s** — Show up with specific examples instead of vague "I worked on stuff"
29
- - 🔒 **Sensitive Work** — Air-gapped support for defense, healthcare, finance
30
- - 💼 **Engineering Managers** — Prep for team reviews with per-developer summaries
35
+ - 🤖 **AI Agent Context** — MCP server lets Claude Code, Cursor, and other agents know your work history
36
+ - 🎯 **Interview Prep** — Generate STAR-format stories in 30 minutes (interview lens)
37
+ - 📊 **Performance Reviews** — Turn 6 months of work into quantified impact (resume lens)
38
+ - 🚀 **Sprint Demos** — Professional changelogs for stakeholders (changelog lens)
39
+ - 📱 **Build in Public** — Social posts from your actual work (content lens)
40
+ - 🔒 **Proof of Work** — Verified credentials from real commits (proof lens)
41
+ - 💼 **Engineering Managers** — Team summaries and sprint recaps
31
42
 
32
43
  ## Why Repr
33
44
 
45
+ ### Context That Compounds
46
+
47
+ The longer you use repr, the richer your context becomes. By the time you need a resume, interview prep, or content — you have months of structured history ready to use. No other tool builds this persistent layer.
48
+
49
+ ### AI-Native
50
+
51
+ repr exposes your context via MCP (Model Context Protocol), so AI agents like Claude Code, Cursor, and Clawdbot can know your work history and patterns. Your coding assistant finally understands *you*.
52
+
53
+ ```bash
54
+ # Start MCP server for AI agents
55
+ repr mcp serve
56
+ ```
57
+
34
58
  ### Privacy First (Not an Afterthought)
35
59
 
36
60
  - ✅ **Local-first by default** — Your repos, diffs, and stories stay on your machine in `~/.repr/`
@@ -40,6 +64,16 @@ Turn commits into professional narratives for interviews, performance reviews, a
40
64
  - ✅ **OS keychain** — API keys never touch config files, stored in system keychain
41
65
  - ✅ **Zero telemetry** — No tracking, no analytics, no silent uploads
42
66
 
67
+ ### Story Engine (New in v0.2.16)
68
+
69
+ `repr` now synthesizes **Stories** from your commits — coherent narratives that capture WHY and HOW you built something, not just WHAT changed.
70
+
71
+ - **Generate**: Create stories from your commits with `repr generate`
72
+ - **Dashboard**: Explore your work in a premium dark-mode UI with `repr dashboard` (or `rp dashboard`)
73
+ - **MCP Integration**: AI agents can answer questions about your implementation details
74
+
75
+ [Read the Story Engine Documentation →](docs/STORY_ENGINE.md)
76
+
43
77
  ### Time Savings
44
78
 
45
79
  | Task | Without repr | With repr | Savings |
@@ -327,3 +361,4 @@ brew install repr
327
361
  repr init ~/code
328
362
  repr generate --local
329
363
  ```
364
+
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "repr-cli"
7
- version = "0.2.16"
7
+ version = "0.2.18"
8
8
  description = "A beautiful, privacy-first CLI that analyzes your code repositories and generates a compelling developer profile"
9
9
  readme = "README.md"
10
10
  license = {file = "LICENSE"}
@@ -33,6 +33,9 @@ dependencies = [
33
33
  "openai>=1.0.0",
34
34
  "keyring>=24.0.0",
35
35
  "pydantic>=2.0.0",
36
+ "fastmcp>=2.0.0,<3",
37
+ "jinja2>=3.1.0",
38
+ "simple-term-menu>=1.6.0",
36
39
  ]
37
40
 
38
41
  [project.optional-dependencies]
@@ -45,6 +48,7 @@ dev = [
45
48
 
46
49
  [project.scripts]
47
50
  repr = "repr.cli:app"
51
+ rp = "repr.cli:app"
48
52
 
49
53
  [project.urls]
50
54
  Homepage = "https://repr.dev"
@@ -55,6 +59,9 @@ Repository = "https://github.com/repr-app/cli"
55
59
  where = ["."]
56
60
  include = ["repr*"]
57
61
 
62
+ [tool.setuptools.package-data]
63
+ "repr.dashboard" = ["dist/**/*"]
64
+
58
65
  [tool.black]
59
66
  line-length = 100
60
67
  target-version = ["py310"]
@@ -10,6 +10,6 @@ try:
10
10
  __version__ = version("repr-cli")
11
11
  except Exception:
12
12
  # Fallback for PyInstaller builds where metadata isn't available
13
- __version__ = "0.2.8"
13
+ __version__ = "0.2.18"
14
14
  __author__ = "Repr"
15
15
  __email__ = "hello@repr.dev"