New Slide masters, right-click menus, and an AI assistant

Slides you can click.
Code you can read.

FrameSeq Studio has the menus, Insert gallery, format pane, slide masters, and presenter view you know from PowerPoint. Underneath, every slide is one readable file: AI can write it, Git can track it, and one command makes it an editable PowerPoint, a PDF, or a website.

Free and open source · Windows, macOS, and Linux · or npm create frameseq@latest

FrameSeq Studio, photographed each time this page is built.

27shapes, from flowchart symbols to block arrows

12slide layouts to start a new slide from

4formats: PowerPoint, PDF, web, and Typst

1download, with Node.js, Typst, and Tectonic inside

FrameSeq Studio

Everything you reach for in PowerPoint.

A menu bar, an Insert gallery, right-click commands, a format pane, and slide masters. There is nothing to learn first: point, drag, and type, and the Studio writes the code.

The Insert gallery open over a slide: text, lists, quotes, code, LaTeX and Typst formulas, pictures, tables, charts, QR codes, and icons on the left, and text boxes, lines, connectors, basic shapes, flowchart symbols, and arrows on the right.

Writesshape("diamond", "Cached?").position({ x: 460, y: 157 })

The Edge gateway shape selected on the slide, and its settings open in the Current slide pane: the shape, its label, a colour scheme, style, fill, outline, and weight.

Writes.tone("blue").shadow()

A right-click menu on the Vector renderer shape: Cut, Copy, Paste, Duplicate, Delete, Order, Edit text, Format, and Go to code, each with its shortcut.

Copies asshape("rounded", "Vector renderer").as("renderer")

The Studio's slide master view: the content and cover masters in the rail, and the cover master in the preview with its title, subtitle, and author placeholders outlined.

Writesmaster("cover"); placeholder("title")

Two views of one slide

Hide the code. Or keep it beside the slide.

Ctrl+E folds the editor away for anyone who never wants to see it. Open it again and the cursor is on the object you selected: dragging a shape changes only its numbers.

  • Alt-click any object to jump to its line
  • TypeScript completions, hover help, and errors as you type
  • One plain file in Git: diff it, review it, branch it
FrameSeq Studio with the code folded away: slide thumbnails and the format pane on the left, and the diagram slide filling the rest of the window. The same moment with the code open between the format pane and the slide.

AI assistant

Ask for a change. Accept it like a pull request.

The Assistant panel runs Claude Code or Codex, whichever your computer has, on your own sign-in. It edits the slides, checks the layout, looks at what it drew, and lays out every edit for you to accept or reject.

The Studio's Assistant panel beside a roadmap slide. The request asks for four chevrons, one per quarter; the agent read the outline and the file, edited it, checked the slides, and looked at slide 5, then explains what it changed. Done in 41 seconds.
  1. 1

    Ask in your own words

    The request carries the slide in view, the lines you selected, and the problems in the list, so “this slide” means something.

  2. 2

    It checks its own work

    Through frameseq mcp the agent runs the layout check and looks at pictures of the slides before it says it is done.

  3. 3

    You decide what stays

    The editor shows each change against what was there before, to accept or reject. Ctrl+Z undoes the lot.

Prefer your own agent?

Claude Code, Codex, and Cursor connect to frameseq mcp to outline, check, and see the slides. Any model can learn the language from llms.txt.

$ npx frameseq check talk.slides.ts
ERROR Slide 4 "Architecture" [text-clipped]
  Text is clipped by 38px on the bottom.
  Object: text 3.1.2 "FrameSeq owns presentation…"
  Suggestion: Increase the text box size, reduce
  the font size, or shorten the content.

Presenting

Two screens, your notes, and your phone as the clicker.

Press F5 and the slides fill the screen edge to edge. With a projector attached, they go to the projector, and presenter view stays on your laptop with the notes, the next slide, and a timer.

Presenter view: the current slide, a flow diagram, on the left; the next slide and the speaker notes on the right; a timer, laser pointer, and controls to move through the slides.

Full-screen show

F5 from the start, Shift+F5 from here. Clicks and arrow keys step through reveals, and the show ends on black.

Presenter view

Notes, the next slide, and a timer on your screen, with the slides sent to the screen you choose.

Phone remote

Scan a QR code to change slides from your phone, read the notes on it, and point a laser at the screen.

A PDF for the backup laptop

Export the whole talk or just some slides, numbered as they were, for the projector you did not plan for.

Underneath

One file that reads from top to bottom.

Every slide is a few lines of TypeScript, with no nesting and no markup. Source order is reading order, so a diff shows exactly what changed, and an AI writes it without getting lost.

talk.slides.ts
slide("Faster every release").split("38:62")
  .notes("Median load time, measured on a mid-range phone over 4G.");
