Foveate
Changelog

What’s new

Shipped features and fixes, newest first.

A published API contract, rate-limit headers and background jobs

The whole Foveate API is now described in one machine-readable document. Fetch app.foveate.com/api/v1/openapi.json to get every endpoint, its permission, its rate limit and the exact shape of every request, generated from the same rules the API enforces. Point an API client, a code generator or an AI assistant at it and it cannot send a request the API would reject.

Every API response now tells you how much of your rate limit is left. Look for the X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers on any call, so an integration can pace itself instead of discovering the limit by hitting it. Browser-based tools can call the API directly too.

Filter your decks by project. Listing decks with a project id returns only the decks filed in that project, with paging that stays inside the filter.

Long-running work can now run in the background. When an API operation takes longer than a request should, the API answers immediately with a job you can check on, and Claude gets a matching tool to check the same job from a chat. No operation uses it yet; it is the groundwork for the ones that will.

One set of permissions everywhere. The permissions you pick when creating an API key and the ones an app like Claude asks for on the approval page are now the same list with the same wording, so connecting Claude can also grant it access to your client book.

Paste a Claude artifact onto a slide

Published Claude artifacts play live on your slides. Paste the link to a published Claude artifact onto a slide (the page link, or the code from Get embed code) and it goes on the slide as the working app, not a picture of it. Your audience can click and type in it while you present, and on your share link. Claude only allows an artifact to be embedded on sites its author has approved, so in Claude open Get embed code and add the address you use Foveate at to Allowed domains.

Paste an artifact's code and it runs on the slide. Copy an artifact's code in Claude and paste it onto a slide: a whole web page or a React component becomes a live code widget that runs right there, libraries included. This works for any artifact, including shared links that Claude won't let other sites embed. Before, the code landed on the slide as a wall of text.

When an artifact can't play here, you get a link and a reason. A shared artifact link, or a published one that hasn't approved this site, goes on the slide as a link card that opens the artifact in Claude, instead of an empty box. In the editor, the card and a short notice tell you what to change in Claude to make it play live.

The deck assistant plans first, and you review each slide it changed

Bigger changes start with a plan. When you ask the deck assistant for something that reaches past the slide you're on (rewriting the whole deck, personalising it for a client, reworking several slides), it shows you a plan before touching anything: each slide it would change, what it would change, and why. Every step starts ticked. Untick the ones you don't want and press Apply, and it makes only those changes. Cancel changes nothing. To adjust the plan instead, type what you'd like different and it comes back with a revised plan. Small, specific requests, like a change to the slide you're on or "make every heading 48px", still happen straight away.

Keep or revert each slide on its own. After the assistant edits your deck, its reply lists every slide it changed. Open a slide to see the old and new text side by side, then keep it or revert just that slide, leaving the others as they are. Keep all and Revert all are there when you want to decide in one go, and each revert can itself be undone with the editor's normal undo.

Plan first, every time, if you prefer. A new switch beside the assistant's message box makes it propose a plan before any change at all, even a one-word edit on a single slide. It stays on until you turn it off.

Mention a client and the assistant writes for them

Mentioning a client tells the assistant who you're writing for. In the deck editor's assistant, typing @ and a client's name used to be read as text to find on your slides — ask it to "alter the text for @Jim" and it would search the deck for Jim, find nothing, and ask what you meant. It now knows that person is your audience. It rewrites the copy on the slide you're on so it speaks to them, drawing on what their client profile says they care about, while keeping every fact the same and leaving the design exactly as it is.

Ask for the whole deck and it suggests before it changes. If you ask it to personalise an entire deck for someone, it doesn't rewrite everything at once. It shows you a plan — which slides would change most for that person, what it would change on each and why — and waits for you to choose which of those changes to make.

It tells you when it doesn't know enough. If the person you mention has no client profile yet, or only a thin one, the assistant says so and personalises only from what's actually known about them — their role and company — rather than guessing at what they want.

Connect Claude to Foveate

Claude can now work in your Foveate account. In Claude, add Foveate as a custom connector using the address app.foveate.com/api/mcp. Claude sends you to a Foveate page where you sign in and approve exactly what it may do: see your decks, create and edit decks, or generate decks with AI. From then on you can ask Claude to list your decks, build a deck from an outline it writes, or generate one from a brief, and the finished deck opens in Foveate like any other.

You decide what Claude can do, and you can take it back. The approval page spells out each permission in plain words before you agree. Settings → Developer now has a Connected apps list showing every app you've approved, what it can do, when it connected and when it last called. Revoke disconnects it on its next request.

Decks Claude makes are yours in every way. They're created as you, in your workspace, and generating one spends your own AI credits, the same as the deck wizard. Nothing is made in the background: Claude only acts while you're asking it to.

Record a video note without leaving your feedback

Recording a video is now part of leaving feedback. It used to be a separate button that opened a separate window and asked for your name, your email and your role all over again — even if you had just typed them in. There is now a camera button in the feedback panel, next to the pin and the pencil, and it works the same way they do: press it, record, and send it with everything else.

A video can carry a message with it. Before, a recorded note went off on its own with no way to say anything alongside it. You can now write a sentence and record a clip as one response — or record with no words at all, which still arrives as a complete message rather than a blank one.

Video notes join the conversation instead of sitting apart. A recorded note now lands with the rest of the feedback on the deck: it shows up against the slide it was left on, the team can reply to it, and it can be marked done like any other message. Notes recorded before this change are still where they were.

Your video is no longer lost if the upload fails. If something went wrong sending a recording, the message used to be filed anyway and the video quietly dropped. It now tells you, and keeps what you recorded so you can try again.

