skillmind 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.
Files changed (42) hide show
  1. skillmind-0.1.0/.gitignore +47 -0
  2. skillmind-0.1.0/CLAUDE.md +77 -0
  3. skillmind-0.1.0/LICENSE +21 -0
  4. skillmind-0.1.0/PKG-INFO +300 -0
  5. skillmind-0.1.0/README.md +228 -0
  6. skillmind-0.1.0/configs/default.yml +40 -0
  7. skillmind-0.1.0/generate_pdfs.py +222 -0
  8. skillmind-0.1.0/pyproject.toml +82 -0
  9. skillmind-0.1.0/src/skillmind/__init__.py +3 -0
  10. skillmind-0.1.0/src/skillmind/cli/__init__.py +1 -0
  11. skillmind-0.1.0/src/skillmind/cli/main.py +457 -0
  12. skillmind-0.1.0/src/skillmind/config.py +131 -0
  13. skillmind-0.1.0/src/skillmind/context.py +218 -0
  14. skillmind-0.1.0/src/skillmind/embeddings.py +126 -0
  15. skillmind-0.1.0/src/skillmind/listener.py +250 -0
  16. skillmind-0.1.0/src/skillmind/mcp/__init__.py +1 -0
  17. skillmind-0.1.0/src/skillmind/mcp/server.py +429 -0
  18. skillmind-0.1.0/src/skillmind/migration.py +201 -0
  19. skillmind-0.1.0/src/skillmind/models.py +112 -0
  20. skillmind-0.1.0/src/skillmind/sanitizer.py +233 -0
  21. skillmind-0.1.0/src/skillmind/setup.py +380 -0
  22. skillmind-0.1.0/src/skillmind/store/__init__.py +45 -0
  23. skillmind-0.1.0/src/skillmind/store/base.py +148 -0
  24. skillmind-0.1.0/src/skillmind/store/chroma_store.py +184 -0
  25. skillmind-0.1.0/src/skillmind/store/faiss_store.py +286 -0
  26. skillmind-0.1.0/src/skillmind/store/pinecone_store.py +204 -0
  27. skillmind-0.1.0/src/skillmind/store/qdrant_store.py +256 -0
  28. skillmind-0.1.0/src/skillmind/store/supabase_store.py +267 -0
  29. skillmind-0.1.0/src/skillmind/trainer.py +283 -0
  30. skillmind-0.1.0/src/skillmind/video/__init__.py +1 -0
  31. skillmind-0.1.0/src/skillmind/video/screen_recorder.py +207 -0
  32. skillmind-0.1.0/src/skillmind/video/video_learner.py +454 -0
  33. skillmind-0.1.0/src/skillmind/video/youtube_learner.py +459 -0
  34. skillmind-0.1.0/test_sanitizer_quick.py +22 -0
  35. skillmind-0.1.0/tests/__init__.py +0 -0
  36. skillmind-0.1.0/tests/conftest.py +146 -0
  37. skillmind-0.1.0/tests/test_context.py +87 -0
  38. skillmind-0.1.0/tests/test_listener.py +92 -0
  39. skillmind-0.1.0/tests/test_migration.py +126 -0
  40. skillmind-0.1.0/tests/test_models.py +121 -0
  41. skillmind-0.1.0/tests/test_stores.py +219 -0
  42. skillmind-0.1.0/tests/test_trainer.py +147 -0
