Projects / IRIS
ToolsIRIS
A laptop-native AI assistant that talks, remembers, and acts on macOS. LangGraph runs the agent. Ollama, or Anthropic and OpenAI, powers replies. SQLite stores facts and searchable conversation turns. Voice is optional: wake word, Whisper speech-to-text, and text-to-speech through macOS say, OpenAI, or ElevenLabs. Tools let IRIS open apps, search files, manage Reminders, and read system info, with folder allowlists and Automation permissions.
01 Walkthrough
One short demo and two screens from the product.
02 Stack layers
Interfaces
Agent core
Memory & voice
03 Architecture
CLI, HTTP, or voice enters the LangGraph agent. Memory loads facts and relevant turns from SQLite. The LLM may call macOS tools, then streams a reply. The voice path adds Whisper speech-to-text and text-to-speech on the way out.
- Local Ollama (or Anthropic/OpenAI) with LangGraph agent loop
- SQLite facts + turn archive with optional embeddings
- macOS tools + optional wake word, Whisper, and multi-engine TTS
04 Engineering challenges
Local-first privacy
The default stack is Ollama on the device, so no cloud is required. Cloud providers are opt-in through config and env overrides.
Durable, forgettable memory
Facts inject into every prompt; turns stay searchable. /forget and purge APIs remove facts and related archive text when you mean it.
Safe Mac actions
Tools are gated by settings and folder allowlists. Spotlight and AppleScript need explicit macOS Automation access.
Voice without bloating chat
Voice deps stay optional. Whisper, wake word, and TTS engines plug in without weighing down the core REPL and API.
05 Trade-offs & decisions
Offline and private by default; Anthropic/OpenAI remain one config switch away.
Zero ops on a laptop; optional nomic-embed-text upgrades recall without a network service.
Checkpoints, tool routing, and streaming stay structured, which matters once voice and tools are both in play.