text("Median time to first tile fell by two thirds in a year.").lead();
bullets(
  "Vector tiles replaced images",
  "A cache at every edge",
  "Fonts shipped with the app",
);

right();
chart("bar", { "1.0": 840, "1.4": 610, "1.8": 430, "2.0": 280 })
  .unit(" ms")
  .colors("#0d9488");

Layout without CSS

.split(), .grid(), and .canvas() lay a slide out; right() and cell() say where the next lines go.

Checked before you present

frameseq check measures the drawn slides and names each overflow, clipped line, and tiny font by its object.

Reviewed like code

@@ slide("What it changed") @@
- metric("3×", "Faster first tile");
+ metric("4×", "Faster first tile");

Built for real talks

Diagrams, equations, charts, and posters.

Each one is a command with good defaults, so an AI draws it well, and each one stays editable after it reaches PowerPoint.

Diagrams

Shapes and connectors that stay editable

27 outlines with colour schemes worked out against your theme, and connectors that turn at right angles around everything in their way. PowerPoint gets its own preset shapes.

A flow diagram: a request passes an edge gateway to a Cached? decision, which sends it to a tile cache or a vector renderer on elbow connectors labelled yes and no, and both reach your users.

Typesetting

LaTeX math and Typst

∫−∞∞e−x2 dx=π\int_{-\infty}^{\infty} e^{-x^2}\,dx = \sqrt{\pi}

Inline or display equations in familiar LaTeX, and Typst or LaTeX tables where a fragment needs more.

Charts and tables

Data PowerPoint can still edit

Bar, line, pie, and donut charts and ruled tables, drawn from the numbers in the file. Exported, they are PowerPoint charts and tables.

Posters

A0 posters from the same language

A title band, columns of blocks, and type sized for paper. PDF prints at the sheet's real size.

Posters and print
An A0 conference poster on diffusion language models: a blue title band, then blocks for the introduction, method, setup, results with two charts, takeaways, and a QR code to the paper.

And the details

Citations, icons, and QR codes

Import a .bib file and cite() as you write; each slide lists its sources at the foot. Lucide's icons come by name, and qr() puts a link your audience can scan on the last slide.

One file, four formats

Present on the web. Submit a PDF. Hand off a PowerPoint.

Shapes, charts, and tables reach PowerPoint as native objects your colleagues can edit, and any export can take just the slides you choose.

PPTX

PowerPoint

Editable text boxes, preset shapes, charts, and tables, with masters drawn behind each slide.

frameseq pptx talk.slides.ts
PDF

PDF

Faithful to the last pixel, at the paper's size for posters, for submission and print.

frameseq pdf talk.slides.ts
HTML

Website

Interactive slides with presenter view, to put on any static host or share as a link.

frameseq build talk.slides.ts
TYP

Typst

Typst source you can keep typesetting, with shapes, tables, and connectors as native Typst.

frameseq typst talk.slides.ts

Themes

Start from a theme. Make it yours with a master.

Seven themes ship with FrameSeq, each a template in the Studio's New presentation dialog. A theme never changes how you write; a master or a few tokens make it your own.

The Midnight theme: a dark cover slide with cyan accents.

Midnight

High contrast
↗
The Beamer Default theme: a clean blue academic title page.

Beamer Default

Classic
↗
The Beamer Madrid theme: a blue title bar and a metadata footer.

Beamer Madrid

Structured
↗
The Cambridge US theme: burgundy and cream academic slides.

Cambridge US

Warm academic
↗
The Minimal Academic theme: an underlined frame title and a compact footer.

Minimal Academic

Research
↗

Your own theme

Colours, fonts, and spacing with defineTheme(), or a master drawn in the Studio.

Themes guide

Fits the way you work

Your editor, your terminal, your repository.

Visual Studio Code

A live preview beside the source, layout findings in Problems, export, and Open in Studio.

Get the extension

Command line and CI

Fail the build, not the talk: an overflowing slide stops a merge, and the slides publish as a static site.

CLI reference

Git

Every revision is a readable diff. Branch a talk for a new audience, and share pieces between talks.

Revising slides

Coding agents

frameseq mcp lets Claude Code, Codex, and Cursor outline, check, and see your slides.

AI generation

Get started

Your first slides, three ways.

Easiest

Download the app

An installer for Windows, disk images for macOS, and archives for Linux. It brings its own Node.js, Typst, and Tectonic, so there is nothing to install first.

Download FrameSeq
No install

Try it in the browser

Open a playground with a slide file and a live preview, and edit it right away.

Open the playground

Your next talk starts in the Studio.

Free, open source, and yours to keep as plain text.