@@ -0,0 +1,47 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ *.egg-info/
7
+ dist/
8
+ build/
9
+ .eggs/
10
+
11
+ # Virtual environments
12
+ venv/
13
+ .venv/
14
+ env/
15
+
16
+ # IDE
17
+ .idea/
18
+ .vscode/
19
+ *.swp
20
+ *.swo
21
+
22
+ # Environment / secrets
23
+ .env
24
+ .env.local
25
+ .env.*.local
26
+
27
+ # Runtime data
28
+ .skillmind/
29
+ *.db
30
+ *.sqlite3
31
+
32
+ # Test / coverage
33
+ .pytest_cache/
34
+ .coverage
35
+ htmlcov/
36
+ .mypy_cache/
37
+
38
+ # OS
39
+ .DS_Store
40
+ Thumbs.db
41
+ desktop.ini
42
+
43
+ # Recordings (runtime)
44
+ recordings/
45
+
46
+ # Website (private, not in public repo)
47
+ website/
@@ -0,0 +1,77 @@
1
+ # SkillMind
2
+
3
+ **Active Skill Listener & Trainer** — structured memory layer for AI coding assistants.
4
+
5
+ ## What is this?
6
+
7
+ SkillMind replaces flat markdown memory files with a vector-database-backed memory system that:
8
+ - **Listens** to git events, file changes, and conversations
9
+ - **Trains** by auto-classifying, deduplicating, and consolidating knowledge
10
+ - **Surfaces** only relevant context per conversation (not everything)
11
+
12
+ ## Architecture
13
+
14
+ ```
15
+ src/skillmind/
16
+ ├── models.py # Memory, QueryFilter, QueryResult (Pydantic)
17
+ ├── config.py # SkillMindConfig (YAML-based)
18
+ ├── embeddings.py # EmbeddingEngine (sentence-transformers | openai)
19
+ ├── trainer.py # Auto-classify, dedup, merge, consolidate
20
+ ├── listener.py # GitListener, FileListener, ConversationListener
21
+ ├── context.py # ContextGenerator — dynamic context for Claude Code
22
+ ├── migration.py # Import existing Claude Code markdown memories
23
+ ├── store/
24
+ │ ├── base.py # Abstract MemoryStore interface
25
+ │ ├── chroma_store.py # ChromaDB backend (default)
26
+ │ ├── pinecone_store.py # Pinecone backend
27
+ │ ├── supabase_store.py # Supabase/pgvector backend
28
+ │ ├── qdrant_store.py # Qdrant backend
29
+ │ └── faiss_store.py # FAISS + JSON backend
30
+ ├── mcp/
31
+ │ └── server.py # MCP server (10 tools for Claude Code)
32
+ └── cli/
33
+ └── main.py # CLI (click-based)
34
+ ```
35
+
36
+ ## Key Commands
37
+
38
+ ```bash
39
+ pip install -e ".[chroma]" # Install with Chroma backend
40
+ skillmind init --backend chroma # Initialize
41
+ skillmind import # Import existing Claude Code memories
42
+ skillmind remember "content" # Store memory
43
+ skillmind recall "query" # Semantic search
44
+ skillmind list # List all
45
+ skillmind consolidate # Cleanup
46
+ skillmind serve # Start MCP server
47
+ ```
48
+
49
+ ## Store Backends
50
+
51
+ All 5 implement the same `MemoryStore` interface (add, query, get, update, delete, list_all, count, clear):
52
+
53
+ | Backend | Best for | Requires |
54
+ |---------|----------|----------|
55
+ | **chroma** | Solo dev, local, default | `pip install chromadb` |
56
+ | **faiss** | Offline, air-gapped, fastest | `pip install faiss-cpu` |
57
+ | **qdrant** | Self-hosted or cloud, great filtering | Qdrant server |
58
+ | **pinecone** | Multi-device cloud sync | API key |
59
+ | **supabase** | SQL + vectors, team sharing | Supabase project |
60
+
61
+ ## MCP Server Tools
62
+
63
+ 10 tools exposed via FastMCP: `remember`, `recall`, `forget`, `update_memory`, `context`, `consolidate`, `memory_stats`, `list_memories`, `import_markdown_memories`.
64
+
65
+ ## Memory Types
66
+
67
+ - **user** — role, preferences, expertise
68
+ - **feedback** — corrections, confirmed approaches
69
+ - **project** — deadlines, client context, status (auto-expires 90d)
70
+ - **reference** — external URLs, dashboards, wikis
71
+ - **skill** — patterns, workflows, how-tos
72
+
73
+ ## Testing
74
+
75
+ ```bash
76
+ pytest tests/ -v
77
+ ```
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Antonio Blago
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,300 @@
1
+ Metadata-Version: 2.4
2
+ Name: skillmind
3
+ Version: 0.1.0
4
+ Summary: Active Skill Listener & Trainer — structured memory layer for AI coding assistants
5
+ Project-URL: Homepage, https://skill-mind.com
6
+ Project-URL: Documentation, https://skill-mind.com/en/quickstart/
7
+ Project-URL: Repository, https://github.com/AntonioBlago/skillmind
8
+ Project-URL: Issues, https://github.com/AntonioBlago/skillmind/issues
9
+ Author-email: Antonio Blago <info@antonioblago.com>
10
+ License-Expression: MIT
11
+ License-File: LICENSE
12
+ Keywords: ai-assistant,chroma,claude-code,faiss,mcp,memory,pinecone,qdrant,screen-recording,semantic-search,skill-learning,supabase,vector-database,youtube
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
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 :: Scientific/Engineering :: Artificial Intelligence
21
+ Classifier: Topic :: Software Development :: Libraries
22
+ Requires-Python: >=3.10
23
+ Requires-Dist: click>=8.0
24
+ Requires-Dist: numpy>=1.24
25
+ Requires-Dist: pydantic>=2.0
26
+ Requires-Dist: pyyaml>=6.0
27
+ Requires-Dist: rich>=13.0
28
+ Requires-Dist: sentence-transformers>=2.2.0
29
+ Provides-Extra: all
30
+ Requires-Dist: chromadb>=0.4.0; extra == 'all'
31
+ Requires-Dist: faiss-cpu>=1.7; extra == 'all'
32
+ Requires-Dist: fastmcp>=0.1; extra == 'all'
33
+ Requires-Dist: mss>=9.0; extra == 'all'
34
+ Requires-Dist: opencv-python>=4.8; extra == 'all'
35
+ Requires-Dist: pillow>=10.0; extra == 'all'
36
+ Requires-Dist: pinecone-client>=3.0; extra == 'all'
37
+ Requires-Dist: pytesseract>=0.3.10; extra == 'all'
38
+ Requires-Dist: qdrant-client>=1.7; extra == 'all'
39
+ Requires-Dist: requests>=2.31.0; extra == 'all'
40
+ Requires-Dist: supabase>=2.0; extra == 'all'
41
+ Requires-Dist: vecs>=0.4; extra == 'all'
42
+ Requires-Dist: youtube-transcript-api>=1.0.0; extra == 'all'
43
+ Requires-Dist: yt-dlp>=2024.0.0; extra == 'all'
44
+ Provides-Extra: chroma
45
+ Requires-Dist: chromadb>=0.4.0; extra == 'chroma'
46
+ Provides-Extra: dev
47
+ Requires-Dist: pytest-asyncio>=0.21; extra == 'dev'
48
+ Requires-Dist: pytest>=7.0; extra == 'dev'
49
+ Provides-Extra: faiss
50
+ Requires-Dist: faiss-cpu>=1.7; extra == 'faiss'
51
+ Provides-Extra: mcp
52
+ Requires-Dist: fastmcp>=0.1; extra == 'mcp'
53
+ Provides-Extra: pinecone
54
+ Requires-Dist: pinecone-client>=3.0; extra == 'pinecone'
55
+ Provides-Extra: qdrant
56
+ Requires-Dist: qdrant-client>=1.7; extra == 'qdrant'
57
+ Provides-Extra: supabase
58
+ Requires-Dist: supabase>=2.0; extra == 'supabase'
59
+ Requires-Dist: vecs>=0.4; extra == 'supabase'
60
+ Provides-Extra: video
61
+ Requires-Dist: mss>=9.0; extra == 'video'
62
+ Requires-Dist: opencv-python>=4.8; extra == 'video'
63
+ Requires-Dist: pillow>=10.0; extra == 'video'
64
+ Requires-Dist: pytesseract>=0.3.10; extra == 'video'
65
+ Provides-Extra: whisper
66
+ Requires-Dist: openai-whisper>=20230314; extra == 'whisper'
67
+ Provides-Extra: youtube
68
+ Requires-Dist: requests>=2.31.0; extra == 'youtube'
69
+ Requires-Dist: youtube-transcript-api>=1.0.0; extra == 'youtube'
70
+ Requires-Dist: yt-dlp>=2024.0.0; extra == 'youtube'
71
+ Description-Content-Type: text/markdown
72
+
73
+ <p align="center">
74
+ <img src="docs/assets/logo.png" alt="SkillMind" width="200"/>
75
+ </p>
76
+
77
+ # SkillMind
78
+
79
+ [![Version](https://img.shields.io/badge/version-0.1.0-blue.svg)](https://github.com/AntonioBlago/skillmind/releases)
80
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
81
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
82
+ [![MCP Integration](https://img.shields.io/badge/MCP-Integrated-blue.svg)](https://modelcontextprotocol.io)
83
+ [![Website](https://img.shields.io/badge/Website-skill--mind.com-orange.svg)](https://skill-mind.com/)
84
+
85
+ **Active Skill Listener & Trainer** — the structured memory layer for AI coding assistants.
86
+
87
+ Replace flat markdown memory files with a vector-database-backed system that **listens**, **learns**, and **surfaces** only relevant context per conversation.
88
+
89
+ > 🌐 **[Visit skill-mind.com](https://skill-mind.com/)** — Documentation, setup guides, and live demos.
90
+
91
+ ---
92
+
93
+ ## The Problem
94
+
95
+ | Current state | SkillMind |
96
+ |---|---|
97
+ | 15+ flat markdown memory files | One vector DB with semantic search |
98
+ | Everything loaded into context | Only relevant memories surfaced |
99
+ | Manual save/forget | Auto-listen, auto-classify, auto-expire |
100
+ | No deduplication | Automatic dedup + consolidation |
101
+ | No protection | Sanitizer redacts API keys, PII before storing |
102
+
103
+ ## Quick Start (3 Commands)
104
+
105
+ ```bash
106
+ # 1. Install
107
+ pip install skillmind[pinecone]
108
+
109
+ # 2. Initialize
110
+ skillmind init --backend pinecone
111
+
112
+ # 3. Import your existing Claude Code memories
113
+ skillmind import ~/.claude/projects/*/memory/
114
+ ```
115
+
116
+ **That's it.** Your memories are now in a vector DB with semantic search.
117
+
118
+ ## How It Works
119
+
120
+ ```
121
+ ┌────────────┐ ┌────────────┐ ┌─────────────────┐
122
+ │ LISTENER │───▶│ TRAINER │───▶│ VECTOR STORE │
123
+ │ │ │ │ │ │
124
+ │ • Git hooks │ │ • Classify │ │ • Chroma (local) │
125
+ │ • File watch│ │ • Sanitize │ │ • Pinecone │
126
+ │ • Convos │ │ • Dedup │ │ • Supabase │
127
+ │ • YouTube │ │ • Merge │ │ • Qdrant │
128
+ │ • Screen │ │ • Expire │ │ • FAISS │
129
+ └────────────┘ └────────────┘ └─────────────────┘
130
+
131
+
132
+ ┌─────────────────┐
133
+ │ CLAUDE CODE │
134
+ │ (MCP Server) │
135
+ │ 14 tools │
136
+ └─────────────────┘
137
+ ```
138
+
139
+ ## 5 Vector Store Backends
140
+
141
+ | Backend | Best for | Requires |
142
+ |---------|----------|----------|
143
+ | **ChromaDB** | Solo dev, local, default | `pip install skillmind[chroma]` |
144
+ | **Pinecone** | Multi-device cloud sync | API key |
145
+ | **Supabase** | SQL + vectors, team sharing | Supabase project |
146
+ | **Qdrant** | Self-hosted or cloud, great filtering | Qdrant server |
147
+ | **FAISS** | Offline, air-gapped, fastest | `pip install skillmind[faiss]` |
148
+
149
+ All backends implement the same interface — switch anytime with zero data loss.
150
+
151
+ ## 14 MCP Tools for Claude Code
152
+
153
+ Once installed, Claude Code gets these tools:
154
+
155
+ | Tool | What it does |
156
+ |---|---|
157
+ | `remember` | Store memory (auto-classified, sanitized, deduped) |
158
+ | `recall` | Semantic search across all memories |
159
+ | `forget` | Delete a memory |
160
+ | `update_memory` | Edit existing memory |
161
+ | `context` | Generate focused context for current file/topic |
162
+ | `consolidate` | Merge duplicates, expire stale, cleanup |
163
+ | `memory_stats` | Counts by type, backend info |
164
+ | `list_memories` | Filter by type/topic |
165
+ | `import_markdown_memories` | Bulk import from Claude Code markdown files |
166
+ | `learn_youtube` | Extract knowledge from YouTube video |
167
+ | `learn_youtube_channel` | Learn from channel's latest videos |
168
+ | `learn_video` | Learn from local video/screen recording |
169
+ | `record_screen` | Record screen to MP4 |
170
+ | `screenshot` | Capture screenshot |
171
+
172
+ ### MCP Setup (Claude Code settings.json)
173
+
174
+ ```json
175
+ {
176
+ "mcpServers": {
177
+ "skillmind": {
178
+ "command": "python",
179
+ "args": ["-m", "skillmind.mcp.server"],
180
+ "env": {
181
+ "PINECONE_API_KEY": "your-key",
182
+ "SKILLMIND_BACKEND": "pinecone"
183
+ }
184
+ }
185
+ }
186
+ }
187
+ ```
188
+
189
+ ## Memory Types
190
+
191
+ | Type | What | Auto-expires |
192
+ |---|---|---|
193
+ | **user** | Role, preferences, expertise | No |
194
+ | **feedback** | Corrections, confirmed approaches | No |
195
+ | **project** | Deadlines, client context, status | 90 days |
196
+ | **reference** | External URLs, dashboards, wikis | No |
197
+ | **skill** | Patterns, workflows, how-tos | No |
198
+
199
+ ## Learn From Video
200
+
201
+ ```bash
202
+ # YouTube
203
+ skillmind learn-youtube "https://youtube.com/watch?v=..."
204
+
205
+ # YouTube channel (latest 5 videos)
206
+ skillmind learn-youtube-channel "UCxxxxx" --limit 5
207
+
208
+ # Local video file
209
+ skillmind learn-video recording.mp4
210
+
211
+ # Screen recording
212
+ skillmind record-screen --duration 60 --fps 15
213
+ ```
214
+
215
+ ## Built-in Sanitizer
216
+
217
+ API keys, emails, phone numbers, IBANs, and PII are **automatically redacted** before storing:
218
+
219
+ ```
220
+ Input: "My Pinecone key is pcsk_2mrRyA_9BSbdn5i..."
221
+ Stored: "My Pinecone key is [REDACTED:PINECONE_KEY]"
222
+ ```
223
+
224
+ Configurable allowlists, custom patterns, and name anonymization.
225
+
226
+ ## CLI Reference
227
+
228
+ ```bash
229
+ skillmind init --backend chroma # Initialize with backend
230
+ skillmind remember "content" # Store a memory
231
+ skillmind recall "query" # Semantic search
232
+ skillmind list # List all memories
233
+ skillmind list --type feedback # Filter by type
234
+ skillmind forget <id> # Delete
235
+ skillmind import # Import Claude Code memories
236
+ skillmind consolidate # Cleanup & deduplicate
237
+ skillmind context # Generate context for current dir
238
+ skillmind stats # Show statistics
239
+ skillmind serve # Start MCP server
240
+ ```
241
+
242
+ ## Installation
243
+
244
+ ```bash
245
+ # Core + one backend
246
+ pip install skillmind[chroma] # Local (default)
247
+ pip install skillmind[pinecone] # Cloud sync
248
+ pip install skillmind[supabase] # SQL + vectors
249
+ pip install skillmind[qdrant] # Self-hosted
250
+ pip install skillmind[faiss] # Offline
251
+
252
+ # Add-ons
253
+ pip install skillmind[youtube] # YouTube learning
254
+ pip install skillmind[video] # Screen recording + OCR
255
+ pip install skillmind[mcp] # MCP server for Claude Code
256
+
257
+ # Everything
258
+ pip install skillmind[all]
259
+ ```
260
+
261
+ ## Architecture
262
+
263
+ ```
264
+ src/skillmind/
265
+ ├── models.py # Memory, QueryFilter, QueryResult (Pydantic)
266
+ ├── config.py # SkillMindConfig (YAML-based)
267
+ ├── embeddings.py # EmbeddingEngine (sentence-transformers | OpenAI)
268
+ ├── trainer.py # Auto-classify, dedup, merge, consolidate
269
+ ├── sanitizer.py # Redact API keys, PII before storage
270
+ ├── listener.py # GitListener, FileListener, ConversationListener
271
+ ├── context.py # ContextGenerator — dynamic context injection
272
+ ├── migration.py # Import existing Claude Code markdown memories
273
+ ├── store/
274
+ │ ├── base.py # Abstract MemoryStore interface
275
+ │ ├── chroma_store.py # ChromaDB backend
276
+ │ ├── pinecone_store.py # Pinecone backend
277
+ │ ├── supabase_store.py # Supabase/pgvector backend
278
+ │ ├── qdrant_store.py # Qdrant backend
279
+ │ └── faiss_store.py # FAISS + JSON backend
280
+ ├── video/
281
+ │ ├── youtube_learner.py # YouTube transcript extraction
282
+ │ ├── video_learner.py # Local video learning
283
+ │ └── screen_recorder.py # Screen capture
284
+ ├── mcp/
285
+ │ └── server.py # FastMCP server (14 tools)
286
+ └── cli/
287
+ └── main.py # CLI (click-based)
288
+ ```
289
+
290
+ ## Contributing
291
+
292
+ PRs welcome! See [CONTRIBUTING.md](CONTRIBUTING.md).
293
+
294
+ ## License
295
+
296
+ MIT — see [LICENSE](LICENSE).
297
+
298
+ ---
299
+
300
+ Built by [Antonio Blago](https://antonioblago.de) | [skill-mind.com](https://skill-mind.com)
@@ -0,0 +1,228 @@
1
+ <p align="center">
2
+ <img src="docs/assets/logo.png" alt="SkillMind" width="200"/>
3
+ </p>
4
+
5
+ # SkillMind
6
+
7
+ [![Version](https://img.shields.io/badge/version-0.1.0-blue.svg)](https://github.com/AntonioBlago/skillmind/releases)
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
9
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
10
+ [![MCP Integration](https://img.shields.io/badge/MCP-Integrated-blue.svg)](https://modelcontextprotocol.io)
11
+ [![Website](https://img.shields.io/badge/Website-skill--mind.com-orange.svg)](https://skill-mind.com/)
12
+
13
+ **Active Skill Listener & Trainer** — the structured memory layer for AI coding assistants.
14
+
15
+ Replace flat markdown memory files with a vector-database-backed system that **listens**, **learns**, and **surfaces** only relevant context per conversation.
16
+
17
+ > 🌐 **[Visit skill-mind.com](https://skill-mind.com/)** — Documentation, setup guides, and live demos.
18
+
19
+ ---
20
+
21
+ ## The Problem
22
+
23
+ | Current state | SkillMind |
24
+ |---|---|
25
+ | 15+ flat markdown memory files | One vector DB with semantic search |
26
+ | Everything loaded into context | Only relevant memories surfaced |
27
+ | Manual save/forget | Auto-listen, auto-classify, auto-expire |
28
+ | No deduplication | Automatic dedup + consolidation |
29
+ | No protection | Sanitizer redacts API keys, PII before storing |
30
+
31
+ ## Quick Start (3 Commands)
32
+
33
+ ```bash
34
+ # 1. Install
35
+ pip install skillmind[pinecone]
36
+
37
+ # 2. Initialize
38
+ skillmind init --backend pinecone
39
+
40
+ # 3. Import your existing Claude Code memories
41
+ skillmind import ~/.claude/projects/*/memory/
42
+ ```
43
+
44
+ **That's it.** Your memories are now in a vector DB with semantic search.
45
+
46
+ ## How It Works
47
+
48
+ ```
49
+ ┌────────────┐ ┌────────────┐ ┌─────────────────┐
50
+ │ LISTENER │───▶│ TRAINER │───▶│ VECTOR STORE │
51
+ │ │ │ │ │ │
52
+ │ • Git hooks │ │ • Classify │ │ • Chroma (local) │
53
+ │ • File watch│ │ • Sanitize │ │ • Pinecone │
54
+ │ • Convos │ │ • Dedup │ │ • Supabase │
55
+ │ • YouTube │ │ • Merge │ │ • Qdrant │
56
+ │ • Screen │ │ • Expire │ │ • FAISS │
57
+ └────────────┘ └────────────┘ └─────────────────┘
58
+
59
+
60
+ ┌─────────────────┐
61
+ │ CLAUDE CODE │
62
+ │ (MCP Server) │
63
+ │ 14 tools │
64
+ └─────────────────┘
65
+ ```
66
+
67
+ ## 5 Vector Store Backends
68
+
69
+ | Backend | Best for | Requires |
70
+ |---------|----------|----------|
71
+ | **ChromaDB** | Solo dev, local, default | `pip install skillmind[chroma]` |
72
+ | **Pinecone** | Multi-device cloud sync | API key |
73
+ | **Supabase** | SQL + vectors, team sharing | Supabase project |
74
+ | **Qdrant** | Self-hosted or cloud, great filtering | Qdrant server |
75
+ | **FAISS** | Offline, air-gapped, fastest | `pip install skillmind[faiss]` |
76
+
77
+ All backends implement the same interface — switch anytime with zero data loss.
78
+
79
+ ## 14 MCP Tools for Claude Code
80
+
81
+ Once installed, Claude Code gets these tools:
82
+
83
+ | Tool | What it does |
84
+ |---|---|
85
+ | `remember` | Store memory (auto-classified, sanitized, deduped) |
86
+ | `recall` | Semantic search across all memories |
87
+ | `forget` | Delete a memory |
88
+ | `update_memory` | Edit existing memory |
89
+ | `context` | Generate focused context for current file/topic |
90
+ | `consolidate` | Merge duplicates, expire stale, cleanup |
91
+ | `memory_stats` | Counts by type, backend info |
92
+ | `list_memories` | Filter by type/topic |
93
+ | `import_markdown_memories` | Bulk import from Claude Code markdown files |
94
+ | `learn_youtube` | Extract knowledge from YouTube video |
95
+ | `learn_youtube_channel` | Learn from channel's latest videos |
96
+ | `learn_video` | Learn from local video/screen recording |
97
+ | `record_screen` | Record screen to MP4 |
98
+ | `screenshot` | Capture screenshot |
99
+
100
+ ### MCP Setup (Claude Code settings.json)
101
+
102
+ ```json
103
+ {
104
+ "mcpServers": {
105
+ "skillmind": {
106
+ "command": "python",
107
+ "args": ["-m", "skillmind.mcp.server"],
108
+ "env": {
109
+ "PINECONE_API_KEY": "your-key",
110
+ "SKILLMIND_BACKEND": "pinecone"
111
+ }
112
+ }
113
+ }
114
+ }
115
+ ```
116
+
117
+ ## Memory Types
118
+
119
+ | Type | What | Auto-expires |
120
+ |---|---|---|
121
+ | **user** | Role, preferences, expertise | No |
122
+ | **feedback** | Corrections, confirmed approaches | No |
123
+ | **project** | Deadlines, client context, status | 90 days |
124
+ | **reference** | External URLs, dashboards, wikis | No |
125
+ | **skill** | Patterns, workflows, how-tos | No |
126
+
127
+ ## Learn From Video
128
+
129
+ ```bash
130
+ # YouTube
131
+ skillmind learn-youtube "https://youtube.com/watch?v=..."
132
+
133
+ # YouTube channel (latest 5 videos)
134
+ skillmind learn-youtube-channel "UCxxxxx" --limit 5
135
+
136
+ # Local video file
137
+ skillmind learn-video recording.mp4
138
+
139
+ # Screen recording
140
+ skillmind record-screen --duration 60 --fps 15
141
+ ```
142
+
143
+ ## Built-in Sanitizer
144
+
145
+ API keys, emails, phone numbers, IBANs, and PII are **automatically redacted** before storing:
146
+
147
+ ```
148
+ Input: "My Pinecone key is pcsk_2mrRyA_9BSbdn5i..."
149
+ Stored: "My Pinecone key is [REDACTED:PINECONE_KEY]"
150
+ ```
151
+
152
+ Configurable allowlists, custom patterns, and name anonymization.
153
+
154
+ ## CLI Reference
155
+
156
+ ```bash
157
+ skillmind init --backend chroma # Initialize with backend
158
+ skillmind remember "content" # Store a memory
159
+ skillmind recall "query" # Semantic search
160
+ skillmind list # List all memories
161
+ skillmind list --type feedback # Filter by type
162
+ skillmind forget <id> # Delete
163
+ skillmind import # Import Claude Code memories
164
+ skillmind consolidate # Cleanup & deduplicate
165
+ skillmind context # Generate context for current dir
166
+ skillmind stats # Show statistics
167
+ skillmind serve # Start MCP server
168
+ ```
169
+
170
+ ## Installation
171
+
172
+ ```bash
173
+ # Core + one backend
174
+ pip install skillmind[chroma] # Local (default)
175
+ pip install skillmind[pinecone] # Cloud sync
176
+ pip install skillmind[supabase] # SQL + vectors
177
+ pip install skillmind[qdrant] # Self-hosted
178
+ pip install skillmind[faiss] # Offline
179
+
180
+ # Add-ons
181
+ pip install skillmind[youtube] # YouTube learning
182
+ pip install skillmind[video] # Screen recording + OCR
183
+ pip install skillmind[mcp] # MCP server for Claude Code
184
+
185
+ # Everything
186
+ pip install skillmind[all]
187
+ ```
188
+
189
+ ## Architecture
190
+
191
+ ```
192
+ src/skillmind/
193
+ ├── models.py # Memory, QueryFilter, QueryResult (Pydantic)
194
+ ├── config.py # SkillMindConfig (YAML-based)
195
+ ├── embeddings.py # EmbeddingEngine (sentence-transformers | OpenAI)
196
+ ├── trainer.py # Auto-classify, dedup, merge, consolidate
197
+ ├── sanitizer.py # Redact API keys, PII before storage
198
+ ├── listener.py # GitListener, FileListener, ConversationListener
199
+ ├── context.py # ContextGenerator — dynamic context injection
200
+ ├── migration.py # Import existing Claude Code markdown memories
201
+ ├── store/
202
+ │ ├── base.py # Abstract MemoryStore interface
203
+ │ ├── chroma_store.py # ChromaDB backend
204
+ │ ├── pinecone_store.py # Pinecone backend
205
+ │ ├── supabase_store.py # Supabase/pgvector backend
206
+ │ ├── qdrant_store.py # Qdrant backend
207
+ │ └── faiss_store.py # FAISS + JSON backend
208
+ ├── video/
209
+ │ ├── youtube_learner.py # YouTube transcript extraction
210
+ │ ├── video_learner.py # Local video learning
211
+ │ └── screen_recorder.py # Screen capture
212
+ ├── mcp/
213
+ │ └── server.py # FastMCP server (14 tools)
214
+ └── cli/
215
+ └── main.py # CLI (click-based)
216
+ ```
217
+
218
+ ## Contributing
219
+
220
+ PRs welcome! See [CONTRIBUTING.md](CONTRIBUTING.md).
221
+
222
+ ## License
223
+
224
+ MIT — see [LICENSE](LICENSE).
225
+
226
+ ---
227
+
228
+ Built by [Antonio Blago](https://antonioblago.de) | [skill-mind.com](https://skill-mind.com)