repr-cli 0.1.0__py3-none-any.whl
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.
- repr/__init__.py +10 -0
- repr/analyzer.py +915 -0
- repr/api.py +263 -0
- repr/auth.py +300 -0
- repr/cli.py +858 -0
- repr/config.py +392 -0
- repr/discovery.py +472 -0
- repr/extractor.py +388 -0
- repr/highlights.py +712 -0
- repr/openai_analysis.py +597 -0
- repr/tools.py +446 -0
- repr/ui.py +430 -0
- repr_cli-0.1.0.dist-info/METADATA +326 -0
- repr_cli-0.1.0.dist-info/RECORD +18 -0
- repr_cli-0.1.0.dist-info/WHEEL +5 -0
- repr_cli-0.1.0.dist-info/entry_points.txt +2 -0
- repr_cli-0.1.0.dist-info/licenses/LICENSE +21 -0
- repr_cli-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: repr-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A beautiful, privacy-first CLI that analyzes your code repositories and generates a compelling developer profile
|
|
5
|
+
Author-email: Repr <hello@repr.dev>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://repr.dev
|
|
8
|
+
Project-URL: Documentation, https://repr.dev/docs
|
|
9
|
+
Project-URL: Repository, https://github.com/repr-app/cli
|
|
10
|
+
Keywords: cli,developer,profile,git,analysis,repr
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Topic :: Software Development :: Version Control :: Git
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: typer>=0.9.0
|
|
25
|
+
Requires-Dist: rich>=13.0.0
|
|
26
|
+
Requires-Dist: gitpython>=3.1.0
|
|
27
|
+
Requires-Dist: pygments>=2.16.0
|
|
28
|
+
Requires-Dist: httpx>=0.25.0
|
|
29
|
+
Requires-Dist: openai>=1.0.0
|
|
30
|
+
Provides-Extra: dev
|
|
31
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
32
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
33
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
34
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
35
|
+
Dynamic: license-file
|
|
36
|
+
|
|
37
|
+
# ๐ Repr CLI
|
|
38
|
+
|
|
39
|
+
> A beautiful CLI that analyzes your code repositories and generates a compelling developer profile using AI.
|
|
40
|
+
|
|
41
|
+
[](https://pypi.org/project/repr-cli/)
|
|
42
|
+
[](https://pypi.org/project/repr-cli/)
|
|
43
|
+
[](https://opensource.org/licenses/MIT)
|
|
44
|
+
|
|
45
|
+
## โจ Features
|
|
46
|
+
|
|
47
|
+
- ๐ค **AI-Powered Analysis** โ Deep code understanding, not just stats
|
|
48
|
+
- ๐ **Zero Data Retention** โ Your code is analyzed but never stored
|
|
49
|
+
- ๐ **Local LLM Support** โ Use Ollama for completely local processing
|
|
50
|
+
- ๐ **Deep Repository Analysis** โ Architecture, frameworks, complexity metrics
|
|
51
|
+
- ๐จ **Beautiful UI** โ Rich terminal interface with progress indicators
|
|
52
|
+
- ๐ **Markdown Output** โ Clean, readable profiles you can share anywhere
|
|
53
|
+
|
|
54
|
+
## ๐ Privacy Options
|
|
55
|
+
|
|
56
|
+
Choose your privacy level:
|
|
57
|
+
|
|
58
|
+
| Mode | Description | Data Flow |
|
|
59
|
+
|------|-------------|-----------|
|
|
60
|
+
| **Cloud (ZDR)** | Zero Data Retention with cloud LLMs | Code sent โ analyzed โ immediately discarded |
|
|
61
|
+
| **Local** | Completely local with Ollama | Code never leaves your machine |
|
|
62
|
+
| **Offline** | Basic stats only, no AI | No network required |
|
|
63
|
+
|
|
64
|
+
### Zero Data Retention (Default)
|
|
65
|
+
|
|
66
|
+
When using cloud analysis:
|
|
67
|
+
- โ
Code is sent over encrypted connections (TLS)
|
|
68
|
+
- โ
Analysis happens in ephemeral containers
|
|
69
|
+
- โ
**No code is ever stored or logged**
|
|
70
|
+
- โ
LLM providers configured for zero retention
|
|
71
|
+
- โ
Results returned, data discarded immediately
|
|
72
|
+
|
|
73
|
+
### Local LLM Mode
|
|
74
|
+
|
|
75
|
+
For complete local control:
|
|
76
|
+
```bash
|
|
77
|
+
# Use Ollama (recommended)
|
|
78
|
+
repr analyze ~/code --local --model llama3.2
|
|
79
|
+
|
|
80
|
+
# Use any OpenAI-compatible local server
|
|
81
|
+
repr analyze ~/code --local --api-base http://localhost:11434/v1
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## ๐ธ Demo
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
$ repr analyze ~/code
|
|
88
|
+
|
|
89
|
+
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
|
|
90
|
+
โ ๐ Repr CLI v0.1.0 โ
|
|
91
|
+
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
|
|
92
|
+
|
|
93
|
+
Discovering repositories...
|
|
94
|
+
Found 12 repositories in 1 path(s)
|
|
95
|
+
|
|
96
|
+
Analyzing
|
|
97
|
+
โญโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโฎ
|
|
98
|
+
โ Repository โ Language โ Commits โ Age โ Status โ
|
|
99
|
+
โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโค
|
|
100
|
+
โ ecommerce-api โ Python โ 340 โ 1.5 yr โ โ Done โ
|
|
101
|
+
โ react-dashboard โ TypeScriptโ 156 โ 8 mo โ โ Done โ
|
|
102
|
+
โ ml-experiments โ Python โ 89 โ 4 mo โ โ Done โ
|
|
103
|
+
โฐโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโฏ
|
|
104
|
+
|
|
105
|
+
โ Profile saved: ~/.repr/profiles/2024-01-15.md
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## ๐ฆ Quick Start
|
|
109
|
+
|
|
110
|
+
### Installation
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
pip install repr-cli
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### For Local LLM (Optional)
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Install Ollama
|
|
120
|
+
curl -fsSL https://ollama.com/install.sh | sh
|
|
121
|
+
|
|
122
|
+
# Pull a model
|
|
123
|
+
ollama pull llama3.2
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Usage
|
|
127
|
+
|
|
128
|
+
**Generate your profile (cloud, ZDR):**
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Analyze repos with cloud AI (zero data retention)
|
|
132
|
+
repr analyze ~/code
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Use local LLM:**
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
# Use Ollama locally
|
|
139
|
+
repr analyze ~/code --local
|
|
140
|
+
|
|
141
|
+
# Specify model
|
|
142
|
+
repr analyze ~/code --local --model codellama
|
|
143
|
+
|
|
144
|
+
# Use custom local endpoint
|
|
145
|
+
repr analyze ~/code --local --api-base http://localhost:1234/v1
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Offline mode (stats only):**
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
# No AI, no network - just code metrics
|
|
152
|
+
repr analyze ~/code --offline
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**View your profile:**
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
repr view
|
|
159
|
+
repr view --raw > profile.md
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## ๐ ๏ธ Commands
|
|
163
|
+
|
|
164
|
+
### `repr analyze`
|
|
165
|
+
|
|
166
|
+
Analyze repositories and generate a developer profile.
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
repr analyze <paths...> [OPTIONS]
|
|
170
|
+
|
|
171
|
+
Options:
|
|
172
|
+
--local Use local LLM (Ollama) instead of cloud
|
|
173
|
+
--model NAME Local model to use (default: llama3.2)
|
|
174
|
+
--api-base URL Custom local LLM API endpoint
|
|
175
|
+
--offline Stats only, no AI analysis
|
|
176
|
+
--no-cache Re-analyze all repositories
|
|
177
|
+
--verbose, -V Show detailed logs
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### `repr view`
|
|
181
|
+
|
|
182
|
+
View your generated profile.
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
repr view [OPTIONS]
|
|
186
|
+
|
|
187
|
+
Options:
|
|
188
|
+
--profile NAME View a specific profile
|
|
189
|
+
--raw, -r Output plain markdown
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### `repr login`
|
|
193
|
+
|
|
194
|
+
Authenticate for cloud analysis.
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
repr login
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### `repr logout`
|
|
201
|
+
|
|
202
|
+
Clear authentication.
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
repr logout
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### `repr push`
|
|
209
|
+
|
|
210
|
+
Upload profile to repr.dev.
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
repr push [--profile NAME]
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### `repr profiles`
|
|
217
|
+
|
|
218
|
+
List all saved profiles.
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
repr profiles
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
## โ๏ธ Configuration
|
|
225
|
+
|
|
226
|
+
Config stored in `~/.repr/config.json`:
|
|
227
|
+
|
|
228
|
+
```json
|
|
229
|
+
{
|
|
230
|
+
"version": 1,
|
|
231
|
+
"settings": {
|
|
232
|
+
"default_paths": ["~/code"],
|
|
233
|
+
"skip_patterns": ["node_modules", "venv", ".venv", "vendor", "__pycache__", ".git"]
|
|
234
|
+
},
|
|
235
|
+
"llm": {
|
|
236
|
+
"extraction_model": "gpt-4o-mini",
|
|
237
|
+
"synthesis_model": "gpt-4o",
|
|
238
|
+
"local_api_url": "http://localhost:11434/v1",
|
|
239
|
+
"local_api_key": "ollama"
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Environment Variables
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# Use local LLM by default
|
|
248
|
+
export REPR_LOCAL=true
|
|
249
|
+
export REPR_MODEL=codellama
|
|
250
|
+
|
|
251
|
+
# Custom Ollama endpoint
|
|
252
|
+
export OLLAMA_HOST=http://localhost:11434
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
## ๐ What Gets Analyzed
|
|
256
|
+
|
|
257
|
+
The CLI performs deep analysis of your repositories:
|
|
258
|
+
|
|
259
|
+
**Code Metrics:**
|
|
260
|
+
- Lines of code, comments, complexity
|
|
261
|
+
- Function/class counts
|
|
262
|
+
- Average file and function sizes
|
|
263
|
+
|
|
264
|
+
**Architecture Detection:**
|
|
265
|
+
- Project type (web app, API, CLI, library, ML project)
|
|
266
|
+
- Architecture patterns (MVC, clean architecture, microservices)
|
|
267
|
+
- Framework detection (React, Django, FastAPI, etc.)
|
|
268
|
+
|
|
269
|
+
**Quality Indicators:**
|
|
270
|
+
- Test coverage and test frameworks
|
|
271
|
+
- Documentation presence and quality
|
|
272
|
+
- Docstring coverage
|
|
273
|
+
|
|
274
|
+
**Technical Stack:**
|
|
275
|
+
- Languages and percentages
|
|
276
|
+
- Dependencies and notable libraries
|
|
277
|
+
- API endpoints detection
|
|
278
|
+
|
|
279
|
+
## ๐ Requirements
|
|
280
|
+
|
|
281
|
+
- Python 3.10+
|
|
282
|
+
- Git
|
|
283
|
+
- For local mode: [Ollama](https://ollama.com/) or compatible LLM server
|
|
284
|
+
|
|
285
|
+
## ๐ Directory Structure
|
|
286
|
+
|
|
287
|
+
```
|
|
288
|
+
~/.repr/
|
|
289
|
+
โโโ config.json # Settings
|
|
290
|
+
โโโ profiles/ # Generated profiles
|
|
291
|
+
โ โโโ 2024-01-15.md
|
|
292
|
+
โ โโโ 2024-01-20.md
|
|
293
|
+
โโโ cache/ # Analysis cache
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
## ๐ค Contributing
|
|
297
|
+
|
|
298
|
+
Contributions welcome! See [CONTRIBUTING.md](https://github.com/repr-app/cli/blob/main/CONTRIBUTING.md).
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
git clone https://github.com/repr-app/cli.git
|
|
302
|
+
cd cli
|
|
303
|
+
pip install -e ".[dev]"
|
|
304
|
+
pytest
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
## ๐ License
|
|
308
|
+
|
|
309
|
+
MIT License - see [LICENSE](LICENSE).
|
|
310
|
+
|
|
311
|
+
## ๐ Links
|
|
312
|
+
|
|
313
|
+
- [Website](https://repr.dev)
|
|
314
|
+
- [Documentation](https://repr.dev/docs)
|
|
315
|
+
- [GitHub](https://github.com/repr-app/cli)
|
|
316
|
+
|
|
317
|
+
## ๐ฌ Support
|
|
318
|
+
|
|
319
|
+
- Email: [hello@repr.dev](mailto:hello@repr.dev)
|
|
320
|
+
- Discord: [discord.gg/repr](https://discord.gg/repr)
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
<p align="center">
|
|
325
|
+
Made with โค๏ธ by the Repr team
|
|
326
|
+
</p>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
repr/__init__.py,sha256=GntM0Rl6ygrC0MvxSTUsXweObh5FWTs9aprRXxP1Ons,269
|
|
2
|
+
repr/analyzer.py,sha256=VOf3gZoNVZ1usadchoisRw7WAMDjj-c2uREUivgwuoA,31025
|
|
3
|
+
repr/api.py,sha256=NPvs7bn2V9rg9OW11tJoE1hngJCzJRd_bj8jgab1Ft8,7840
|
|
4
|
+
repr/auth.py,sha256=ziy7b2wngtQW2V1W27ZoDMacWs9AW-drrCkTIiVQ_UA,9799
|
|
5
|
+
repr/cli.py,sha256=nmoCN2y3g9kOUargTEHf_G4oCNFdyBD30qrzgZXgaoM,27757
|
|
6
|
+
repr/config.py,sha256=TNj0qCyq0x7N39ojSDC2QmsiRUYQZRIZ42j0Rf6EIbA,11540
|
|
7
|
+
repr/discovery.py,sha256=MTb1Eh4hVTQT4Eq0ufME5rZidxVnOJT9nzbQv8njqL4,14694
|
|
8
|
+
repr/extractor.py,sha256=lGPN8gwTF_ZSezoQoPBMnf95nCJArGIteNiInfb39FM,10566
|
|
9
|
+
repr/highlights.py,sha256=Qzvhbcopvb0VdjuHRmAt14-ZV9H3XUceMDB2N0CUxho,23678
|
|
10
|
+
repr/openai_analysis.py,sha256=7dlOfehErDHfQ8sOA8n29_1BvfrcFhxudjR7iY7EfA0,23257
|
|
11
|
+
repr/tools.py,sha256=e3zi1PRsGYb3hyxPp9eUT0tBDYiBPgZd-OHbDOv-oOc,13279
|
|
12
|
+
repr/ui.py,sha256=PebNXo9F0P9pgOtGj1Q3QZbKM-lu6WD948hlPvo0BZk,13144
|
|
13
|
+
repr_cli-0.1.0.dist-info/licenses/LICENSE,sha256=kJzjUb17g771EcaD6Q0dgykMqSq2EjWmIv_iiADTdM4,1067
|
|
14
|
+
repr_cli-0.1.0.dist-info/METADATA,sha256=3g4YlGr4ykGXu9kwRdvT8IuxSS50XWbAmo_WJwYstKo,8767
|
|
15
|
+
repr_cli-0.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
16
|
+
repr_cli-0.1.0.dist-info/entry_points.txt,sha256=SJoKgNB-fRy6O2T_lztFr9T3ND_BQl0ijWxNW-J7dUU,38
|
|
17
|
+
repr_cli-0.1.0.dist-info/top_level.txt,sha256=LNgPqdJPQnlicRve7uzI4a6rEUdcxHrNkUq_2w7eeiA,5
|
|
18
|
+
repr_cli-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 ResumeFlow
|
|
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 @@
|
|
|
1
|
+
repr
|