But only if you could coax it to run on Omar’s laptop.
Back then, even I (Peyton, proud lifelong nerd) would sweat through command-line rituals just to show a friend how Ditto could remember their last conversation or turn off the living-room lights with a single prompt.
That was six years, dozens of prototypes, and one patent application ago.
Our Goal
Our goal has always been the same: lower the barriers between people and powerful technology.
We started in music, learned to train neural nets before they had a catchy name, and then settled on what we build now: a personal AI that remembers you.
For the full origin story, meeting minutes, GitHub commits, and the vision we had before anyone was talking about AI agents, read Before ChatGPT: We Were Building AI That Does Things on the OmniAura blog.
The Years Before ChatGPT
While others focused on general AI, we worked on the methods that modern AI systems later came to rely on:
- 2020: Omar built LLMs from scratch with tiny training sets, generating Donald Trump tweets, Rick & Morty scripts, and Yelp reviews when tokens were still characters, not words
- Pre-ChatGPT: We knew about multimodal LLMs before they existed, understanding how to concat and add modalities together through neural layers
- The Patent: Our Multimodal Neural Network (MMNN) patent application outlined AI systems that could translate between senses
What We Learned in the Deep Learning Years
Omar was studying transformers, GAN image generators, BERT embeddings, and RESNET architectures when ChatGPT didn’t exist yet. We understood the potential, but we didn’t know how much data it would take to make it work.
The biggest lesson: an AI that remembers you can build a relationship with you over many conversations, beyond storing what you said.
If you want the longer version of that arc, from Bayes to perceptrons to the agents on your desk today, we wrote it up in From Bayes to Your Agents.
Fast-Forward to Today
A lot has changed since those command-line days. Ditto is a product you can use right now, on the web, on your phone, and inside whatever AI tool you already have open.
Here’s what actually ships today.
The memory itself
- A self-organizing knowledge graph. Every conversation gets indexed and clustered into Subjects automatically. No tagging, no folders, no linking
- A dreaming pipeline. Ditto consolidates your memories in the background. We wrote about how it works, bugs and all, in An Agent’s Nightmares Are the Key to Its Dreams
- A ranker we rebuilt from scratch. The model that decides which memories the AI sees now weighs seven signals instead of three, and roughly doubled how often it surfaces the right one
- Retrieval that learns your phrasing. Seed Memories v4 trains a small per-user query adapter that lifts Recall@1 by 7.6 points, trains on CPU in seconds, and stays under a megabyte per user. Details in Teaching Memory to Find Itself
- Transparent context. Expandable cards show you exactly which memories were retrieved for every answer, and why
What Ditto can do
- Threads. Named conversations with subjects, memories, and notes pinned in, so the context you curate is the context the model gets
- Realtime voice. Talk to Ditto like a phone call, with full memory continuity
- Automations, Recipes, and Code Mode. Ditto now does work while you’re not in the room: scheduled jobs, multi-step flows, and a sandbox where scripts call your tools directly, with no model call. All created in plain language, all gated by your approval. How it works
- Ditto Code. Describe a web app in a chat message and watch an agent write it, test it, and deploy it to a public URL. Read more
- Sub-agents. Research and image agents run concurrently inside your threads, with the work shown
- Google Workspace. Gmail, Calendar, Drive, Docs, and Sheets, connected from one settings screen
- Personality. Ditto builds a profile of how you actually communicate and adapts to it
- Every major model, one memory. OpenAI, Anthropic, Google, and xAI, switchable mid-conversation
- Web search, link reading, image generation, read-aloud, and multimodal input: text, images, PDFs, and audio
Where you can use it
- Native iOS and Android apps, plus the web app
- MCP, in both directions. Ditto is an MCP server and an MCP client. Point Claude Code, Cursor, Codex, or anything else that speaks MCP at your memory, and register external servers like GitHub or Notion inside Ditto
- A CLI and agent-native signup. An agent can install the Ditto skill, create its own account, and send you a claim link. No API key handoff required. Works with OpenClaw and Hermes today
- Dedicated graphs. Give an agent or a CI pipeline a key scoped to a single-purpose graph, so its memories never pollute your main one
- Graph sharing. Keep your memory private, share it with specific friends, or make it public. Subscribe to friends’ graphs and foundation graphs and they fold into your search
- Import. Bring your history over from ChatGPT, Claude, Gemini, Perplexity, Obsidian, Joplin, Google Keep, Apple Notes, or plain Markdown
- Free to try. The Free plan gives you 14 days with no usage limits, then 500 retrievals and 30 voice minutes a month. Instant Google sign-in, no card needed. Other plans are on pricing
What we opened up
The work we’re proudest of this year is open source.
We rewrote Ditto’s agent and memory harness in Rust and open-sourced it under AGPL-3.0. We built DittoBench to measure whether an agent calls the right tool and finds the right memory, and how fast it does both. Then we rebuilt it as DittoBench V2, which generates a fresh dataset for every run from a single seed and grades with fixed rules instead of an LLM judge, so nobody can memorize the test.
And Ditto is now Bittensor Subnet 118. Miners submit an agent-memory harness, validators score it against a dataset that didn’t exist before the run started, and the highest-scoring harness wins. The thing we used to run on Omar’s laptop is now something strangers compete to improve.
And V2
Multi-chat is in early access. Telegram, Slack, and Discord live inside Ditto as one inbox, each rendered like the app it came from, all feeding the same memory. Which means the coding agent you already pointed at Ditto over MCP can now search what your team said in Slack. The full story is here.
What We Promised Last Time
The March version of this post ended with four things on the roadmap. Keeping ourselves honest:
- Thought Trains, the curated-context canvas: shipped, as Threads
- Conversation Sessions: shipped
- Real-Time Voice: shipped
- Weekly Reflections: still not shipped. The pipeline is designed and it keeps losing to things our users ask for louder. We still owe you this one
What’s Coming Next
- V2 out of early access, for everyone
- More surfaces in multi-chat, so the one inbox actually covers your day
- Weekly Reflections, the one we owe you
- Proactive check-ins, so Ditto can start a conversation when something needs your attention
We Need You
Now we need you.
What do you wish an AI companion could do better? Which rough edges snag you? What makes you smile when Ditto gets it right?
Your feedback goes straight to our small, stubborn team, no bots, no auto-responders. We read every word and use your feedback to shape the next build.
Try Ditto
Try Ditto for free and see what it’s like to have an AI that remembers you.
Thanks for giving Ditto a spin. We can’t wait to hear what you think.
With gratitude, Peyton & the Ditto Team
P.S. If you run into anything weird, or wonderful, let us know. That’s how we keep lowering those barriers.
Want to share your feedback? Reach out to us at peyton@heyditto.ai or join our community discussions.