Meridian might be the first local-first tool that actually
The architecture is surprisingly clean. A lightweight Electron wrapper spawns a Rust sidecar that handles the encrypted SQLite store — AES-256-GCM, keys never leave the machine. The capture loop runs every 30 seconds by default, pulling active window title, process name, and a screenshot region. That raw stream gets batched and fed to the LLM with a prompt that essentially says "turn this chronological noise into a coherent work log." The output lands as draft entries in a local web UI where you can edit, tag, and push to Jira, Linear, GitHub, or Azure DevOps.
What impressed me most during a week of daily driving it: the prompt engineering is good. It correctly distinguished between "debugging the auth middleware" and "reading Stack Overflow about JWT refresh tokens" — same files, totally different intent. It also caught context switches I'd forgotten: that 20-minute Slack thread about database indexing that turned into a real schema change. The daily standup draft it generated was 90% ready to paste.
A few rough edges worth knowing. The Electron UI feels a bit heavy on memory (~400MB idle). The OCR occasionally garbles terminal output with weird fonts — I ended up adding a regex filter in config.toml to skip windows matching ^alacritty.*$ and just rely on the shell history integration instead. Speaking of which, the shell history hook (zsh/fish/bash) is a separate binary you install via cargo install meridian-shell — not documented prominently enough. Without it, terminal work shows up as generic "terminal activity."
Setup took me about 15 minutes on Fedora 39:
# 1. Grab the AppImage from releases
wget https://github.com/meridian-dev/meridian/releases/download/v0.4.2/meridian-0.4.2.AppImage
chmod +x meridian-0.4.2.AppImage
# 2. Install Ollama if you don't have it
curl -fsSL https://ollama.com/install.sh | sh
ollama pull llama3.1:8b
# 3. Run once to generate config
./meridian-0.4.2.AppImage --init
# 4. Edit ~/.config/meridian/config.toml — point llm_endpoint at http://localhost:11434/v1
# and set model = "llama3.1:8b"
# 5. Optional but recommended: shell history integration
cargo install meridian-shell
meridian-shell install --shell zsh
# 6. Launch
./meridian-0.4.2.AppImageThe MIT license means you can fork and strip the Electron layer entirely if you want a pure CLI/TUI — someone's already started a meridian-tui experiment in the discussions tab.
For teams drowning in status-update theater, this hits a sweet spot: zero SaaS dependency, auditable local data, and output that actually resembles human communication. The fact that it's #1 on Product Hunt today suggests I'm not the only one tired of performing productivity for Jira.