Vision

Why I'm Building Iris AI

January 15, 2026

We're living through something special. The AI and LLM space is moving faster than anything I've seen in my career. Every week there's a new model, a new capability, a new way of thinking about what software can do. I wanted to be part of it, not just watching from the sidelines.

Iris started as a question: what would it look like if I built my own AI system from scratch? Not a wrapper, not a chatbot UI on top of an API, but a real system with agents that coordinate, memory that persists, and tools that actually do things in the real world.

The name comes from the Greek goddess of messages and communication. Fitting, since the core job is routing information and tasks between AI agents, tools, and channels.

Not a chatbot. One central place that manages my life.

That distinction matters. Chatbots answer questions. What I'm building is something that knows me, manages my life for me, assists me, and actively works to improve my life. One place. Managed by me. An AI that handles the things I shouldn't have to think about, so I can focus on the things that actually matter. Think less "ChatGPT but self-hosted" and more "a second brain that can actually do things."

The end state looks something like this: I wake up and Iris has already checked my calendar, noticed a conflict, drafted an email to reschedule, and is waiting for my approval before sending it. My fitness agent remembers I skipped legs on Wednesday and adjusts the rest of the week. The research agent has a briefing ready on a topic I asked about yesterday because it took longer than a quick answer. All of this happened proactively, overnight, without me asking.

That's the vision. We're not there yet. But every piece I'm building points in that direction.

Agents that actually coordinate

The core of Iris isn't one AI model - it's a team of specialist agents that delegate to each other. A parent orchestrator receives my request, decides which specialist (or specialists) should handle it, writes them a tailored prompt, and coordinates the results.

But the important part isn't that they exist - it's that they talk to each other. If the planner needs research to build a project timeline, it asks the researcher directly. I see it happening in a tool timeline (full transparency), but I don't have to manually orchestrate the handoffs. Agent-to-agent delegation is automatic. The system figures out who needs what and makes it happen.

The vision for agents is limitless. Right now I have the basics - a researcher, an engineer, a planner, a writer. But think bigger:

  • A trader that monitors markets, analyses trends, and flags opportunities or risks in my portfolio
  • A creative director that generates visual concepts, mood boards, brand assets, and iterates on design directions
  • A scholar that reads papers, summarises books, and builds a knowledge base on topics I'm studying
  • A product manager that breaks down ideas into epics, writes user stories, and tracks scope
  • A designer that generates UI mockups, suggests layout improvements, and creates assets
  • A marketing specialist that writes copy, plans campaigns, analyses engagement, and suggests content calendars
  • A recruiter that screens CVs, drafts outreach, and schedules interviews
  • A job finder that monitors listings matching my criteria, tailors cover letters, and alerts me when something interesting appears
  • A shopper that finds the best deals, compares options, and orders things on my behalf
  • A travel agent that plans trips, compares flights, books hotels, and builds itineraries
  • A health advisor that tracks nutrition, suggests meal plans, and adapts to my goals
  • A finance manager that categorises spending, projects budgets, and flags unusual transactions
  • A legal assistant that reviews contracts, highlights concerning clauses, and drafts basic agreements
  • A personal stylist that suggests outfits based on weather, occasion, and what's in my wardrobe
  • A home manager that tracks maintenance schedules, monitors smart devices, and coordinates with service providers
  • A coding agent that writes code, runs tests, opens pull requests, and deploys - autonomously for routine changes, with my approval for anything complex or risky. It reviews its own diffs, pings me on Telegram if something needs attention, merges when approved, deploys to staging, runs smoke tests, and promotes to production. The full pipeline from "fix this bug" to "it's live" without me touching a terminal

Every one of these is just an agent configuration: a name, a personality, a system prompt, a set of tools, and a model. The orchestration layer doesn't care whether it's delegating to a researcher or a personal shopper. Same infrastructure, infinite use cases.

And I want to be able to build these agents without writing code. A no-code agent builder where I set the name, personality, system prompt, available tools, model preference, voice settings, and handoff rules. Spin up a new specialist in minutes. That's a core feature, not a nice-to-have.

