crowdmind 0.1.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.
@@ -0,0 +1,76 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ build/
8
+ develop-eggs/
9
+ dist/
10
+ downloads/
11
+ eggs/
12
+ .eggs/
13
+ lib/
14
+ lib64/
15
+ parts/
16
+ sdist/
17
+ var/
18
+ wheels/
19
+ *.egg-info/
20
+ .installed.cfg
21
+ *.egg
22
+
23
+ # Virtual environments
24
+ .env
25
+ .venv/
26
+ venv/
27
+ ENV/
28
+
29
+ # Crowdmind cache and output
30
+ .crowdmind/
31
+ crowdmind-report.md
32
+ *-report.md
33
+
34
+ # EDSL artifacts
35
+ .edsl_model_archive.json
36
+ tmp*.html
37
+ output.html
38
+
39
+ # Research cache (regenerated on run)
40
+ codebase_analysis.json
41
+ feature_ideas.json
42
+ market_analysis.json
43
+ multi_research.json
44
+ reddit_research.json
45
+ state.json
46
+ state_edsl.json
47
+ optimization_history.json
48
+
49
+ # Logs
50
+ log.md
51
+ log_edsl.md
52
+ results.tsv
53
+ results_edsl.tsv
54
+
55
+ # IDE
56
+ .idea/
57
+ .vscode/
58
+ *.swp
59
+ *.swo
60
+ *~
61
+ .DS_Store
62
+
63
+ # Testing
64
+ .pytest_cache/
65
+ .coverage
66
+ htmlcov/
67
+ .tox/
68
+ .nox/
69
+
70
+ # Build artifacts
71
+ *.manifest
72
+ *.spec
73
+
74
+ # Keep persona packs
75
+ !persona_packs/*.yaml
76
+ !crowdmind/persona_packs/*.yaml
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 yasintoy
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,364 @@
1
+ Metadata-Version: 2.4
2
+ Name: crowdmind
3
+ Version: 0.1.0
4
+ Summary: Autonomous product research powered by AI agents
5
+ Project-URL: Homepage, https://github.com/yasintoy/crowdmind
6
+ Project-URL: Documentation, https://github.com/yasintoy/crowdmind#readme
7
+ Project-URL: Repository, https://github.com/yasintoy/crowdmind
8
+ Author: yasintoy
9
+ License: MIT
10
+ License-File: LICENSE
11
+ Keywords: ai,edsl,llm,market-research,personas,product-research,validation
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Requires-Python: >=3.10
20
+ Requires-Dist: click<8.2.0,>=8.0.0
21
+ Requires-Dist: edsl>=1.0.0
22
+ Requires-Dist: python-dotenv>=1.0.0
23
+ Requires-Dist: pyyaml>=6.0
24
+ Requires-Dist: requests>=2.28.0
25
+ Requires-Dist: rich>=13.0.0
26
+ Requires-Dist: typer[all]<0.10.0,>=0.9.0
27
+ Provides-Extra: all-providers
28
+ Requires-Dist: anthropic>=0.20.0; extra == 'all-providers'
29
+ Requires-Dist: google-generativeai>=0.3.0; extra == 'all-providers'
30
+ Requires-Dist: groq>=0.4.0; extra == 'all-providers'
31
+ Requires-Dist: ollama>=0.1.0; extra == 'all-providers'
32
+ Requires-Dist: openai>=1.0.0; extra == 'all-providers'
33
+ Provides-Extra: anthropic
34
+ Requires-Dist: anthropic>=0.20.0; extra == 'anthropic'
35
+ Provides-Extra: dev
36
+ Requires-Dist: black>=23.0.0; extra == 'dev'
37
+ Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
38
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
39
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
40
+ Provides-Extra: google
41
+ Requires-Dist: google-generativeai>=0.3.0; extra == 'google'
42
+ Provides-Extra: groq
43
+ Requires-Dist: groq>=0.4.0; extra == 'groq'
44
+ Provides-Extra: ollama
45
+ Requires-Dist: ollama>=0.1.0; extra == 'ollama'
46
+ Provides-Extra: openai
47
+ Requires-Dist: openai>=1.0.0; extra == 'openai'
48
+ Description-Content-Type: text/markdown
49
+
50
+ <p align="center">
51
+ <img src="https://img.shields.io/badge/python-3.10+-blue.svg" alt="Python 3.10+">
52
+ <img src="https://img.shields.io/pypi/v/crowdmind.svg" alt="PyPI">
53
+ <img src="https://img.shields.io/badge/license-MIT-green.svg" alt="MIT License">
54
+ </p>
55
+
56
+ <h1 align="center">CrowdMind</h1>
57
+
58
+ <p align="center">
59
+ <strong>Scrape Reddit & HN for user pain points. Automatically.</strong><br>
60
+ Find what real users complain about → Generate feature ideas → Score them with diverse AI personas
61
+ </p>
62
+
63
+ <p align="center">
64
+ <em>Inspired by <a href="https://github.com/karpathy/autoresearch">Karpathy's Autoresearch</a> — autonomous experimentation for product research</em>
65
+ </p>
66
+
67
+ <p align="center">
68
+ <a href="#try-it-now">Try It</a> •
69
+ <a href="#aha-moments">Use Cases</a> •
70
+ <a href="#quick-start">Quick Start</a> •
71
+ <a href="#commands">Commands</a> •
72
+ <a href="#faq">FAQ</a>
73
+ </p>
74
+
75
+ ---
76
+
77
+ ## Try It Now
78
+
79
+ ```bash
80
+ pip install crowdmind
81
+ export ANTHROPIC_API_KEY="sk-ant-..." # or OPENAI_API_KEY
82
+ crowdmind validate "Your startup idea here"
83
+ ```
84
+
85
+ ```
86
+ $ crowdmind validate "A CLI tool for managing AI coding agents"
87
+
88
+ Score: 78/100 | Would Star: 70% | Would Pay: 55%
89
+
90
+ Feedback from 10 AI personas:
91
+ ✓ "Solves a real pain point" - Senior Developer (9/10)
92
+ ✓ "Would use this daily" - Indie Hacker (8/10)
93
+ △ "Need team features for enterprise" - Tech Lead (7/10)
94
+ ✗ "Skeptical, but research data looks useful" - Skeptic (5/10)
95
+ ```
96
+
97
+ ## What It Does
98
+
99
+ 1. **Scrapes Reddit, HN, GitHub** for what users actually complain about
100
+ 2. **Generates feature ideas** that solve real pain points (not imagined ones)
101
+ 3. **Validates before you build** — test with 5 to 100+ AI personas in seconds
102
+ 4. **Kills bad ideas early** — save weeks of building things nobody wants
103
+
104
+ **Validate features before deploying. Test positioning before launching. Know what users want before asking them.**
105
+
106
+ ## Quick Start
107
+
108
+ ```bash
109
+ # Install
110
+ pip install crowdmind
111
+ export ANTHROPIC_API_KEY="sk-ant-..." # or OPENAI_API_KEY
112
+
113
+ # Validate an idea (60 seconds)
114
+ crowdmind validate "An app that tracks AI API spending"
115
+
116
+ # Find what users complain about (2 minutes)
117
+ crowdmind research --topics "AI coding tools" --sources reddit hackernews
118
+
119
+ # Full analysis on your project (5 minutes)
120
+ crowdmind analyze ./my-project --personas 15
121
+ ```
122
+
123
+ ## What It Finds
124
+
125
+ ```bash
126
+ $ crowdmind research --topics "developer tools" --sources reddit hackernews
127
+
128
+ 🔥 TOP FRUSTRATIONS (from 47 discussions):
129
+ 1. "Rate limits kill my flow state" (23 mentions)
130
+ 2. "No way to track spending" (18 mentions)
131
+ 3. "Context fills up too fast" (15 mentions)
132
+
133
+ 💡 OPPORTUNITIES:
134
+ → Rate limit predictor (solves #1)
135
+ → Cost tracking dashboard (solves #2)
136
+ → Smart context compression (solves #3)
137
+ ```
138
+
139
+ ## Commands
140
+
141
+ | Command | What it does | Time |
142
+ |---------|--------------|------|
143
+ | `crowdmind validate "idea"` | Test idea with AI personas | ~1 min |
144
+ | `crowdmind research` | Find pain points from Reddit/HN/GitHub | ~2 min |
145
+ | `crowdmind analyze ./path` | Full pipeline: research → ideate → validate | ~5 min |
146
+ | `crowdmind market ./path` | Pricing & go-to-market analysis | ~3 min |
147
+
148
+ ## Persona Packs
149
+
150
+ ```bash
151
+ # Choose your audience (default: 10 personas, use any number you want)
152
+ crowdmind validate "idea" --pack developers --personas 50 # 50 dev personas
153
+ crowdmind validate "idea" --pack indie --personas 100 # 100 indie hackers
154
+ crowdmind validate "idea" --pack enterprise --personas 30 # 30 enterprise buyers
155
+ crowdmind validate "idea" --pack skeptics --personas 20 # 20 tough critics
156
+
157
+ # More personas = more signal, slightly more cost (~$0.01 per persona)
158
+ ```
159
+
160
+ ## Pro Tips: Get Better Results
161
+
162
+ ### 1. Use Real Data to Build Better Personas
163
+
164
+ Don't guess who your users are. Find them first:
165
+
166
+ ```bash
167
+ # Step 1: Research who's complaining and what they say
168
+ crowdmind research --topics "your niche" --sources reddit hackernews
169
+
170
+ # Output shows real user profiles:
171
+ # → "Senior devs frustrated with slow builds" (34 mentions)
172
+ # → "Indie hackers can't afford $50/mo tools" (28 mentions)
173
+ # → "Enterprise teams blocked by security reviews" (19 mentions)
174
+
175
+ # Step 2: Now validate with personas that match real users
176
+ crowdmind validate "your idea" --pack developers --personas 30
177
+ crowdmind validate "your idea" --pack indie --personas 30
178
+ crowdmind validate "your idea" --pack enterprise --personas 30
179
+ ```
180
+
181
+ ### 2. Create Custom Personas from Your Actual Users
182
+
183
+ Have real user data? Create personas that match:
184
+
185
+ ```yaml
186
+ # my-personas.yaml
187
+ personas:
188
+ - "Senior engineer at a startup, mass $100+/mo on AI tools, frustrated by rate limits"
189
+ - "Solo founder bootstrapping, budget under $20/mo, needs fast ROI"
190
+ - "Tech lead evaluating for 10-person team, needs SSO and audit logs"
191
+ - "Skeptical developer who tried 5 similar tools and was disappointed"
192
+ ```
193
+
194
+ ```bash
195
+ crowdmind validate "your idea" --pack ./my-personas.yaml --personas 50
196
+ ```
197
+
198
+ ### 3. Iterate Based on Score Breakdown
199
+
200
+ Don't just look at the total score. Dig into segments:
201
+
202
+ ```bash
203
+ # Test same idea with different audiences
204
+ crowdmind validate "your feature" --pack developers # → 72/100
205
+ crowdmind validate "your feature" --pack enterprise # → 84/100
206
+ crowdmind validate "your feature" --pack indie # → 45/100
207
+
208
+ # Insight: Enterprise loves it, indie hackers don't.
209
+ # Decision: Price for enterprise, not indie.
210
+ ```
211
+
212
+ ### 4. Combine Research + Validation Loop
213
+
214
+ The power move: let research inform your validation.
215
+
216
+ ```bash
217
+ # 1. Find real pain points
218
+ crowdmind research --topics "CI/CD pipelines" --sources reddit
219
+ # → Top pain: "GitHub Actions minutes are expensive" (52 mentions)
220
+
221
+ # 2. Generate a solution
222
+ # Idea: "Self-hosted GitHub Actions runner with cost tracking"
223
+
224
+ # 3. Validate with personas who have this pain
225
+ crowdmind validate "Self-hosted GitHub Actions runner with cost tracking" --personas 50
226
+ # → 81/100 | "Would switch immediately"
227
+
228
+ # 4. Iterate on positioning until you hit 80%+
229
+ ```
230
+
231
+ ### 5. Use Skeptics to Stress-Test
232
+
233
+ Before launch, run the skeptics gauntlet:
234
+
235
+ ```bash
236
+ crowdmind validate "your final pitch" --pack skeptics --personas 30
237
+ # If skeptics score 60%+, you're ready.
238
+ # If below 50%, address their objections first.
239
+ ```
240
+
241
+ ---
242
+
243
+ ## Python API
244
+
245
+ ```python
246
+ import crowdmind
247
+
248
+ # Validate
249
+ result = crowdmind.validate("My product idea")
250
+ print(f"Score: {result['total_score']}/100")
251
+
252
+ # Research
253
+ research = crowdmind.research(topics=["AI tools"], sources=["reddit"])
254
+ print(research['frustrations'])
255
+
256
+ # Full workflow: Research → Validate with custom personas
257
+ pains = crowdmind.research(topics=["your niche"])
258
+ for pain in pains['frustrations'][:3]:
259
+ score = crowdmind.validate(f"Solution for: {pain}", personas=30)
260
+ print(f"{pain}: {score['total_score']}/100")
261
+ ```
262
+
263
+ ## Aha Moments
264
+
265
+ ### 💡 "Don't deploy to prod to validate a feature"
266
+
267
+ You're about to spend 2 weeks building "AI-powered search". Before you write a line of code:
268
+
269
+ ```bash
270
+ crowdmind validate "AI-powered semantic search for documentation"
271
+ # → 54/100 | "Most users just want faster Cmd+F, not AI magic"
272
+ # → Saved 2 weeks. Built better search filters instead.
273
+ ```
274
+
275
+ ### 💡 "Find out why users churn before they tell you"
276
+
277
+ ```bash
278
+ crowdmind research --topics "why I stopped using [competitor]" --sources reddit
279
+ # → "Pricing jumped 3x after Series A" (47 mentions)
280
+ # → "Mobile app is abandonware" (31 mentions)
281
+ # → Now you know exactly where to compete.
282
+ ```
283
+
284
+ ### 💡 "Test 5 positioning angles in 5 minutes"
285
+
286
+ ```bash
287
+ crowdmind validate "The open-source Notion alternative"
288
+ # → 61/100 | "Crowded space, what's different?"
289
+
290
+ crowdmind validate "Notion but your data never leaves your machine"
291
+ # → 78/100 | "Privacy angle is compelling. Would switch."
292
+ # → Found your positioning without A/B testing for weeks.
293
+ ```
294
+
295
+ ### 💡 "Know if enterprise will pay before building SSO"
296
+
297
+ ```bash
298
+ crowdmind validate "Add SSO and audit logs" --pack enterprise --personas 50
299
+ # → 82/100 | 50 enterprise personas agree: "Table stakes. Won't evaluate without it."
300
+ # → Worth the 3 weeks. Ship it.
301
+
302
+ crowdmind validate "Add dark mode" --pack enterprise --personas 50
303
+ # → 41/100 | "Nice to have. Won't affect purchase decision."
304
+ # → Skip it. Focus on what closes deals.
305
+ ```
306
+
307
+ ### 💡 "Discover the feature nobody asked for but everyone wants"
308
+
309
+ ```bash
310
+ crowdmind research --topics "developer productivity" --sources hackernews
311
+ # → Hidden gem: "I waste 20 min/day context-switching between projects" (28 mentions)
312
+ # → Nobody requested "workspace snapshots" but it's a top pain point.
313
+ ```
314
+
315
+ ### 💡 "Pre-validate your pivot"
316
+
317
+ ```bash
318
+ crowdmind validate "Pivoting from B2C to B2B developer tools"
319
+ # → B2C score: 52/100 | "Too many free alternatives"
320
+ # → B2B score: 74/100 | "Would expense this. Saves 5hrs/week."
321
+ # → Data-backed pivot decision, not gut feeling.
322
+ ```
323
+
324
+ ## FAQ
325
+
326
+ <details>
327
+ <summary><strong>Is AI feedback accurate?</strong></summary>
328
+
329
+ It's a filter, not truth. Think spell-check for product ideas. Catches obvious misses before you spend months building. Use it to narrow 10 ideas to 2-3, then validate those with real users.
330
+ </details>
331
+
332
+ <details>
333
+ <summary><strong>How much does it cost?</strong></summary>
334
+
335
+ ~$0.05-0.20 per validation. Research is mostly free (public APIs). Less than a coffee for a full analysis.
336
+ </details>
337
+
338
+ <details>
339
+ <summary><strong>What LLMs work?</strong></summary>
340
+
341
+ Anthropic, OpenAI, Google, Groq, Ollama (local/free). Use `--provider ollama` for completely free, offline validation.
342
+ </details>
343
+
344
+ <details>
345
+ <summary><strong>How is this different from asking ChatGPT?</strong></summary>
346
+
347
+ ChatGPT = 1 opinion. CrowdMind = 10-30 diverse personas that disagree with each other. Skeptics find flaws. Power users want features. Indie hackers complain about price. That diversity is the value.
348
+ </details>
349
+
350
+ ## Credits
351
+
352
+ - **[EDSL](https://github.com/expectedparrot/edsl)** - AI agent framework powering persona simulation
353
+ - **[Karpathy's Autoresearch](https://github.com/karpathy/autoresearch)** - Inspiration for autonomous research loops
354
+
355
+ ## License
356
+
357
+ MIT © [yasintoy](https://github.com/yasintoy)
358
+
359
+ ---
360
+
361
+ <p align="center">
362
+ <strong>Stop guessing. Start validating.</strong><br>
363
+ <code>pip install crowdmind</code>
364
+ </p>