dreamloop 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.
@@ -0,0 +1,252 @@
1
+ Metadata-Version: 2.4
2
+ Name: dreamloop
3
+ Version: 0.1.0
4
+ Summary: A local-first AI dream journal for people who want to notice patterns in their dreams.
5
+ Project-URL: Homepage, https://github.com/saime428/DreamLoop
6
+ Project-URL: Repository, https://github.com/saime428/DreamLoop
7
+ Project-URL: Issues, https://github.com/saime428/DreamLoop/issues
8
+ Author: DreamLoop contributors
9
+ License-Expression: MIT
10
+ License-File: LICENSE
11
+ Requires-Python: >=3.11
12
+ Requires-Dist: fastapi>=0.115
13
+ Requires-Dist: httpx>=0.27
14
+ Requires-Dist: jinja2>=3.1
15
+ Requires-Dist: openai>=1.50
16
+ Requires-Dist: python-multipart>=0.0.9
17
+ Requires-Dist: typer>=0.12
18
+ Requires-Dist: uvicorn>=0.30
19
+ Provides-Extra: ai
20
+ Requires-Dist: chromadb>=0.5; extra == 'ai'
21
+ Provides-Extra: dev
22
+ Requires-Dist: pytest-cov>=5.0; extra == 'dev'
23
+ Requires-Dist: pytest>=8.3; extra == 'dev'
24
+ Requires-Dist: twine>=5.1; extra == 'dev'
25
+ Description-Content-Type: text/markdown
26
+
27
+ # DreamLoop
28
+
29
+ [English](README.md) | [中文](README.zh-CN.md)
30
+
31
+ [![CI](https://github.com/saime428/DreamLoop/actions/workflows/ci.yml/badge.svg)](https://github.com/saime428/DreamLoop/actions/workflows/ci.yml)
32
+
33
+ ![DreamLoop dashboard screenshot](docs/assets/dashboard-screenshot.png)
34
+
35
+ **Your dreams have patterns. DreamLoop finds them locally.**
36
+
37
+ - Runs fully local. Your data never leaves your machine.
38
+ - Free with Ollama. Optional DeepSeek/OpenAI or custom OpenAI-compatible endpoints.
39
+ - CLI-first, forkable, and built for Obsidian-minded knowledge workers.
40
+ - Detailed dream analysis that favors emotions, real-life context, and multiple verifiable interpretations.
41
+
42
+ ```bash
43
+ git clone https://github.com/saime428/DreamLoop.git
44
+ cd DreamLoop
45
+ uv sync --extra dev
46
+ uv run dreamloop init
47
+ uv run dreamloop web
48
+ ```
49
+
50
+ DreamLoop is a local-first dream journal for people who want fast capture, private storage, and pattern discovery without renting their inner life to another subscription app. The web app follows a six-page loop: Dashboard -> Log -> Detail -> Patterns -> Gallery -> Settings.
51
+
52
+ ## Quick Start
53
+
54
+ ### Run locally without AI
55
+
56
+ ```bash
57
+ git clone https://github.com/saime428/DreamLoop.git
58
+ cd DreamLoop
59
+ uv sync --extra dev
60
+ uv run dreamloop init
61
+ uv run dreamloop add "I found a blue door under the sea."
62
+ uv run dreamloop web
63
+ ```
64
+
65
+ Expected result:
66
+
67
+ ```text
68
+ DreamLoop stores the entry in .dreamloop/dreamloop.sqlite3.
69
+ The local dashboard starts at http://127.0.0.1:8765.
70
+ AI analysis stays pending until you configure a provider.
71
+ ```
72
+
73
+ ### Enable local Ollama analysis
74
+
75
+ ```bash
76
+ ollama pull qwen3:8b
77
+ uv run dreamloop ai use ollama --model qwen3:8b
78
+ uv run dreamloop ai test
79
+ uv run dreamloop analyze --pending
80
+ ```
81
+
82
+ Expected result:
83
+
84
+ ```text
85
+ Ollama is used through http://localhost:11434/v1.
86
+ DreamLoop writes structured analysis back to local SQLite.
87
+ ```
88
+
89
+ ## Why This Project
90
+
91
+ Commercial dream apps usually make you pay for analysis and push personal text into a cloud workflow. DreamLoop takes the opposite path: the journal is local, the CLI is the primary interface, and AI is a swappable layer.
92
+
93
+ The default path is zero-cost Ollama. DeepSeek, OpenAI, and custom OpenAI-compatible endpoints are optional for people who want stronger hosted models or their own local gateway. The code is small enough to fork and direct enough to extend.
94
+
95
+ ## Demo Assets
96
+
97
+ - Real dashboard screenshot: `docs/assets/dashboard-screenshot.png`
98
+ - Social preview image: `docs/assets/social-preview.png`
99
+ - Reproducible recording guide: `docs/demo-recording.md`
100
+
101
+ The recording guide covers CLI capture, the Dashboard -> Log -> Detail flow, Patterns filtering, Gallery, and Settings without exposing secrets.
102
+
103
+ ## CLI Demo
104
+
105
+ ```text
106
+ $ uv run dreamloop add "A door opened under the sea."
107
+ saved locally -> .dreamloop/dreamloop.sqlite3
108
+ analysis -> pending
109
+
110
+ $ uv run dreamloop ai use ollama --model qwen3:8b
111
+ AI provider set to ollama (qwen3:8b).
112
+
113
+ $ uv run dreamloop analyze --pending
114
+ Analyzed pending dreams when a provider is ready.
115
+ ```
116
+
117
+ ## Privacy Promise
118
+
119
+ - Dream entries are stored in `.dreamloop/dreamloop.sqlite3`.
120
+ - `.dreamloop/` is automatically ignored by Git.
121
+ - Your dreams are never uploaded by default.
122
+ - Ollama keeps analysis local on your machine.
123
+ - DeepSeek/OpenAI only run after explicit configuration.
124
+ - API keys live in `.dreamloop/secrets.env`; secrets do not belong in commits.
125
+
126
+ ## AI Providers
127
+
128
+ DreamLoop supports provider configuration without changing the journal model:
129
+
130
+ ```bash
131
+ uv run dreamloop ai status
132
+ uv run dreamloop ai use ollama --model qwen3:8b
133
+ uv run dreamloop ai use deepseek --model deepseek-v4-flash
134
+ uv run dreamloop ai use custom --model local-model --base-url http://localhost:1234/v1
135
+ uv run dreamloop ai test
136
+ ```
137
+
138
+ Provider defaults:
139
+
140
+ - `ollama`: local, `http://localhost:11434/v1`, model `qwen3:8b`
141
+ - `deepseek`: cloud, `https://api.deepseek.com`, model `deepseek-v4-flash`
142
+ - `openai`: cloud, OpenAI-compatible JSON analysis
143
+ - `custom`: any OpenAI-compatible `/v1` endpoint, including local gateways
144
+ - `none`: capture-only local journal mode
145
+
146
+ ## Web App Loop
147
+
148
+ The FastAPI/Jinja dashboard is intentionally lightweight:
149
+
150
+ - Dashboard: README-ready overview with AI Insight, heatmap, stats, and recent dreams
151
+ - Log: draft-first dream capture, optional reflection prompts, and AI analysis before saving
152
+ - Detail: original dream text, detailed interpretation, reality-grounded questions, raw JSON, and an opt-in visual-memory entry point
153
+ - Patterns: clickable calendar, recurring symbols, theme trends, and filters back into Log
154
+ - Gallery: v0.1 local visual cards derived from saved dreams; image generation remains opt-in
155
+ - Settings: provider selection, launch notes, local data directory, and privacy status
156
+
157
+ DreamLoop is currently launched with `uv run dreamloop web` from a checkout or `dreamloop web` after package install. A native desktop app is a later packaging task; v0.1 stays lightweight so the local-first core remains easy to inspect and fork.
158
+
159
+ The same app exposes JSON endpoints:
160
+
161
+ - `POST /api/dreams`
162
+ - `GET /api/dreams`
163
+ - `GET /api/dreams/{id}`
164
+ - `GET /api/dreams/{id}/similar`
165
+ - `POST /api/analyze/pending`
166
+ - `POST /api/import/ics`
167
+ - `POST /api/weather/sync`
168
+ - `GET /api/insights/heatmap`
169
+ - `GET /api/insights/trends`
170
+
171
+ ## Local Data Model
172
+
173
+ ```text
174
+ .dreamloop/
175
+ dreamloop.sqlite3
176
+ config.json
177
+ secrets.env
178
+ chroma/
179
+ exports/
180
+ imports/
181
+ ```
182
+
183
+ SQLite stores dreams, analysis results, imported calendar events, and synced weather. ChromaDB remains optional for richer vector search.
184
+
185
+ ## PyPI Release Install
186
+
187
+ After the v0.1.0 package is published, install it with:
188
+
189
+ ```bash
190
+ pipx install dreamloop
191
+ dreamloop init
192
+ dreamloop add "I was flying above a dark ocean."
193
+ dreamloop web
194
+ ```
195
+
196
+ ## Obsidian Roadmap
197
+
198
+ - v0.2: Markdown export for dream entries and analysis summaries.
199
+ - v0.3: Obsidian vault sync with stable frontmatter.
200
+ - v0.4: Community plugin for capture, backlinks, and local dashboard launch.
201
+
202
+ ## Roadmap
203
+
204
+ ### v0.1
205
+
206
+ - Local CLI and six-page Web loop.
207
+ - SQLite storage.
208
+ - Ollama-first provider settings.
209
+ - Optional DeepSeek/OpenAI/custom structured analysis.
210
+ - Optional reflection prompts and longer reality-grounded interpretation reports.
211
+ - Heatmap, `.ics` import, weather sync.
212
+ - Similar dreams and basic trends.
213
+ - Real screenshot assets, CI, changelog, and public release packaging.
214
+
215
+ ### v0.2
216
+
217
+ - Markdown export.
218
+ - CLI GIF/cast release assets.
219
+ - ChromaDB-backed clustering and recurring-theme insights.
220
+ - Backup and restore flows.
221
+
222
+ ### v0.3+
223
+
224
+ - Obsidian vault sync.
225
+ - Obsidian community plugin.
226
+ - Generated dream illustrations stored locally as opt-in artifacts.
227
+
228
+ ## Contributing
229
+
230
+ DreamLoop is deliberately small and forkable. Good first contributions:
231
+
232
+ - improve local model prompts
233
+ - add `.ics` fixtures
234
+ - polish dashboard accessibility
235
+ - expand Markdown/Obsidian export
236
+ - add terminal demo assets
237
+
238
+ Run tests with:
239
+
240
+ ```bash
241
+ uv run --extra dev pytest
242
+ ```
243
+
244
+ Build the package with:
245
+
246
+ ```bash
247
+ uv build
248
+ ```
249
+
250
+ ## License
251
+
252
+ MIT
@@ -0,0 +1,13 @@
1
+ dreamloop/__init__.py,sha256=xA8D-iptXahzk3iEKNImJLRz94cp0NsDj7_8XcCqKs4,66
2
+ dreamloop/analysis.py,sha256=DHZpU-fu3xivsQRGLBq5FE-aZgKvuoVMwiRA0FDbexk,14750
3
+ dreamloop/cli.py,sha256=QwnXd5h16iOXu4sKbdVlf70kfgRk2WNgQVjb147x8bQ,4373
4
+ dreamloop/core.py,sha256=7dv4vR-eO5BDD6DmhvJ924t3k_GxG0vdQJtC9L5khO4,22779
5
+ dreamloop/web.py,sha256=I3ABcYtDy6bGCHeN8Y8_Nr0tnWi7WOB2VcTCmIQ-kbI,33182
6
+ dreamloop/static/style.css,sha256=RitxFaVn220bu3jDCAFK2vvmA0AQwzxPu-G2MVJlyUA,25921
7
+ dreamloop/templates/detail.html,sha256=ZSphlW_tHQAmrx1NAu0PmBop0WE3McB7eSviNJITAvM,7852
8
+ dreamloop/templates/index.html,sha256=DRuB_LDOfNqKeF26mUShFZswI5ttxOq2SoPa-DJP_jo,23947
9
+ dreamloop-0.1.0.dist-info/METADATA,sha256=cO10JPnMP6f1vRlUFASi9fTyMjjwvV0OkkP3rGbfotk,7844
10
+ dreamloop-0.1.0.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
11
+ dreamloop-0.1.0.dist-info/entry_points.txt,sha256=yItGYA7sE4_8n-JqxPHLb-2ssPcZwskVXyxXPEJKQ_M,49
12
+ dreamloop-0.1.0.dist-info/licenses/LICENSE,sha256=tdTTe8xBNq3UZ6CIPhjrjPKny6BLMHmelCTiaBZEk1Q,1079
13
+ dreamloop-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.30.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ dreamloop = dreamloop.cli:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 DreamLoop contributors
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.