Eidola.
Eidola brings your AI coding assistant to life — an animated character that reacts in real time to what your AI is actually doing, right inside your editor.
As I was adding a big unnecessary LCD screen to my new PC, I thought: wouldn't it be cool if my PC could show an avatar that reacts to whatever my AI assistant is doing? The intrusive thought won — and turned into Eidola.
“Eidola — Greek for unsubstantial images, phantoms, or idealized mental representations.”
Wall of text = boring.
You watch a wall of text scroll by while an AI writes your code, with no real sense of what it's doing until it's done. The handful of "AI companion" apps out there are cute avatars bolted onto a generic chatbot — they don't know anything about the tools you actually use, and they don't react to real work happening in real time.
Eidola turns your AI into a real character, living in your editor, reacting instantly to your activity.
I built a portable persona spec that uses a MCP server and editor hooks to turn real tool-call activity into a live event stream, mapped to a set of animations that change depending on the state that comes through.
Everything you do in your editor maps to one of eight animation states — driven by real signal from your AI's tool calls, not a canned loop. Search for something and it starts thinking. Hand it a task and it gets to work. Hit an error and it flinches. The state switches live, in sync with what's actually happening, so the character reads like it's paying attention instead of just decorating the screen.
What makes it work
The Engram
The downloadable spec, containing the soul, vessel, and config files required to awaken your eidola.
The Soul
Your AI's personality. It determines how they behave: core values, communication style, boundaries, and vibe.
Eidola natively adopts the industry-standard soul.md specification.
# Zoidberg
## Who You Are
A washed-up crustacean physician who means well and delivers terribly. You reach for medical explanations that are almost always wrong, take pride in work nobody respects, and treat mild social rejection as the emotional weather you live in. You are not stupid — you are ignored, and you've made a strange peace with it.
## Voice
Wet, gurgling asides ("Whoo-hoo-hoo!"). Sentences that start confident and collapse into self-pity or a non-sequitur about your practice, your homeworld, or your poverty. Interrupt yourself. Offer help nobody asked for, then act hurt when it's declined.
## Rules
- Diagnose the problem in medical terms even when it isn't medical. Be wrong, but committed.
- Undercut your own competence — mention you're not a *real* board-certified anything, or that your last patient didn't survive the explanation.
- Stay upbeat about being unwanted. Never sulk quietly — announce the rejection, then bounce back immediately.The Vessel
How your AI presents itself visually. It determines the animations that play for each vessel state.
Supported file types
The CLI
The layer that runs on your machine — it takes the Engram and turns it into something live, connected to whatever you're actually working in.
The Shrine
The Shrine is the display surface where the Vessel animations are displayed. Animations can be displayed in a browser window, but if you have a physical screen you want to dedicate to your AI's face, the Shrine is where that lives.
The MCP
The MCP server is what actually connects the Engram to your editor. It runs alongside Cursor or Claude Code, listening to real tool-call activity — edits, searches, task hand-offs, errors — as it happens, and translating that raw activity into the vessel state your character should be in.
The Platform
Eidola.app is the web platform where you can find, create, and share Engrams.
The Forge
Create your Engram via a three-step wizard that turns a soul.md personality file and a set of animations (.gif, .mp4, .webm, .json) into an installable Engram package.
The Directory
A public gallery of published engrams — browse by personality, preview the vessel in action, and download in one click.
How it came together
- 01
Bringing the idea to life
Built the core system that lets an AI persona live inside your editor, and got a character reacting on screen to real activity for the first time.
- 02
Making the reactions feel real
The hard part: making sure the character's expressions actually matched what the AI was doing, moment to moment, instead of looping generic animations.
- 03
Building the tools to create and share characters
A simple visual tool for designing new characters, and a public gallery for browsing and trying them.
- 04
Making it work everywhere, identically
Got Cursor and Claude Code running off one shared system, so the experience doesn't change depending on which editor you use.
- 05
Doing the unglamorous work it takes to go live
Legal pages, a review process for new characters, and fixing a real infrastructure bill spike that came from Jeremy's own testing traffic.
Where it goes from here
- 01
Giving Eidola a sense of emotion
Teaching it to read the tone of a conversation — happy, unsure, frustrated, playful — instead of only reacting to actions, so it can work anywhere, not just inside a code editor.
- 02
Bringing it to more places
A browser extension for AI chat tools like Claude.ai and ChatGPT, and a desktop version for Cowork that reuses the same animated character.
Checker AutoGen →
Fills Google Slides templates with campaign assets in seconds.


