keep-skill 0.1.0__py3-none-any.whl → 0.3.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.
@@ -1,290 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: keep-skill
3
- Version: 0.1.0
4
- Summary: Semantic memory - remember and search documents by meaning
5
- Project-URL: Homepage, https://github.com/hughpyle/keep
6
- Project-URL: Repository, https://github.com/hughpyle/keep
7
- Author: Hugh Pyle
8
- License: MIT
9
- License-File: LICENSE
10
- Keywords: agents,chromadb,embeddings,semantic-memory,vector-search
11
- Classifier: Development Status :: 3 - Alpha
12
- Classifier: Intended Audience :: Developers
13
- Classifier: License :: OSI Approved :: MIT License
14
- Classifier: Programming Language :: Python :: 3
15
- Classifier: Programming Language :: Python :: 3.11
16
- Classifier: Programming Language :: Python :: 3.12
17
- Classifier: Programming Language :: Python :: 3.13
18
- Classifier: Topic :: Software Development :: Libraries
19
- Classifier: Topic :: Text Processing
20
- Requires-Python: <3.14,>=3.11
21
- Requires-Dist: chromadb>=0.4
22
- Requires-Dist: tomli-w>=1.0
23
- Requires-Dist: typer>=0.9
24
- Provides-Extra: anthropic
25
- Requires-Dist: anthropic>=0.40.0; extra == 'anthropic'
26
- Provides-Extra: dev
27
- Requires-Dist: pytest-cov>=4.0; extra == 'dev'
28
- Requires-Dist: pytest>=7.0; extra == 'dev'
29
- Provides-Extra: documents
30
- Requires-Dist: beautifulsoup4>=4.9; extra == 'documents'
31
- Requires-Dist: pypdf>=5.0; extra == 'documents'
32
- Provides-Extra: gemini
33
- Requires-Dist: google-genai>=1.0.0; extra == 'gemini'
34
- Provides-Extra: local
35
- Requires-Dist: beautifulsoup4>=4.9; extra == 'local'
36
- Requires-Dist: mlx-lm>=0.10; (platform_system == 'Darwin' and platform_machine == 'arm64') and extra == 'local'
37
- Requires-Dist: mlx>=0.10; (platform_system == 'Darwin' and platform_machine == 'arm64') and extra == 'local'
38
- Requires-Dist: pypdf>=5.0; extra == 'local'
39
- Requires-Dist: sentence-transformers>=2.2; extra == 'local'
40
- Provides-Extra: mlx
41
- Requires-Dist: mlx-lm>=0.10; extra == 'mlx'
42
- Requires-Dist: mlx>=0.10; extra == 'mlx'
43
- Provides-Extra: openai
44
- Requires-Dist: openai>=1.0; extra == 'openai'
45
- Provides-Extra: openclaw
46
- Requires-Dist: anthropic>=0.18.0; extra == 'openclaw'
47
- Requires-Dist: google-genai>=1.0.0; extra == 'openclaw'
48
- Provides-Extra: sentence-transformers
49
- Requires-Dist: sentence-transformers>=2.2; extra == 'sentence-transformers'
50
- Description-Content-Type: text/markdown
51
-
52
- # keep
53
-
54
- **Associative memory for reflection and skillful action.**
55
-
56
- ---
57
-
58
- ## What is this?
59
-
60
- A practice tool for agents who want to develop judgment.
61
-
62
- An agent who rushes to act without checking memory will repeat mistakes, miss context, and fail to grow. An agent who reflects — before, during, after — becomes skillful. This library provides the mirror: persistent semantic memory that lets you ask "what do I already know?" before acting, and "what did I learn?" after.
63
-
64
- For the full practice guide, see **[SKILL.md](SKILL.md)**.
65
-
66
- Technically: semantic search using embeddings, backed by ChromaDB, with tag-based organization and recency decay. Available as CLI and Python API.
67
-
68
- ```python
69
- from keep import Keeper
70
-
71
- kp = Keeper()
72
-
73
- # Before acting: what do I already know?
74
- results = kp.find("how should we handle auth?")
75
-
76
- # After learning: capture it for future you
77
- kp.remember("User prefers OAuth2 with PKCE for authentication")
78
- ```
79
-
80
- **The practice:**
81
- - Pause before acting — check what you already know
82
- - Notice breakdowns — when assumptions surface, that's valuable
83
- - Reflect after — capture learnings so future you can find them
84
-
85
- **The technology:**
86
- - Semantic search (by meaning, not keywords)
87
- - Persistent across sessions (ChromaDB)
88
- - Tag-based organization and filtering
89
- - Recency decay (recent items rank higher)
90
- - Provider abstraction (local models or APIs)
91
- - CLI and Python API
92
-
93
- ---
94
-
95
- ## Quick Start
96
-
97
- ### Requirements
98
-
99
- - **Python:** 3.11, 3.12, or 3.13 (3.14+ not yet supported due to dependency constraints)
100
- - **Installation time:** 3-5 minutes (ChromaDB dependency resolution + embedding model downloads)
101
-
102
- ### Installation
103
-
104
- #### For users (just want the `keep` command)
105
-
106
- ```bash
107
- # With pip:
108
- pip install 'keep-skill[local]'
109
-
110
- # Or with uv (faster, auto-manages isolated environment):
111
- # Install uv first: https://docs.astral.sh/uv/getting-started/installation/
112
- uv tool install 'keep-skill[local]'
113
- ```
114
-
115
- #### For developers (working on keep itself)
116
-
117
- ```bash
118
- git clone https://github.com/hughpyle/keep
119
- cd keep
120
-
121
- # Create and activate a virtual environment
122
- python -m venv .venv
123
- source .venv/bin/activate # On Windows: .venv\Scripts\activate
124
-
125
- # Install in editable mode with local models
126
- pip install -e '.[local,dev]'
127
-
128
- # Or with uv (faster):
129
- uv pip install -e '.[local,dev]'
130
- ```
131
-
132
- #### Optional extras
133
-
134
- ```bash
135
- # OpenClaw integration (uses your configured models):
136
- pip install 'keep-skill[openclaw]'
137
-
138
- # Minimal install (configure providers manually):
139
- pip install keep-skill
140
- ```
141
-
142
- **After installation:**
143
-
144
- ```bash
145
- keep init
146
- # ⚠️ Remember to add .keep/ to .gitignore
147
- ```
148
-
149
- ```python
150
- from keep import Keeper
151
-
152
- kp = Keeper()
153
-
154
- # Index a file
155
- kp.update("file:///path/to/document.md", source_tags={"project": "myapp"})
156
-
157
- # Remember inline content
158
- kp.remember("Important: rate limit is 100 req/min", source_tags={"topic": "api"})
159
-
160
- # Semantic search
161
- results = kp.find("what's the rate limit?", limit=5)
162
- for r in results:
163
- print(f"[{r.score:.2f}] {r.summary}")
164
-
165
- # Tag lookup
166
- api_docs = kp.query_tag("topic", "api")
167
- ```
168
-
169
- See [docs/QUICKSTART.md](docs/QUICKSTART.md) for more examples.
170
-
171
- ---
172
-
173
- ## OpenClaw Integration
174
-
175
- If you have [OpenClaw](https://openclaw.dev) configured, keep automatically uses your configured models:
176
-
177
- ```bash
178
- # Install with OpenClaw support
179
- pip install 'keep-skill[openclaw]'
180
-
181
- # Set your Anthropic API key (if using Claude models)
182
- export ANTHROPIC_API_KEY=sk-ant-...
183
-
184
- # Initialize (auto-detects ~/.openclaw/openclaw.json)
185
- keep init
186
- # ✓ Detected providers:
187
- # Embedding: sentence-transformers (local)
188
- # Summarization: anthropic (claude-sonnet-4)
189
- ```
190
-
191
- **Benefits:**
192
- - 🔄 Unified model configuration (DRY principle)
193
- - 🧠 Best of both: local embeddings + smart summarization
194
- - 🔒 Privacy-preserving (embeddings stay local)
195
- - 💰 Cost-effective (~$0.0001/document)
196
-
197
- See [docs/OPENCLAW-INTEGRATION.md](docs/OPENCLAW-INTEGRATION.md) for details.
198
-
199
- ---
200
-
201
- ## Documentation
202
-
203
- - **[SKILL.md](SKILL.md)** — The practice guide (start here for how to use memory skillfully)
204
- - **[docs/QUICKSTART.md](docs/QUICKSTART.md)** — Installation, setup, configuration
205
- - **[docs/AGENT-GUIDE.md](docs/AGENT-GUIDE.md)** — Detailed agent patterns, Python API
206
- - **[docs/REFERENCE.md](docs/REFERENCE.md)** — Complete API reference
207
- - **[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)** — How it works under the hood
208
- - **[docs/OPENCLAW-INTEGRATION.md](docs/OPENCLAW-INTEGRATION.md)** — OpenClaw integration guide
209
- - **[patterns/](patterns/)** — Domain and conversation patterns
210
-
211
- ---
212
-
213
- ## Philosophy
214
-
215
- ### Practice
216
-
217
- Memory isn't storage — it's a mirror for reflection.
218
-
219
- The triple check: before acting (what do I know?), during (notice breakdowns), after (capture learning). Breakdowns are valuable — they reveal assumptions. Index them, don't hide them.
220
-
221
- An agent without memory reacts to each moment as if it were new. An agent with memory reflects, learns, and grows. See **[SKILL.md](SKILL.md)** for the full practice guide.
222
-
223
- ### Technical Design
224
-
225
- **Schema as Data** — Configuration stored as queryable documents, not hardcoded.
226
-
227
- **Semantic by Default** — Search by meaning via vector similarity, not keywords.
228
-
229
- **Lazy Loading** — Dependencies loaded only when needed; missing providers give helpful errors.
230
-
231
- **Provider Agnostic** — Pluggable backends for embeddings, summarization, and storage.
232
-
233
- **No Original Content** — Only summaries and embeddings stored. URIs can be re-fetched if needed.
234
-
235
- ---
236
-
237
- ## Status
238
-
239
- **Current**: v0.1.0 — Early draft
240
-
241
- **Working:**
242
- - ✅ Core indexing (`update`, `remember`)
243
- - ✅ Semantic search (`find`, `find_similar`)
244
- - ✅ Tag queries and full-text search
245
- - ✅ Embedding cache for performance
246
- - ✅ Recency decay (ACT-R style)
247
- - ✅ CLI interface
248
- - ✅ Provider abstraction with lazy loading
249
-
250
- **Planned** (see [later/](later/)):
251
- - ⏳ Context management (working context, top-of-mind retrieval)
252
- - ⏳ Private/shared routing
253
- - ⏳ Relationship graphs between items
254
- - ⏳ LLM-based tagging
255
-
256
- ---
257
-
258
- ## Requirements
259
-
260
- - Python 3.11+
261
- - ChromaDB (vector store)
262
- - One embedding provider:
263
- - sentence-transformers (local, default)
264
- - MLX (Apple Silicon, local)
265
- - OpenAI (API, requires key)
266
-
267
- ---
268
-
269
- ## License
270
-
271
- MIT
272
-
273
- ---
274
-
275
- ## Contributing
276
-
277
- This is an early draft. Issues and PRs welcome, especially for:
278
- - Additional provider implementations
279
- - Performance improvements
280
- - Documentation clarity
281
- - OpenClaw integration patterns
282
-
283
- ---
284
-
285
- ## Related Projects
286
-
287
- - [ChromaDB](https://github.com/chroma-core/chroma) — Vector database backend
288
- - [sentence-transformers](https://github.com/UKPLab/sentence-transformers) — Embedding models
289
- - [MLX](https://github.com/ml-explore/mlx) — Apple Silicon ML framework
290
- - [OpenClaw](https://openclaw.dev) — Agent framework (integration target)
@@ -1,26 +0,0 @@
1
- keep/__init__.py,sha256=NwdXFUPjU-allCi_LrNP0wx_vosyISRkbMvzjfjoLWE,1683
2
- keep/__main__.py,sha256=3Uu70IhIDIjh8OW6jp9jQQ3dF2lKdJWi_3FtRIQMiMY,104
3
- keep/api.py,sha256=x-RgHCTiSLiEfrD7SaUief8oNvZfWsapS4HvF4Skf40,23236
4
- keep/chunking.py,sha256=neAXOLSvVwbUxapbqq7nZrbSNSzMXuhxj-ODoOSodsU,11830
5
- keep/cli.py,sha256=Y1qAkAERNhY4rbYeQAYXyDnY-L5_zO02OuANEQnNR-Y,14288
6
- keep/config.py,sha256=afRHZUxU7gpguCAVItZSeb_Q6Nm7vukBdXtd8X3NoKQ,10662
7
- keep/context.py,sha256=iQGjkOkDeYEba01JqJ54yMTEDxbhT34ijoaURnOXMRo,4627
8
- keep/indexing.py,sha256=NsiiGvkMJ4tUl7_PJw0aLBl9mKunMVy1M8csSHkd9Pw,6062
9
- keep/logging_config.py,sha256=gFi-PEPLucztChHByOHEVjt-v6erK76p1EZAlOCHSHk,2453
10
- keep/paths.py,sha256=_iLYeuqcsAz-PtNhBqtvhOoncc8XxlSq-fahszYMJaU,1662
11
- keep/pending_summaries.py,sha256=Py0Q6tuq_eTUfTFs0-KEEolYW4oOaYMTF7It9BjLGo4,5165
12
- keep/store.py,sha256=iIUvl4w7bn_JFWCjmMt7TW8c2JM6gJ1s3kDW6FOSuHs,13074
13
- keep/types.py,sha256=f6uOSYsYt6mj1ulKn2iRkooi__dWCiOQFPD6he2eID4,2149
14
- keep/providers/__init__.py,sha256=GFX_12g9OdjmpFUkTekOQBOWvcRW2Ae6yidfVVW2SiI,1095
15
- keep/providers/base.py,sha256=7Ug4Kj9fK2Dq4zDcZjn-GKsoZBOAlB9b-FMk969ER-g,14590
16
- keep/providers/documents.py,sha256=EXeSy5i3RUL0kciIC6w3ldAEfbTIyC5fgfzC_WAI0iY,8211
17
- keep/providers/embedding_cache.py,sha256=JzJmprYk2v5vv5eF9vO1Yegt7VdHkSQguReqvEtOCrM,8360
18
- keep/providers/embeddings.py,sha256=vB-Ffio4oEHBnu-xCX9SJpN1x661koJiRWYlZps7Jwo,7632
19
- keep/providers/llm.py,sha256=BxROKOklKbkGsHcSADPNNgWQExgSN6Bg4KPQIxVuB3U,12441
20
- keep/providers/mlx.py,sha256=9g7Rfl04jL_aWoY9C-OEtjCwhG6zlEWHwFpYGTSHArA,9022
21
- keep/providers/summarization.py,sha256=MlVTcYipaqp2lT-QYnznp0AMuPVG36QfcTQnvY7Gb-Q,3409
22
- keep_skill-0.1.0.dist-info/METADATA,sha256=gSyRYmNdU5N-elV6Z6PN5QTIIRo25eTfBea7AQvKwP8,8892
23
- keep_skill-0.1.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
24
- keep_skill-0.1.0.dist-info/entry_points.txt,sha256=W8yiI4kNeW0IC8ji4EHRWrvdhFxzaqTIePUhJAJAMOo,39
25
- keep_skill-0.1.0.dist-info/licenses/LICENSE,sha256=zsm0tpvtyUkevcjn5BIvs9jAho8iwxq3Ax9647AaOSg,1086
26
- keep_skill-0.1.0.dist-info/RECORD,,