Memory that makes it personal

Without memory, it's just another chatbot. You tell it your name every session. It forgets your preferences. It doesn't know you had a terrible Monday. That's not a personal assistant - that's a stranger with good language skills.

Iris has three memory layers:

  • Session memory - the current conversation context. Temporary, gone when the chat ends.
  • Long-term personal memory - facts, preferences, patterns learned over time. "He prefers morning meetings." "He's working on a Laravel project called Iris." Persists across sessions.
  • Pinned facts - things I explicitly tell it to never forget. "I'm allergic to peanuts." "My wife's name is Sara." Permanent until I delete them.

The system auto-extracts facts from conversations and surfaces them: "I noticed you prefer dark mode in everything. Should I remember this?" I can review, edit, or delete any memory at any time. Full transparency, full control.

Each agent gets its own private memory scope (the fitness agent remembers workout history, the work agent remembers project context), but they all share access to my personal memory (who I am, what I like, what matters to me). Agents read shared memory but only write to their own scope. Clean separation.

Sensitive categories - health, financial, relationship data - get a configurable time-to-live. Default 90 days, adjustable to "keep forever" or "delete after 30 days." Pinned facts don't expire.

Voice that feels alive

I want to talk to Iris like a person. Not in a gimmicky way - in a way where voice is the fastest interface for certain things. "Remind me to call the dentist tomorrow at 10." "What's on my calendar today?" "Research about SOMETHING and give me the summary when I get back."

The target: under 2 seconds from when I stop speaking to when Iris starts responding. Streaming audio - it starts speaking before the full response is generated. Each agent has its own voice (configurable tone, speed, model). The orb on the UI reflects the state: idle pulse, listening rings, thinking spin, speaking rhythm.

Browser voice is something I'm experimenting with, but honestly it's not reliable. The real goal is native phone integration - a proper app where I hold a button or just speak, and Iris hears me natively through the OS. How exactly that works with Apple's ecosystem is something I'll figure out. Apple is opening up more Siri integration, there are live activities, there are shortcuts - there's a way, I just need to find it.

Beyond the phone, there's a Raspberry Pi with a wake word sitting on my desk or in the kitchen, always listening (opt-in), ready to go. "Hey Iris, what's the weather?" That's the Star Trek computer fantasy, and I'm building toward it.

Barge-in is non-negotiable. If I start talking while Iris is speaking, it immediately shuts up and listens. Critical for the "talking to a person" feel.

Proactive, not reactive

Most AI assistants sit there waiting for you to ask something. Iris should be the other way around. Scheduled tasks, missed reminder escalation (in-app notification, then Telegram push, then email), daily briefings, proactive suggestions based on patterns it's learned.

A unified inbox - one view for pending reminders, action results, agent updates, approvals needed. A personal command centre. Not buried in different tabs or channels.

Messaging integration is a first-class citizen, not an afterthought. Telegram is the first channel - same conversation threads on web and Telegram, voice notes transcribed and searchable, proactive notifications (opt-in per category). But it won't be the only one. WhatsApp, Discord, iMessage, email - whatever channel makes sense for the moment. The goal is that I can manage my life from wherever I am, whichever app I happen to have open, just as effectively as from the web UI.

Actions with accountability

This is where it gets interesting and also where it gets careful. Iris should be able to take real actions - send emails, create calendar events, trigger automations, control smart home devices. But with a trust model that builds over time.

Every action has a permission level: "always ask", "ask first time then remember", or "always allow." Default is "ask first time then remember." The first time Iris wants to send an email on my behalf, it asks. I say yes. From then on, it remembers that I trust it with email. I can revoke any permission at any time.

Every action is logged. What was done, when, why, which agent, what the result was. A full audit trail accessible from an activity view. If something goes wrong, I can trace exactly what happened. Non-negotiable for trust.

One user. No compromises.

This isn't a SaaS. There are no plans to offer signups, no pricing tiers, no feature gates. It's built for one user - me. The architecture supports multi-tenancy (user_id on everything, clean scoping), but that's for good engineering practice, not because I'm planning to sell seats. Maybe in four years, maybe never.