Take as long as you need. Video notes used to stop at five minutes. There is no time limit now — talk through as much of the proposal as you want to. Very long recordings do eventually reach a size we can accept, and if that happens the recording ends there and everything you have already said is kept.

Two buttons, not three. The viewer bar on a shared deck now reads: ask the deck a question, or leave feedback. Recording lives inside the second.

Asking and responding are two tabs of one panel. They used to be separate panels that could never be open together, so switching meant closing one and finding the other button. It is now one panel with a tab at the top for each, and whatever you were part-way through on the other tab is still there when you go back.

Leaving feedback no longer starts with a form. You used to be handed two boxes and a Continue button before you could see the place to write. Your name and email now sit inside the message box itself, above what you're writing, and you fill them in whenever you like — the send button waits for a name, and the message you've typed stays put while you add one. Asking the deck a question already worked this way; both tabs now look and behave the same.

Typing your name no longer moves the cursor. Starting to type in the name box used to make it disappear mid-word and drop the cursor into the message field below. The boxes now stay where they are until you send something, and clicking one puts the cursor in the one you clicked.

Your details carry across both tabs. Type your name on one and the other already knows it — you are asked once, not twice. Each box now has a small icon beside it, so it is clear which one you are typing into, and both tabs ask for exactly the same things in the same way. Your email is always offered, and still only required when the sender has asked for it.

The panel sits beside the deck instead of on top of it. Opening it from the opening screen used to cover the right-hand side of the slide you were looking at. The deck now slides over to make room.

Your client list, now in the API

The API reaches your clients. Alongside decks, an API key can now read and update the people in your firm's client book. In Settings → Developer, two new permissions decide how far a key goes: read the client book, or add and update people. Clients are shared with the whole firm, so a key created by a guest is refused, the same as that person is in the app.

Keep your client list in step with the CRM you already use. A new bulk endpoint takes a batch of people from any outside system — through Zapier, Make, or a script of your own — and files them into the book. Each person carries the id your system uses, so someone who changes jobs and changes email keeps their Foveate record, their meeting notes and their profile. Send the same list twice and nothing happens the second time; only real changes are written.

It will not quietly merge two people, and it will not delete anyone. When an incoming person matches someone already in your book beyond doubt, the two join up. When the evidence is weaker — two contacts sharing one address, or just the same name — you get both records and a note that they might be the same person, for you to decide. Removing someone in your own system marks the connection and leaves their Foveate record, notes and profile untouched.

Corrections you make by hand stay corrected. If you fix a phone number or a job title in Foveate, a later sync from an outside system leaves your version alone instead of overwriting it on the next run.

Adding the same person twice no longer creates a duplicate. Whether a person arrives from the API, a form, a share link or a CSV, Foveate recognises someone already in the book and fills in only what was missing.

Create decks from your own tools with the Foveate API

Foveate now has an API, starting with decks. From Settings → Developer you can create an API key, name it, and choose what it may do: read your decks, create and edit them, or generate them with AI. The key acts as you — the decks it makes land in your workspace, and AI generation spends your credits, exactly as if you had done it in the app.

Build a deck from an outline, or from a prompt. Send a list of slides — a cover, a few content slides, some metrics, a closing — and Foveate lays them out with the same templates the deck wizard uses, so the result opens in the editor as a real, editable deck. Or send a brief and let the AI write the outline first. Every response includes links to open and share the new deck.

Copy a key any time, revoke it any time. Every key on the Developer page has a Copy button, so you never have to create a new one just because you lost the old one. Each key shows when it was created and last used, and revoking one stops it immediately without affecting your other keys.

Save your videos, and quicker pickers

Videos you generate can now be downloaded. Saving a clip used to do nothing useful — the option was missing on most videos, and where it appeared the file either opened in a tab instead of saving or landed under a meaningless name. It now prepares the file and saves it properly, under the name of the asset itself. Images and videos selected on a slide get the same option.

Two more video models. Hailuo 3 Max and Grok Imagine Video 1.5 join the model picker. The picker also now shows every kind of input a model accepts — text, image or video — instead of guessing one, so a model that can take your image no longer looks like it only takes words.

Generated clips stay with the deck you made them in. A video or image generated inside a deck that isn't filed under a project now shows up on that deck's own tab in the Library, rather than being hard to find again.

A result no longer plays over the top of another. Starting a new generation, or opening your history, used to leave the previous clip playing underneath. Whatever you are looking at is the only thing making sound.

A model that can't take your input says so. Picking a combination a model doesn't support used to come back as a content-policy warning with a "Rewrite" button that couldn't help. It now tells you what the model actually accepts.

Anyone who can edit a deck can rename it. Renaming from the header was limited to whoever created the deck; teammates with edit access can do it too.

Pickers open fast, however much you have. Add to Project, Add to Shared, the Library and template pickers, and the page grids in PDF and drawing imports used to build every thumbnail at once before showing you anything. They now fill in as you look, and their previews load as you scroll rather than all at once.

A bigger canvas for Generate Media

Generate Media opens larger, and now goes fullscreen. Both the deck and workspace versions open about a tenth bigger, and a new control in the panel's header expands it to fill the window — worth it when you are comparing several results side by side. It opens at the normal size next time.

Generated files are named after what you asked for. A clip or image you generate now arrives named after your prompt instead of the model and a timestamp, so it is recognisable in your Library and stays recognisable after you download it.

Prompts can run as long as each model actually allows. Prompt fields now hold as much as the model you picked accepts — several times more than before on the models that permit it — and a counter appears as you approach that model's limit, so a prompt that is too long is something you find out while writing it rather than after submitting it.

Video generated with audio waits for you to press play. A result that has its own soundtrack no longer starts by itself — browsers block audio that starts unprompted, so it now lands paused and plays when you click. Silent clips still preview on their own as before.