Assistant
Kai is Klyo's in-app assistant, powered by Google's Gemini. It lives in a panel on the right side of every page: open it with the round button in the bottom-right corner, the sparkles icon in the top bar, or Ctrl/Cmd and J. The conversation stays with you as you move between pages, even when you close the panel. Start over with the New chat button; a page reload also starts fresh, because Kai holds no session on the server between turns. Your past conversations are saved and reopenable under Chat history (see the last section).
What Kai sees
With every message, Kai receives a snapshot of your current screen: the page you are on, the campaign and builder step in view, a short description of what that step means and how far the campaign has come, and the live values of the input fields on screen, including text you have typed but not saved yet. That is why you can ask "what am I looking at?" or "what should I do next?" without explaining where you are.
The snapshot is data, not instructions: Kai treats it as a description of your screen and grounds its answers in real lookups.
What Kai can look up
Kai answers questions by calling read-only tools scoped to your Organization: your campaigns and their briefs, ad copy, ideas, storyboards, package configuration, render and generation status, combination packages, templates, the catalogue library, assets, activation status, the activity feed, your own role, and this guide. It also reads the measured end: how a campaign is performing, the monthly Insight written for your Organization or one campaign, and the "What's new" release notes. When a reply took several lookups, they fold into one "Looked things up" entry in the chat; expand it to see each call and its result. On a page showing one record, Kai already knows which one you mean, so "score this one" or "rename it" works without naming it again.
When Kai asks instead of guessing
When your request could mean more than one thing, Kai asks before acting. "Make my title shorter" can target the campaign name, the publishing video title, or the ad copy headline, so a question card appears in the chat with one button per reading. Pick one, or just type your answer; the conversation continues from your choice, and nothing is proposed or changed until the target is clear. Once you have answered, the card keeps the question and every option it offered, with your pick marked, so scrolling back shows what was decided.
Your next step
While a campaign is open in the builder, the panel shows that campaign's next move as a card: the first step that is neither finished nor waiting on an earlier one. It is read from the same progress the step rail ticks from, so it costs nothing and it updates the moment you finish something, without asking Kai. On another step the card opens it; on the step you are already looking at it names what is still missing there. Its Ask Kai button is the only part that starts a conversation, and only when you click it.
Jumping to the right place
When the next move lives on another page or builder step, Kai offers it as a card with an Open button. Clicking it takes you there; Kai never navigates on its own. Every answer that tells you to open a page or a step carries that card, and the first time Kai names a builder step it says in half a sentence what the step is for.
Ask Kai about a failure
Every durable failure surface carries an Ask Kai affordance: a failed row in the activity feed and the failure console, a failed render or generation, a failed push. One click opens the panel with the question already sent, carrying what failed and the backend's or the provider's own words verbatim, and asking for the likely cause in plain language, what to do next, and a support-ticket draft when it is not something you can fix yourself. The wording is authored, not generated, so the same failure always asks the same thing. While Kai is answering another turn the affordance goes inert and says so on hover.
Toasts deliberately carry no Ask Kai. A toast is gone in seconds, and every failure it announces also lands on a surface that keeps it, which is where the affordance belongs.
Nudges
A nudge is a small pulsing marker Kai draws beside a setup choice that is legal but almost always a mistake, for example picking a catalogue as a matrix axis when another axis already reaches it through a lookup field. Hover or click the marker to see what was detected, with three ways out: the fix itself, Dismiss (hides that finding for good), and the same Ask Kai affordance as a failure carries, seeded with the nudge's own question. The wording is fixed, not generated, so a nudge costs nothing until you act on it. Dismissals are remembered per browser, and the whole feature has an On/Off toggle under your user settings.
Most nudges are that purple marker: something worth a second look, and fine to carry on with. A finding that will visibly damage the output draws in orange instead, as a warning. A storyboard clip shorter than the template placement it plays is one: the render does not stretch a clip, so the placement sits empty after the video ends, and the finished creative shows it. The colour is the only difference; a warning still lets you carry on, and still offers the fix, Dismiss, and Ask Kai.
Edits and approvals: nothing changes without you
Kai cannot change anything on its own. It has exactly two ways to suggest a change, and both wait for you:
- Field edits. When you ask Kai to rewrite something on screen (a brief field, for example), the new text is applied to the field and saves through the same path as your own typing. The field gets a highlighted border with an "AI changed this" tab attached: Revert restores exactly what was there before, and the dismiss cross hides the tab once you have seen it (typing over the field dismisses it too).
- Actions. For things like rendering the sample, rendering a combination, or renaming a campaign, Kai posts an approval card in the chat. Nothing runs until you press Approve; the action then executes under your own account, with your normal permissions, and lands in the activity feed like any manual action. Dismiss runs nothing. Catalogue work goes the same way: Kai can add up to 25 items to one catalogue in a single card (a longer list arrives as several cards) and correct one existing item, with the card spelling out each change old value to new so you read the whole before-and-after before approving. Items added this way land without a picture: an item shows an image once one is linked to it, from an image link field, a feed, or the asset library on the Catalogues page. It cannot change a catalogue's field definitions or delete anything, and a catalogue edit reaches every campaign using that item, so it is library work, not a change to one campaign. Storyboards work the same way: Kai edits scenes and the shared direction in place through an approval card that shows each change old to new (up to six scenes per card, so a fix that touches neighbouring scenes lands as one whole), and it proposes a full regenerate only when you ask to start over, since that discards every hand edit. The clip plan goes the same way: ask Kai to regroup the scenes into clips or change a clip's length, and the approval card shows the grouping before and after and reminds you that clips whose scenes or length change generate again. Adding, removing and reordering scenes go through an approval card too, as do changing the sample combination, adding or removing a matrix exclusion, and syncing templates from Creatomate. Each card reads the change in names, never identifiers, and nothing runs until you approve it.
A read-only member cannot approve changes, and Kai will say so instead of suggesting them.
When Kai cannot help
If Kai reaches the end of what it can do, it offers to file a report to the Klyo team for you: a bug report, a feature request, or a support request, drafted from the conversation and shown as an approval card so you read the exact words before anything is sent. Edit on the card opens those words, so you can change the kind, the description or the title before it goes; nothing is sent until you approve, and the Organization, campaign, and screen are attached automatically. This is the one thing a read-only member can file, since the person who hits a wall is often the one without write access. See Getting help.
Attachments
Attach images, PDFs, or text files with the paperclip. Kai reads them for that conversation only; they are not stored in your asset library.
Where it runs, and what is recorded
Kai runs Gemini on your Organization's own Google Cloud project, the same project your generation jobs use, so its inference bills to your project, not to Klyo. Until your Organization's project is set up, Kai cannot chat and tells you so.
Each turn is recorded: who asked, the question, Kai's answer (kept up to a length cap), the tools it ran, the token counts, whether it succeeded, and the page it ran from. Turns group into conversations, listed newest first under Chat history (the clock icon in the panel header, or the h key). Reopening one replays what was asked, what Kai did, and what it answered. Once you have a few, a search box appears: it reads what was actually said, Kai's answers as well as your questions, so a phrase you remember from a reply finds the conversation even when the title says nothing about it. A conversation is yours alone: you only ever see your own, never the Organization's.
That record is for reading back and for usage monitoring, not a session Kai resumes from. It keeps nothing between turns on the server, so a reload starts a fresh conversation.

