<p><a target="_blank" rel="noopener noreferrer nofollow" href="https://github.com/kwhorne/anna.js">Anna.js</a>, a slide engine by Knut W. Horne, takes a different posture: you write Markdown, and Anna turns it into a fully interactive presentation. And if you happen to use Elyra — the self-extensible AI coding agent for the terminal — there's a small extension called <code>@elyracode/anna</code> that lets the agent do the writing <em>with</em> you. Or honestly, <em>for</em> you, on the evenings when you'd rather not.</p><h2>Tell the agent what the talk is about</h2><p>Once the extension is installed (<code>elyra install npm:@elyracode/anna</code>, plus a quick <code>npm install -g @kwhorne/anna.js</code> for the CLI), three new tools light up: <code>generate_presentation</code>, <code>preview_presentation</code>, and <code>build_presentation</code>. There are two friendly slash commands too — <code>/presentation [topic]</code> for "make me a new deck" and <code>/slides [file]</code> for "open the one I've been editing."</p><p>You can simply say things like:</p><blockquote><p>Create a presentation about our project architecture.</p><p>Generate slides for a Kubernetes intro with terminal demos and diagrams.</p><p>Add a slide with a Mermaid flowchart showing the auth flow.</p></blockquote><p>The bundled <code>anna-js</code> skill loads the complete syntax reference into the agent, so it knows the slide separators, fragments, terminal blocks, code playgrounds, Mermaid syntax, component layouts, speaker notes, and themes by heart. The Markdown it hands back is valid Anna on the first try — no second pass to clean up.</p><h2>What Anna can do once you're in the file</h2><p>If you've ever scribbled a README, you already know the basics. Headings, lists, code fences, the usual. Anna adds a thin layer of conventions on top:</p><ul><li><p><code>---</code> splits horizontal slides; <code>--</code> makes vertical ones, so you can hide depth under a clean top-level flow.</p></li><li><p>Fragments let a single slide reveal itself step by step, instead of dumping everything at once.</p></li><li><p>Terminal blocks animate command typing and output with realistic timing — the rhythm of the work, not a frozen screenshot.</p></li><li><p>Live code playgrounds run JS, HTML, and CSS with console output, so the snippet on screen <em>is</em> the snippet, ready for a "what if we change that to a fifty?" moment.</p></li><li><p>Mermaid blocks render flowcharts, sequence diagrams, gantts — describe the system in a few lines and edit a sentence when it changes.</p></li><li><p>Component layouts cover columns, comparisons, timelines, stats, cards, and quotes for the slides that need more than prose.</p></li><li><p>Speaker notes stay hidden in the deck but show up in the presenter view.</p></li><li><p>Eleven built-in themes, dark and light, keep you out of the CSS rabbit hole.</p></li></ul><p>A small Mermaid example, for the shape of it:</p><pre><code>graph LR
  Idea --&gt; Markdown --&gt; Anna --&gt; Presentation
</code></pre><p>That's it. That's the diagram.</p><h2>Preview, then build for the venue with the bad Wi-Fi</h2><p><code>preview_presentation</code> (or just <code>/slides</code>) spins up the Anna dev server, opens your browser, and reloads as you edit. Nothing fancy — it just stays out of the way while you work.</p><p>When the deck is ready, <code>build_presentation</code> produces a single self-contained HTML file, with optional service worker for offline / PWA mode. Which is the quiet hero feature, really: conference Wi-Fi has been letting people down since the late nineties, and a deck that needs nothing from the network is a deck you can actually trust to come up when it's your turn to talk. Hand the audience a URL or just open the file locally — same result either way.</p><h2>Why this works</h2><p>The best authoring tools get out of your way. They let you think in the medium of the <em>idea</em> — words, code, diagrams, flow — and handle the visual scaffolding on your behalf. Anna lives squarely in that tradition, and the Elyra extension nudges it one step further: you describe the deck to a terminal agent that already knows Anna's whole vocabulary, and the Markdown writes itself.</p><p>It's calm software for people who'd rather spend the evening <em>writing</em> the talk than wrestling with the tool that's supposed to display it. The full reference — install steps, every tool and command, the complete capability table — lives at <a target="_blank" rel="noopener noreferrer nofollow" href="https://elyracode.com/docs/ext-anna">elyracode.com/docs/ext-anna</a>. Pour something warm, give it a read, and the next deck you build might actually be one you enjoyed making.</p>