This means I can make opinionated decisions that a product company can't. No usage limits. No admin dashboard for managing other people. No invite codes. No "upgrade to pro" upsells. Just a system that does exactly what I need, exactly how I want it, growing as I learn more about what's possible.

The stack - for now

Right now: Laravel 12, React 19, Inertia v2, TypeScript, Tailwind v4. Chutes AI for inference. Ollama for local development. PostgreSQL. Redis. Horizon for queue management. Single server deployment.

Every single one of those except Laravel could change tomorrow. Chutes is great right now, but if something better comes along - better pricing, better models, better latency - I'll switch. That's the whole point. The architecture is designed so nothing is permanent except the patterns. Provider contracts are swappable interfaces. The orchestration layer is model-agnostic. Agent definitions are just configuration. The only thing I'm fairly committed to is Laravel - it does too many things too well to walk away from. Everything else is a tool I'm using today, not a marriage.

Built almost entirely with AI coding assistants - Claude Code and Codex handle implementation while I prompt, review, and steer. One developer directing AI agents to build a system that directs AI agents. The recursion isn't lost on me.

Beyond the browser

The web UI is just the starting point. The real vision is Iris everywhere, on every device, always reachable.

A native mobile app - not just a PWA, but a proper app with notifications, Siri integration, widgets, and background agents running while my phone is in my pocket. An Apple Watch complication where I raise my wrist and say "what's next on my calendar?" and get an answer in two seconds. A Raspberry Pi sitting on my desk or in the kitchen with a wake word, always listening, ready to go. Smart home integration where "Iris, I'm heading to bed" triggers a whole chain: lights dim, thermostat adjusts, tomorrow's alarm is set, morning briefing is queued.

Home security and surveillance. This is one I'm particularly excited about. I'm planning to integrate with Frigate NVR - an open-source network video recorder with real-time AI object detection. Cameras around the house feeding into Frigate, which detects people, cars, animals, packages. Iris gets those events and makes them intelligent. Not just "motion detected at front door" but "there's a person at your front door who looks like a delivery driver, and you have a package expected from Amazon today." Or "someone's been sitting in a car outside your house for 20 minutes, which is unusual for this time of day." Or simply "your cat is in the garden again." The raw detection comes from Frigate. The intelligence, context, and decision-making comes from Iris. Alert me, record a clip, ping my phone, or just log it silently depending on the situation and time of day.

Taking phone calls on my behalf. Not in a creepy way - in a "I'm busy, Iris can take a message and summarise it for me" way. Screening spam calls, scheduling callbacks, handling routine enquiries from service providers. "He's not available right now, can I take a message?" That's not science fiction anymore. The voice models are good enough. The latency is low enough. It's an engineering problem, not a research problem.

Ordering things automatically. "We're low on coffee" triggers a reorder from the usual supplier. "Find me a good deal on noise-cancelling headphones" sends the shopper agent to compare prices across retailers and comes back with options ranked by value. One approval tap from my watch and it's ordered.

I grew up watching sci-fi. It's my favourite genre after action films. Iron Man's JARVIS, the Star Trek computer, the interfaces in Minority Report - that's the energy. Not the dystopian stuff. The "technology as a seamless extension of your life" stuff. One central system that sees everything, understands context, and acts on your behalf. Every piece of Iris is built toward that feeling. We're not there yet. But for the first time in history, we're close enough that a solo developer with the right tools can actually start building it.

Why now

The pieces are all here for the first time. Open-source models that are genuinely good. Inference providers that make them affordable. Frameworks (Laravel AI SDK, Prism) that handle the plumbing. Voice models fast enough for real-time conversation. The gap between "I want a personal AI system" and "I can actually build one" has never been smaller.

Iris exists because I want one central place that manages my life - and I want to build it myself, understanding every layer deeply by doing it, not by reading about it. Every feature I ship teaches me something about how AI agents work, fail, coordinate, and improve. Every integration makes the system more useful. Every new agent expands what it can do.

That's the real reason. Not to solve one problem. To build the thing that solves all of them - and see how far it can go.