Hari Hara Prasad V

DHI is a terminal AI OS I've been building — inspired by Her, Batman's AI and Jarvis. It just hit its first public release: v0.0.1, MIT, macOS and Linux, with a site, CI, releases and all. Roughly 21k lines of Go with a Bubble Tea v2 interface.

The idea. The hard part of a personal AI isn't the model — it's trust. If an LLM is loose in your shell, you don't know what it will run. So DHI uses what I call the Cognitive Sandwich: AI only at the boundaries, deterministic code in the middle.

If confidence drops below 0.8, DHI stops pretending to understand you and falls back to a normal conversation. That single rule kills most of the "AI confidently did the wrong thing" moments.

What's actually in it. Nine pipelines — stocks, web_search, site_search, fetch_url, music, todo, system, schedule — plus a universal task system behind them. Every input becomes a task: one-shot tasks run immediately, scheduled tasks accept natural language ("schedule meeting at 3pm") and recur on cron-like rules, activated by a 60s looper. There's an RSS reader with OPML sources, conversation topics that persist across restarts, /model to switch models live, and slash commands for everything.

It learns from you. /good and /bad on any response feed a self-learning loop — pipeline weights, confidence calibration and keyword signals all adjust from feedback. The classifier literally gets better at your phrasing over time.

Everything local by default. Ollama with qwen2.5:1.5b handles classify, chat and synthesis on my Mac Mini M4 — no API key needed, nothing leaves the machine. Any OpenAI-compatible endpoint (Groq, OpenRouter, OpenAI, vLLM) is one YAML edit away if you want more brain.

The release. v0.0.1 ships darwin/linux × amd64/arm64 builds with checksums via GoReleaser, GitHub Actions CI (lint, vet, tests, govulncheck), and a docs site on GitHub Pages. The install script checks your Go toolchain before building.

It's live at github.com/hrhrprasath/dhi. If a terminal that actually does things rather than just chatting sounds useful, pull the release tarball and try it.