Big release. Advisor Prep Hero now reads images and PDFs straight from the chat input. It can index your PDF library and pull from it the same way @workspace already pulls from your Markdown notes. It reads AI replies out loud through a local Piper sidecar. It runs sandboxed third-party plugins from a marketplace, with four working examples shipping on day one. There's a community templates marketplace pointing at a real GitHub repo. The whole app speaks Spanish and German now. And you can try Advisor Prep Hero in your browser at advisorprephero.com/try without downloading anything.
That's eleven new things across one release. I've been calling it v2.0 internally, but the thing that actually matters to someone opening Advisor Prep Hero for the first time is the headline: your AI can finally see what you see, and other people can build for the app you use every day.
Let me walk through each one.
Advisor Prep Hero 1.0 was an AI workspace that produced files. Advisor Prep Hero 1.5 made it remember the files you'd already written. Advisor Prep Hero 2.0 lets the AI see things that aren't files yet, and lets the community contribute to what the app can do.
That's the thread connecting the eleven features below. Multimodal input, PDF chat, PDF RAG and long-context [Compress] all answer the same question: "what if my AI could read what's actually in front of me?" Plugins, templates marketplace and the web demo all answer a different question: "what if other people could shape what Advisor Prep Hero does for me?"
The deliberate non-goals haven't moved. No cloud sync. No real-time collaboration. No autonomous agents. Local-first, BYOK: your documents and API key stay on your machine, prompts go straight to the AI provider. Same argument as before, and I'm still convinced of it.
Drop a PNG into the chat input. Or a JPEG. Or a PDF. Or hit the paperclip and pick one. Or paste an image from your clipboard. The AI sees it.
Each provider gets the format that works best for it. Claude and the OpenAI vision models get the file natively. Gemini gets it natively too. Ollama gets it natively if the model you're running is a vision model (a small warning chip tells you when it's not, so you don't waste a turn). For PDFs, Claude Sonnet and Opus take the file directly. Other providers get a text-extracted version via PDF.js with a "text extracted" mode chip on the message so you know what was sent.
I genuinely care about the token meter. There's a token-cost preview that runs before you hit send, because a 12-page PDF on Claude Opus is not the same kind of request as a paragraph of text and you should know that before the bill arrives. The hidden tokenizer tax post is still relevant; the meter is one more way I'm trying to stop charging happening behind a curtain.
Surface: paperclip on the chat input, plus paste, plus drag-drop. PR #20.
This one is bigger than image attachments and a lot of people will miss it.
Open Settings, go to the Memory pane, flip "Include PDFs in workspace index" on. Advisor Prep Hero walks your workspace, extracts text from every PDF, embeds it via fastembed-rs using MultilingualE5Small (384-dim, multilingual on purpose, since the app is now in three languages), and stores the vectors in LanceDB in the same hidden .keepance/vectors/ folder it already uses for Markdown.
Now type @workspace and the AI retrieves from your PDFs alongside your notes. The retrieval shows you which file each chunk came from, and clicking a citation opens the PDF at the right page. It is the same pattern v1.5 shipped for Markdown, just extended to the document type professionals actually receive most often: contracts, term sheets, engagement letters, white papers, the supplier agreement somebody emailed you on a Tuesday.
Embeddings stay on your machine. Nothing about your PDF library leaves your computer. PR #20 Stream A.
Click the speaker icon on any AI message. Advisor Prep Hero reads it out loud. It runs through a local Piper sidecar binary, which is a neural TTS engine that produces voices that don't sound like a 2008 GPS.
No cloud. No API call. No "send the text of your business plan to Eleven Labs to read it back to me". The synthesis happens on your laptop in maybe a hundred milliseconds for a paragraph.
Why does this matter? Because some replies are genuinely long and you want to wash dishes while Advisor Prep Hero reads you the pricing analysis it just wrote. Because your eyes are tired. Because you are testing whether what you wrote actually sounds like a human. PR #19.
Advisor Prep Hero now runs third-party plugins. Each one runs inside a sandboxed Web Worker, declares its permissions in a manifest.json, and gets access only to what it asked for. Six permissions exist: workspace:read, workspace:write, editor:selection, editor:write, ai:invoke, and network. The consent dialog before install spells each one out in plain language, with a low/medium risk badge so you can see at a glance what the plugin is asking for.
The plugin API itself covers commands, toolbar buttons, sidebar panels, settings pages, editor read and write, workspace read and write, AI invocation, key-value storage, network requests, and notifications. Plugins appear in the toolbar and the sidebar and the command palette right next to the built-in features. Crashed plugins isolate. There's a Restart button on the crashed-plugin error panel.
Before I wrote a line of the runtime, I built a spike. The plugin runner spike validated 8 of 8 acceptance criteria in a real Chromium browser, including a median 0.10ms and max 1.40ms postMessage round-trip latency against a 50ms target. The spike memo is at docs/superpowers/spikes/2026-05-03-plugin-runner-spike-memo.md in the repo. I don't ship a system this central without proving it can hit the latency budget first; that's the engineering ethos and it saved me from finding out about a fundamental sandboxing problem after shipping the API surface.
Surface: Settings, then Marketplace, then Plugins. PR #23 for the runtime, PR #24 for the marketplace UI.
The plugin marketplace shipped with four real plugins that I wrote and that you can install today:
api.ai.invoke.api.storage. No permissions required.mermaid block, renders each one as SVG via mermaid 11.x. Replaces the fact that I personally still keep tabs open to mermaid.live.All four live in the catalog at github.com/keepance/community-plugins. The catalog is publicly fetchable, the tarballs are SHA-256 pinned, and the GitHub Action rebuilds catalog.json on every merged PR. PR #25.
If you want to build your own, the developer experience is fully boxed up. Run npx create-keepance-plugin my-plugin and you get a working hello-world plugin scaffolded with strict TypeScript, a Vite single-file IIFE bundle config, a manifest, a README, and an MIT license. Code against the typed @keepance/plugin-api package; every API surface (commands, toolbar, sidebar, editor, workspace, ai, storage, network, settings, notify) is documented as a typed export.
Seven documentation pages live at advisorprephero.com/docs/plugins/: getting started, manifest reference, permissions deep-dive, full API reference, publishing guide, examples walkthrough, and a hub page that ties them together.
If you build something, submit it to the marketplace via the GitHub fork-and-PR flow at advisorprephero.com/docs/marketplace-submissions. I will review every submission personally for at least the first six months.
Advisor Prep Hero already shipped 15 profession-specific workflow templates baked in. Now there's a separate community marketplace at github.com/keepance/community-templates for templates the community contributes.
Six day-one templates are seeded into the live catalog: a beta-user survey, a cold email sequence, a customer discovery interview, a community version of the investor update email, a launch announcement tweet thread, and a press release. The catalog refreshes every 24 hours, with an offline banner if you're not online when it tries. Updates show up as a badge on the Settings nav.
Surface: Settings, then Marketplace, then Templates. Provenance badges in the Workflow panel mark which templates came from the marketplace versus the built-in 15. PR #21 for the marketplace, PR #26 for the seeded catalog.
This is the biggest funnel change since launch.
Go to advisorprephero.com/try. The web demo loads with a pre-seeded sample workspace (12 workflow templates, sample notes, a chat history). Type a message. The AI responds. You get 5 free messages or 10 minutes through a shared Anthropic key I'm paying for, whichever expires first. After that, an exit modal pops up with download CTAs for Mac, Windows, and Linux.
If you've got your own Anthropic key, paste it in. The demo runs unlimited from your key. Nothing of yours is stored on my server.
Why this matters: BYOK is the right call for the desktop app, and I'm still convinced of why BYOK is the only honest pricing model, but BYOK at first contact is brutal for funnel. Most people will not click "Sign up at console.anthropic.com to try a thing they haven't tried yet." The web demo lets the curious play with Advisor Prep Hero for ten minutes, and then converts the ones who liked it into downloaders. Plausible-instrumented funnel events at every step.
Caddy reverse-proxies /api/demo-chat and /api/demo-status to a tiny systemd-managed Bun service on loopback that talks to Anthropic. The whole thing is at infra/keepance-demo-proxy.service. PR #27.
The UI is now translated into Spanish and German. 421 user-facing keys across the app, translated by claude-sonnet-4-6 through a hash-incremental script (npm run translate-i18n). The full catalog cost about $0.65 to translate, and the script is idempotent so re-runs only re-translate keys that actually changed.
On first launch the app auto-detects your OS locale (Tauri's os.locale() with a navigator.language fallback for the web demo). You can switch any time at Settings, then General, then Language. The switch is instant. No reload.
A custom ESLint rule (keepance-i18n/no-hardcoded-string) blocks any new hardcoded user-facing string from entering the codebase in CI, so the next 421 keys won't drift back into English. There's a lock mechanism (__locked: true on a translation entry) so any human-edited string survives the next LLM re-translation pass.
If you're a native speaker who notices something off, please open a PR or email me. PR #28.
You've been having a conversation with Claude for two hours and your context window is full. What happens? In most chat apps, things get weird and silently truncated.
In Advisor Prep Hero now, a [Compress] button appears next to the input when your conversation crosses a threshold. Click it. Advisor Prep Hero routes a summarization call through the fast model for your provider (Haiku for Claude, GPT-5-Mini for OpenAI, etc.) and replaces the older portion of the conversation with a structured summary you can expand or clear. Every compression is recorded in the audit log.
An auto-trigger modal also catches you before the next request would actually fail, so you can choose to compress or to keep going with the truncation risk visible. PR #20 Stream A.
I want to be honest about what didn't ship.
The dedicated mobile reader app for iOS is in development but not in v2.0. It's blocked on my Apple Developer signup and on TestFlight access, neither of which is a code problem. The reader will let you view your Advisor Prep Hero workspace on iPhone or iPad, with read-and-comment capability, before the full editor lands.
What did ship for mobile is at advisorprephero.com/docs/mobile-access. If you put your Advisor Prep Hero workspace inside iCloud Drive, Dropbox, Syncthing, or Google Drive, you can already read and lightly edit your Markdown files on your phone today using whatever Markdown reader you like. The docs walk through each of the four setups. The same content is mirrored inside the app at Settings, then Mobile, with iOS deep links so you can tap straight into the right setting.
None of this is the real mobile reader. It's a workaround that works for most workflows. The actual reader will ship when Apple lets it through. PR #22.
Same list as last time, with one addition.
api.editor.replaceSelection requires the user to have selected the text first.If you've been waiting for one of these, I'm sorry, you'll keep waiting. None of them are on the 2026 roadmap.
If you're on Advisor Prep Hero 1.0.8 or later, the auto-updater will deliver v2.0 within a day or two. You'll see an in-app banner. Click, relaunch, you're on v2.0. Your workspace, settings, API keys, and chat history all carry over.
If you're on something older than 1.0.8, the auto-updater can't migrate you cleanly. Grab the installer from the releases page and install over the top. Same workspace, same settings.
If you've never installed Advisor Prep Hero, two paths. Try it free in your browser at advisorprephero.com/try, no signup, 5 messages on me. Or grab the desktop installer from the download page for Mac (Apple Silicon and Intel), Windows, or Linux. Every download starts a 30-day free trial, no card required. Personal is $49 one-time, Professional is $149/yr and includes one practice pack, and Practice is $499/yr for up to 5 seats.
Advisor Prep Hero is built by me, Jameson Daines, around a full-time day job as a Senior Product Designer at a health-tech company. Eleven PRs, roughly 1900 unit and integration tests passing on master, six implementation plans, one spike memo, two live community repos. Not a funded startup. Not a team. One person, weekends and evenings, shipping a local-first AI workspace because the cloud tools kept losing my business plans and because I wanted my AI to be able to read the contract somebody just emailed me without me copy-pasting it into a different app.
If this post is useful, share it. Tell one attorney, CPA, or consultant you know who's been wanting an AI tool that respects their files, their keys, and their privacy. That's how Advisor Prep Hero grows.
Download Advisor Prep Hero v2.0Or try it in your browser at advisorprephero.com/try, no signup, no download. Read the competitive comparisons if you want to know how Advisor Prep Hero stacks up against Notion AI, Obsidian, and ChatGPT.