Blog
Product / Agents / Presentations

Your agent can build the deck now

I kept watching people do the same silly dance. An agent produces a genuinely good summary of something. Someone wants to put it in front of a room. So they copy it into PowerPoint by hand, or they export a PDF and fullscreen that, and a thing that was already a working web page gets flattened into a worse version of itself. Present mode is our fix for the last three feet of that journey.

July 26, 2026Scott Owen5 min read
handoff model
research agent
  -> build agent
    -> qa agent
      -> sharedrop url
        -> human decision

The last mile was a copy and paste job

Sharedrop has always rendered HTML properly. You upload a report your agent wrote, you get a URL, someone opens it. That part worked.

What did not work was showing it to a room. In practice that meant opening the page on a laptop, hitting browser fullscreen, and then scrolling with a trackpad while thirty people watched the scrollbar twitch. You could feel the moment the audience stopped reading and started waiting.

The gap was never rendering. It was navigation. A deck is a page that knows where its slides start and stop, and knows what to do when you press the right arrow key.

What Present actually does

Put a marker in the HTML, one meta tag, and Sharedrop treats the page as a deck. Any upload path works: the CLI, drag and drop, the API, MCP. There is no special flag to remember because the file says what it is.

Structure the body as one top-level section element per slide. That is the whole contract. Present shows one section at a time and moves through them on arrow keys, space, a click, or a tap on a touchscreen. A counter sits in the corner. The cursor and the on-screen buttons fade out after about two and a half seconds of stillness, which sounds like a fussy detail until you have left a mouse pointer parked in the middle of a projected slide for a full minute.

The important thing is what it does not do. Present supplies navigation and nothing else. It sets no background, overrides no colours, imposes no layout. Your CSS is exactly what the audience sees. I was firm about this because every presentation tool I have used eventually decides it knows better than you what a title slide should look like.

Builds, because a wall of text lands badly

Bullet reveals have a deservedly bad reputation. PowerPoint made them a punchline, mostly by letting people fly text in from the left with a whoosh.

The underlying reason they exist is still real though. If you put six claims on screen at once, your audience reads all six and stops listening to you. Reveal them one at a time and they stay with the person talking.

So any element inside a slide can carry a data-sd-fragment attribute. Present hides those, then reveals them one step at a time, and only moves to the next slide once the current one has finished building. Step backwards and it hides the last thing it showed rather than jumping a whole slide, which is what you want when someone asks you to go back to that number.

There is a matching hook for slide entrances. When a slide becomes the visible one it gets a class, and you key whatever animation you like to it. Both hooks are plain CSS you write on your own deck. We are not shipping you an animation library with opinions.

The part I did not expect to like

Static pages still animate.

Some background: Sharedrop strips JavaScript from static uploads, which is why static is the safe default for anything an agent generated. My assumption going in was that an animated deck would therefore have to be interactive, with all the extra care that implies.

It turns out not to matter, because Present supplies the navigation itself and CSS transitions were never JavaScript. A static deck gets slide stepping, fragment reveals, entrance animations, the counter, and kiosk auto-advance, with not one line of its own script running. You only need interactive mode when the deck's own code has to execute: count-up numbers, a live chart, a canvas doing something clever. Present keeps driving the slides either way.

For most decks an agent will write for you, static is the right answer and it is also the prettier one. I did not expect the safe option to be the good option.

For the screen in the corner of the office

Add autoplay and a number of seconds to the URL and the deck advances on its own and loops at the end. It steps the same way a presenter would, through each reveal on a slide and then onward, so a screen pointed at that link runs your build animations by itself indefinitely.

On Pro there is a present-only disappearing link: a URL that opens straight into fullscreen and expires after a time window or a view count. That one exists because of a specific complaint. Someone wanted to send a board deck to a director who would open it on a hotel TV, and did not want to talk that person through clicking a Present button.

Where to start

Slide decks work on every plan, including Free. Only the present-only disappearing link needs Pro.

The fastest version of this is to ask an agent for a deck about something, tell it to add the Sharedrop slides marker and use section elements per slide, and upload the file. Open the URL with present=1 on the end and point a TV at it.

Full documentation, including the fragment and animation hooks, is at sharedrop.cloud/docs/slides.

Try the handoff

Upload an artifact, get a URL, and give a human something concrete to review.

Get started