Engine
Thin orchestrator over four CLI agents (Claude, Codex, Gemini, Ollama),
a local SearXNG instance for web context, and Jinja prompts stored as
SKILL.md files. No vendor SDK lock-in.
Every morning it produces ten grounded startup ideas, each tied to live web signal, filed into the vault with a spaced-repetition review schedule. This page indexes the three surfaces of the system: the engine that synthesizes ideas, the webapp that browses them, and the widget that surfaces fragments mid-flow.
Thin orchestrator over four CLI agents (Claude, Codex, Gemini, Ollama),
a local SearXNG instance for web context, and Jinja prompts stored as
SKILL.md files. No vendor SDK lock-in.
A Next.js dashboard for browsing the day's ideas. Kanban for triage, territory for clustering across domains, settings for purpose lenses and theme. Local-first.
A 7 KB drop-in fragment-capture widget. Lives at the edge of any page; collects half-formed thoughts and routes them back to the vault without interrupting flow.
skills/<name>/SKILL.md. Editing the prompt is a vault
change, not a code change.
朝霧 (asagiri, morning mist) — the moment before the day's shape is decided. Each idea is a possibility that has not yet condensed into commitment. Most will burn off by mid-morning. A few will stay.
| Layer | Tool | Why |
|---|---|---|
| Search | SearXNG (self-hosted) + optional Brave fallback | Free, no quota, no API key on hot path |
| Generation | claude-cli, codex-cli, gemini-cli, ollama | Tiered chain; falls through on failure |
| Prompt | Jinja-templated SKILL.md |
Edit prompt without touching engine code |
| Storage | Obsidian vault (Markdown + JSON) | Owns the data; spaced-repetition review built in |
| Browse | Next.js webapp + Sasagani widget | Dashboard for review, widget for capture |