> ## Documentation Index
> Fetch the complete documentation index at: /docs/llms.txt
> Use this file to discover all available pages before exploring further.

# AI chat

> Ask Fimo to work on your site and steer the result in a conversation.

Use Studio chat for interactive work. Describe the outcome, review the response, and steer the next step in the same conversation.

A normal reply completes the turn. Finishing a reply does not merge, discard,
or publish work; chat takes those actions explicitly when your request calls
for them.

Studio and Slack chat can take up to 1,000 steps per turn to investigate, make changes, and finish. Available credits and time limits can stop a turn earlier.

## Send a request

**1. Describe the outcome**

State what should change and any constraints the result must follow. Refer to the page, content, or file by name
when you can.

**2. Add context**

Attach available site assets or content when the request depends on them. You can also use `@` to reference
supported site context.

**3. Review and continue**

Read the response and inspect the site changes. Send another message to refine the result.

While a turn is running, Studio shows its progress in order: what the agent
thinks, reads and runs. When the answer starts, that progress folds away and
only the answer stays, also when you reload the conversation.

You can stop a running turn from the chat input. In a long conversation, Fimo may compact earlier context so the conversation can continue. The same model that works on your request writes a summary of the earlier part, and your latest request and recent work stay as they are. If it cannot write a usable summary, Fimo removes the oldest context instead. Your visible chat history remains available.

## Project memory

Chat keeps notes that every chat of the project can use. When you give a rule or preference that should last, such as "page titles never use emoji", chat saves it, and later chats follow it without being told again. To change or remove a note, tell chat what is no longer true. A note saved in one chat applies to your other chats from their next message.

Memory belongs to the project, not to a branch, so a note does not wait for a merge or publish. Chat does not save passwords, keys, or other secrets.

Agents and their routines keep notes of their own as well. An agent's chat and all of its routines share the agent's notes, so a routine knows what another one changed, for example a page title it should leave alone for a few weeks. Each routine also keeps notes between its runs, such as the last ranking it saw, so it can compare against them even after a long run history was summarized. A routine that compares the site with its last run, such as Technical SEO, also keeps the file its script wrote, for example the list of pages it saw, as a data file of up to 1 MB in its own notes. Chat never reads that file; only the routine's script does, and search skips it. Anything another chat would need still goes to the project's memory. To make a routine remember something between runs, tell the agent, and it writes what to keep into the routine's instructions. When a routine is deleted, the agent sees its notes first and keeps what still matters; deleting an agent deletes its notes.

Memory is separate from [site knowledge](/docs/cli/knowledge.md), which your team writes. Chat changes site knowledge only when you ask. When you tell chat something that contradicts it, chat saves the change to memory and tells you the site knowledge still says otherwise.

While a reply works, chat shows one step at a time, the one running now, such as a message, a file it reads, or a command it runs; when the reply ends, the steps leave and its last message stays as the answer. Each message shows who sent it: a teammate's name above their message, and above each reply, once its answer is there, **Fimo** or, in an agent's chat, the agent's name. Your own messages carry no name. A centered line opens each day of the conversation: **Today**, **Yesterday**, or the date.

If your connection drops while a reply is streaming, Studio shows
"Reconnecting 1/5" and reattaches to the same reply for about a minute. Nothing
is sent twice: the reply keeps running on Fimo while you are reconnecting.

If Fimo updates while a reply is running, the reply pauses at a safe point and
continues automatically once the update is live. The conversation keeps one
request and one reply, and any changes made before the update carry over. If
Fimo cannot continue the reply, or your connection does not come back, Studio
shows a Retry action so you can run the request again.

If a workspace problem stops a reply, Studio shows "Something went wrong." Select **Retry** to try the request again.

If Fimo loses track of a reply before it finishes, it marks the reply as failed automatically. Reopen the chat to see the error and **Retry**. Any reply text already saved stays in the conversation.

If the AI model sends nothing for 5 minutes, chat stops waiting for it and shows that the reply stopped before it finished. Messages that wait for their turn continue. Select **Retry** to run the request again.

If a reply reaches the model's output limit, Studio marks it as failed and offers **Retry**. It keeps the partial reply and attempts to save completed work in its work session. An incomplete command does not run. The reply does not continue automatically.

## Work in several chats

Chat has its own **Chats** tab in the site header. A site can have
several chats, one per topic, and everyone on the site shares them. The tab
shows how many chats have new activity for you.

A Fimo loader appears while chat history loads. The conversation opens at its
newest messages. Scroll up to read older messages; a small **Loading older
messages…** note appears at the top while they load, keeping your place in the
conversation.

The list on the left shows every chat in two groups, **Agents** above and
**Chats** below, each with the most recently active first. Each row shows its
status and the start of its last message:

* **Working** and a spinner show that a chat is still working on a reply.
* **Done** shows that the last reply has finished.
* One orange dot shows that a chat has unread activity, needs your input, or
  both. Hover over it to see why. Opening the chat clears unread activity for
  you only. A chat needs your input while the agent's question is its last
  message: answer the question, or write anything else, and the dot goes.

The list follows what you do as you do it: a chat moves to the top of its group when you
send it a message, and shows its reply as soon as the reply finishes. Your
teammates see the same change a moment later.

Select **+** to start a clean conversation. A new chat gets its own portrait,
a small face in one shape and color, and suggests a few first requests; select
one to send it. The chat appears in the list, for you and your teammates, when
you send its first message. Chat then names itself from that message.
Use the search icon to find a chat by its name or last message, the filter
icon to show only **Working** or **Done** chats, and the list settings to
change the order or show read, unread, and archived chats.

The buttons above an open chat, or a right-click on a row, keep a chat your
way. These choices are yours only; they do not change the chat for your
teammates:

* **Mark as unread** keeps the dot until you open the chat again.
* **Pin** keeps a chat at the top of the list.
* **Archive** hides a chat from the list. Turn on **Show archived** in the list
  settings to see it again.
* **Mute** stops a chat from showing as unread.

To rename a chat for everyone, double-click its name above the open chat, or
right-click its row and select **Rename**. Type the new name, then press Enter.
Escape keeps the old name.

The settings icon above an open chat opens its settings. There you can change
the chat's portrait (its shape, eyes, mouth, and color) or rename it for everyone, or
delete it.
Deleting stops a running reply first and removes the conversation for everyone
on the site.

Each chat has its own messages and context. When you refer to something
discussed before, such as "what price did we decide in the pricing chat?",
Chat searches the site's chats and answers with the messages it found. It
reads only the chats of this site. Chats can work at the same time; a single
chat runs one reply at a time.

### Open workspaces beside a chat

On a computer, a chat opens with the Preview tab in a panel beside it. The
panel holds tabs: select **+** to open Preview, Content, Assets, Analytics, or
Settings in a new tab, as many times as you need, for example two Analytics
tabs, or a second Preview on another page. Drag a tab sideways to move it, or
press Alt+Shift with the left or right arrow on a focused tab. Each tab
moves on its own and leaves the chat where it is. The first Preview tab shows
the site's main preview, with visual editing; another Preview tab shows the
site only. Each chat keeps its own tabs, for you only, even after a reload. The
panel icon hides the panel and brings it back with its tabs, and a chat you hid
stays that way. A chat holds up to 8 tabs.

The agent knows which tab you are looking at, so you can say "this page" or "fix
the title here". It can also open and move tabs to show you something, such as
the entry it just changed. If you are writing in a tab, it does not take you
away: a dot marks the tab it opened for you. A tab shows the site's current
version, so the agent's work appears there once it is merged.

## Give an agent a job

What agents you get depends on your plan:

| | Free | Starter | Pro |
| - | - | - | - |
| Default agents | SEO and GEO | All | All |
| Their routines | One **Weekly SEO checkup** and one **Weekly AI check** | The detailed routines below | The detailed routines below |
| When a change wakes a routine | Not at all: the checkups run weekly | At most once a day | Right after the change |
| Agents of your own (**New agent**) | Set up only | Set up only | Yes, with routines on a schedule or an event |

On Free, each checkup is one pass over the most important problems, so the
plan's agent-hours last the month, and an agent's settings name the routines
Starter adds, with **See plans**. On Starter, a routine that ran on a change
runs again on the next change a day after that run started at the earliest:
the changes made meanwhile wait, and the next run checks them together. The
routine's next run shows when that is, and the agent's settings say so, with
**See plans**. **Run now** and schedules never wait. In the **+** menu, an
agent your plan does not include shows **Upgrade**, and opens the plans.
On Starter and Pro, a routine that reads the pages that changed (such as
**Technical SEO**, **AI readiness**, **Meta tags**, **Internal linking** or **Translation**) starts 10 minutes after
the last change, so a page saved many times while you edit it is checked once.
Fimo also decides only then whether the changes matter to the routine: a
waiting change that does not leaves the queue, and if none does, no run starts.
Routines that guard the live site (**Broken links** and **Cookie consent**) start right away.
A routine with a long backlog, such as the old addresses of a site you moved
to Fimo, works through it a batch at a time: when a run stops with work left,
the routine runs again about 30 minutes later, and its next run shows when.
It goes on until nothing is left, at most 10 extra runs a day, and stops when
a run gets no further. Pausing or changing the routine ends it.
Moving between plans changes which agents open and which routines run;
agents, routines and past runs stay.

An agent is a chat with a job. It has a name, a one-line summary for your team,
and instructions that Fimo reads at the start of every reply in that chat and
every run of its routines, so the whole conversation stays on that job. Everyone
on the site shares a live agent, like any chat, listed under **Agents** in the
chat list.

Select **+** above the chat list to open its menu:

* **New chat** starts a blank conversation.
* **New agent** opens a new agent's chat at once. The agent asks what it should
  do, with a few one-click answers, then drafts itself: its name, its summary,
  its instructions and its routines, shown together on one card. Ask for
  changes in the chat, or select **Edit** to change them by hand. Select
  **Create agent** when the draft is right: the agent goes live, your team sees
  it, and its routines start. Until then, only you see it, as **New agent**
  with **Setting up…**, its routines do not run, and it changes nothing on your
  site: it can read your site and the web, and work that needs a change first,
  such as a blog your site does not have yet, waits until it is live. It goes
  live only after you have seen its latest draft. When you give no exact time
  for a routine, Fimo picks the minute within the hour you meant, so routines
  do not all start at once; the card shows the time it set. Anyone can set up a draft;
  making it live is part of Pro, so on another plan **Create agent** opens the
  plans.
* Under **Agents**, Fimo offers its default agents: **SEO**, **GEO**,
  **Content**, **Quality** and **Compliance**. A new site starts with SEO and GEO
  in its list, their routines already running; selecting one opens it. Content,
  Quality and Compliance join a site only when you select them, since their routines use credits, and
  so does any default on an older site: the first selection creates the agent
  with its instructions ready and its routines running. It opens at once, and
  its row in the list reads **Setting up…** until its first check is scheduled.
  A site has one chat per default agent, so selecting it again opens the same chat.

In an agent, the message box reads **Message** followed by the agent's name;
above the conversation is the name alone. An empty default agent greets you in
its own words and offers a few requests it can answer, such as **Check my
llms.txt** for GEO. Select a request to send it as your first message.

An agent changes its own instructions when you ask it to ("Don't flag posts
under /news, add that to your instructions"). The chat shows **Updated
instructions** with **View change**, which shows the text before and after.
Open the agent's settings to read or change its summary and instructions for
everyone. Its **Instruction history** keeps every change, who made it and
when, and **Restore previous** puts back the text a change replaced.

Any chat, an agent's or a regular one, can do this. When you ask for work that
will keep coming back, such as covers for new posts that keep arriving without
one, chat does the work and tells you what it did. At the end of its reply, it
then asks once whether the agent whose job that is should do it every time,
without asking you, with **Always do this** and **Only this time** under the
question. When no agent has that job, it asks whether a new agent should. Nothing
waits for your answer. With **Always do this**, that agent gets a routine for it,
and a new agent is created when the question named one. On a plan below Pro, the
question shows too, and **Always do this** opens the plans, because routines of
your own need Pro. With **Only this time**, chat notes it, and no chat asks again.

In any chat you can also ask for a routine, or for an agent, in your own words.
Chat puts a routine on the agent whose job it is, and creates an agent, live at
once, when you ask for one (Pro).

A default agent's name, summary, instructions and portrait are Fimo's and
cannot be changed. A live agent of your own is changed on Pro: on another plan,
its settings are read-only, its routines are paused until you upgrade (**See
plans**), and you can still delete it.

In the list, the filter icon's **Kind** option shows only chats or only agents,
and search finds an agent by its name.

### The SEO agent

The **SEO** agent keeps every page of your site findable on Google. It checks
your site the way a browser shows it, on a working copy, and fixes each
problem where it comes from: a page's title or description, a CMS field, the
layout, the sitemap or robots.txt. It comes with seven routines. Keyword
optimization runs on a schedule, since rankings move without any change on your
site. Each of the others wakes when a change on your site's main branch can
matter to it, before you publish:
Fimo first reads the change with a small model and wakes only the routines it
concerns, so a site where nothing changes costs nothing. Its run then checks
what changed, and the whole site on its first run. Once a week, Technical SEO,
Meta tags and Internal linking also check every page of your site's main
branch, for what no single change shows, such as two pages with the same title
or a page nothing links to.

| Routine | Runs | What it checks |
| - | - | - |
| Technical SEO | When a page is added, moved or removed, or its address or language changes; at launch, when a domain is added, and every Monday | Pages that load, redirects, canonical addresses, the sitemap and robots.txt, language, main heading, what got worse since its last run: pages gone or moved without a redirect, pages out of the sitemap; and, with Search Console, old addresses Google still shows that the site no longer serves |
| Broken links | When a link or a page changes, and on the 1st of every month for links to other sites | Links to your own pages that fail or go through a redirect, and links to other sites |
| Meta tags | When a page's title, description or share preview can change, or a page is added, and every Monday | Titles, descriptions and share previews that are missing, too long for Google, too short, or repeated, and titles that do not end like your other titles |
| Image SEO | When an image is uploaded or changes on a page | Alt text that is missing or is a file name, image file names that say nothing, and images over 200 KB |
| Hreflang | When a language changes, or a page or one of its language versions is added, moved or removed | On a site in several languages, that each version of a page lists the others |
| Internal linking | When a page is added or removed, or the links in its text or the navigation change, and every Monday | Pages no other page links to, pages more than three clicks from the home page, and articles that link to no hub or product page or carry more than eight links |
| Keyword optimization | Every Tuesday | Pages ranking 8th to 20th on Google for searches people make: it writes a title and headings that use those searches, then checks 8 weeks later whether they helped. It also flags pages that lost most of their clicks and two pages competing for the same search |

Keyword optimization works from the searches Google Search Console reports, so
it waits until [Search Console is connected](/docs/studio/integrations.md#google-search-console-and-google-analytics-preview).
Each change is an experiment: it keeps the old words with that day's clicks and
position, and 8 weeks later it tells you whether the page gained or lost. When
the page clearly lost, it puts the old words back.

A fix with one right answer, written from the page's own words, the agent makes
on its own and does not announce: a missing description or alt text, a title
or description Google cuts, shortened from the same words (when the title is
also the page's heading, the shorter one goes in a field only search reads, and
the heading stays), a link whose new
address it has opened and checked, a dead link it removes while keeping its
words, a canonical that leaks a preview address, a link on words your text
already uses to name another page, and a redirect from a page's old address once
the same page is live at a new one. When you rewrote or undid one of its
changes, your words stay. It asks you before writing new words visitors read,
which page wins a search, whether a
page exists, or a redirect with more than one possible target, such as what to
do about a page that disappeared. A price or a legal term can be a commitment
to your customers, so it proposes a change to one and waits for you, and it
never removes a page or changes your robots policy on its own. When you ask it in a chat, it makes those changes too. When a page does not answer or a check
cannot finish, it tries once more and otherwise says the check was incomplete,
instead of guessing.

Images over 200 KB that live in your media library or in your site's own files, the agent fixes on its own: it uploads a file of the site to the media library, then renders the image with the width it is shown at, so Fimo serves a smaller, modern copy. An image on another site's host it cannot resize, so it proposes a smaller export.

Ask the SEO agent, or any chat, to grow your traffic from search, and it follows the same know-how. To rank a page
for a search, it reads what Google shows for that search and rewrites the page's title, description and headings
from what the page says. To add a page per city, integration or competitor, it first checks that people search for
each one and that each page would have facts of its own, shows you the plan, and builds the pages as a CMS
collection with one template once you agree. To earn links, it first checks whether links are what holds the page
back, then finds sites that mention you without a link or link to your competitors, and drafts the messages. You
send every message: the agent never contacts anyone.

Ask where to list your business, and it picks directories for your kind of business: software and AI directories
and review sites for a product, Google Business Profile and local directories for a shop or a trade. It puts first
the directories AI assistants cite for your questions and those that already list your competitors, and checks
that your site is ready for them, such as a pricing page or your address on the site. It writes your tagline and
descriptions from what your site says, and keeps them with a list of directories to track in the site knowledge.
You create the accounts and submit every listing: the agent never submits anything.

### The GEO agent

The **GEO** agent keeps your pages easy for AI assistants such as ChatGPT,
Claude and Perplexity to read, trust and quote. It checks your site the same
way the SEO agent does, on a working copy as a browser shows it, and also reads
the text each page sends before JavaScript runs, which is all most AI crawlers
see. It comes with four routines:

| Routine | Runs | What it checks |
| - | - | - |
| AI readiness | When llms.txt, robots.txt, what a page serves before JavaScript or its headings can change | Your llms.txt, the text each page serves without JavaScript, page landmarks and heading levels |
| Structured data | When a page's structured data can change, or a page that needs it is added | That each page's structured data is valid and fits it: Organization and WebSite on the home page, Article on articles, Product and FAQ where they fit |
| AI citation optimization | When a content page is added or largely rewritten | Pages that do not open with a direct answer, and long pages whose headings ask no question |
| AI visibility | Once a week | How often ChatGPT, Gemini, Perplexity and Google AI Mode name and cite your site when asked the questions your customers ask |

On its own, and without announcing it, the agent writes a missing llms.txt and
keeps it in step with your pages and their titles and descriptions, adds Organization, WebSite and Article
structured data from what your pages and CMS entries already say,
and fixes page landmarks and heading levels without changing a word. It never
invents a fact: no logo, address, author or rating your site does not show. It
asks you before changing what visitors read: an opening answer or new
headings, FAQ or product structured data, or how your pages are rendered. It
never changes who may crawl your site in robots.txt, AI crawlers included; ask
it and it tells you which crawlers are kept out. A price or a claim can be a
commitment to your customers, so it asks before changing one.

AI visibility asks about 20 questions your customers ask, which it writes once
from your pages and keeps in the agent's memory, plus five trial questions that
rotate. You change the questions in the agent's chat. An assistant can answer
the same question differently each time, so the agent asks ChatGPT, Gemini and
Google AI Mode each question three times and records how often their answers
name and cite your site, such as named in 2 of 3 answers. Perplexity gives the
same answer each time, so it asks Perplexity once. An empty answer counts as no
answer, never as a loss. The agent reports only a clear change: your site named
or cited where it was not, or no longer named where it was. When AI citation
optimization changes a page, the agent measures that page's questions for the
next 4 weeks. To answer, ChatGPT first runs its own web searches: the agent
keeps them, checks whether your site is in Google's top 10 for each, and lists
them under the question, such as "To answer, ChatGPT searched: 'headless cms
nextjs agency' → your site is not in the top 10". The searches your site
misses become ideas for new pages. AI visibility changes nothing on your site.

### The Content agent

The **Content** agent keeps what your site says true, and your CMS entries
complete in every language your site serves. It reads your pages the same way
the SEO agent does, on a working copy as a browser shows them, and works in the
CMS for translations. It comes with seven routines:

| Routine | Runs | What it checks |
| - | - | - |
| Content refresh | The 2nd of every month, and when an edit changes a fact other pages also state | Facts two pages state differently, such as a price, a plan or a supported framework; past years, or years still to come, written as the present, dates that are not dates, events and offers whose date has passed, "coming soon" text, product names you renamed, and pages losing visitors in your analytics |
| Content lifecycle | When a content page is added, and every three months | Pages too thin to stand alone, pages that repeat another page, and pages nothing links to that are also thin or out of date |
| Translation | When text visitors read changes in your source language, or a language is added | On a site in several languages, CMS entries missing in a language, or whose source changed after they were translated |
| Editable copy | Off until you switch it on; then when your code changes text visitors read | Headings, buttons, links and other words typed in your code, which Studio shows as "Nothing to edit" |
| Competitors | On the 1st of January, April, July and October | The sites that win the searches you want, what else they rank for, and the searches where your site is close, 8th to 20th |
| Propose new content | On the 2nd of every month | The searches worth winning next that no page of your site answers yet, from your competitors, your own searches and the searches ChatGPT runs to answer your customers |
| Writing | When you pick a page or ask for one | Writes the new page you asked for, comparisons included |

Propose new content works without Search Console, from the topics your main
pages target, and finds more with it. It proposes at most five pages, each with
its main search, how often people search for it, and the competitor pages that
win it, and asks you which to write. You can pick several. Writing starts as soon
as you answer and writes them one page at a time. Propose new content changes
nothing on its own. Writing never publishes its drafts.

On its own, and without announcing it, the agent translates missing and
outdated CMS entries in your site's tone, keeping names, addresses, dates and
images as they are, and keeps a copyright year in your code current. Its
translations wait on your working copy like any other change, until you
publish. It asks you before changing any other sentence a visitor reads, and
quotes the exact words it would use.

When two pages state a fact differently, such as one price on your pricing page
and another in an FAQ, Content refresh works out which value is current: when
each value was written, then which page owns the fact (your pricing page owns
prices). When the evidence agrees, it corrects every page that says otherwise,
merges the fix so your main preview shows it, and tells you in one line. When
the evidence disagrees, such as a new price on one page that your pricing page
does not show yet, it asks you one question and changes nothing. A price or a
legal term can be a commitment to your customers, so it changes one only when it
is sure. It keeps each fact, its current value and the page that owns it in the
agent's memory, so the Writing routine states it the same way, and each month it
reads again only the pages that changed or state a known fact. It fixes your
source language and leaves your translations to Translation. It never removes a page, merges two or
adds a redirect without you: it proposes which page to merge, redirect or
retire, and where; once you choose, it makes the change and the redirect. It
asks before translating a price or a legal page. On a site in one language, Translation does nothing.

**Editable copy** is off by default, because it changes your site's code:
switch it on in the routine's settings, or use **Run now** once to move the
text your site already has. It moves single sentences into labels, so your
team can change them in Studio, and merges only when every page it touched
shows the same words as before. Lists such as questions, testimonials or
logos go to the CMS, so you can also add, remove and reorder their items: it
adds the field to the page's Single, or a collection when several pages show
the list. Plan cards keep their prices in your code, and their words become
labels. When a Markdown copy of the page or its search data uses the same
words, it makes them read the same labels or entries too. Prices, allowances
and rates shown on their own, and sentences with a link or emphasis inside
them, stay in your code.

Competitors keeps its list in your site knowledge, so every agent writes and
ranks against the same names, and reports only a new competitor or one that
passed your site on a search you want. Writing writes the pages you pick from
Propose new content, or any other page you ask the agent for. It reads the pages
that win the search for what they cover, never to copy them, and takes every fact from
your site, your site knowledge or what you told it. A comparison names another
product only with facts from its own public pages. It builds the page where
your site keeps pages like it, in a work session, and asks you to review it:
it never publishes.

### The Quality agent

The **Quality** agent keeps every page usable by every visitor: with a
keyboard, with a screen reader, and on a phone. It checks your site the way a
browser shows it, measures each page, and opens a sample of pages again at a
phone's width. It comes with three routines:

| Routine | Runs | What it checks |
| - | - | - |
| Accessibility | When a page's markup, colors, headings, links or fields can change | Text below WCAG AA contrast, heading levels, links, buttons and fields without a name, keyboard focus and tab order, the page language |
| Mobile optimization | When a page's layout, styles or sizes can change | A viewport that blocks zoom, pages wider than a phone, tap targets under 24 pixels, and text too small to read |
| Page speed | On the 3rd of every month | How fast your home page and one page of each template load on a phone, measured with Lighthouse, and what slows down a page that got slower or takes more than 2.5 seconds to show its main content |

On its own, the agent names a link, button or field from the words your page
already shows for it, fixes heading levels and tab order, lets visitors zoom
again, keeps images and tables inside a phone's screen, gives small tap targets
24 × 24 pixels, and darkens text that is too light to a shade your palette
already has. It asks you before any other change to a color, a size or a
layout, since how your site looks is yours, and proposes the color or size it
would use. Image alt text stays with the SEO
agent.

### The Compliance agent

The **Compliance** agent keeps what your site says in line with your own rules,
and what it loads and collects in line with what it tells visitors. It comes
with three routines:

| Routine | Runs | What it checks |
| - | - | - |
| Brand compliance | When changed text breaks a brand rule in your site knowledge | Words, terms, claims and voice on the pages and entries that changed, against your brand rules |
| Cookie consent | When a script, tracker, embed or the consent banner changes, and when a domain is added | On a first visit with no choice made: cookies and trackers that load too early, a missing banner, no way to refuse |
| Privacy and legal pages | When a form or a service from another site changes, and once a year | A privacy page exists, names what your forms collect and the services the site loads, and was reviewed recently |

Brand compliance reads your rules from your [site knowledge](/docs/cli/knowledge.md),
your project's `AGENTS.md` and what you told the agent before: write them there
("say members, not users", "we never promise results"). On its own, it applies
your rules where the meaning stays: a term they replace, a claim they ban that
the sentence does not need, the plain words or style they ask for, and spelling.
It proposes a sentence whose meaning would change with the words it would use,
and asks for a source only for a figure about the outside world your rules want
sourced, never for your own people's quotes. It runs on a smaller, cheaper model, since it
compares text with rules rather than writing.

The cookie and privacy checks open your site the way a first visitor sees it,
before any choice, and record what loads. The agent proposes every change to
your consent setup and to legal pages, with placeholders for details only you
know, and never changes them on its own. It is not a lawyer: it tells you what
it found and what your pages say, not whether a law is met.

### Routines

A routine is a task an agent runs on its own, by hand, on a schedule, when
something happens in the project, or when you answer it. Each routine works in a thread of its own, so a run
sees what its earlier runs found, and the agent's chat stays a conversation
between people and the agent. Routines are the agent's team: a run reports
to the agent, never to you, and only when the agent should know something.
The agent decides what reaches the chat: nothing, one short message, or a
question when you must decide. A question first says what happened, what the
agent proposes and what it risks, then asks one short question for each thing
to decide. A run that finds nothing, or does its work
with nothing to add, reports nothing.

A default agent's routines are Fimo's: they follow Fimo's default
instructions, so when Fimo improves them, every site's routines run the new
ones. You can switch each one off and on, or delete it, and a default routine
you delete stays deleted; nothing else changes them. A routine Fimo retires
from a default agent stops running and leaves its list.

Routines of your own need Pro. A default agent can also run routines your team
adds, beside Fimo's, and so can an agent of your own. To add or change one,
ask the agent in its chat: "check the titles every Monday at 9:00", "run this
after each publish", "pause the link sweep". The agent creates, changes, runs
and deletes its routines, and tells you in one sentence when a routine runs.

Fimo can start a routine after each publish
of the site, or when content changes on the main branch (by content type,
created, updated or deleted, locale, or the fields that changed). Fimo can
also check the entry's current values ("when a product's price goes over
100", "when a category's status changes to archived") and ask a yes/no question
about what the content says ("when a blog post mentions Contentful or
Sanity"). For "a competitor", Fimo uses the names you give or the ones in the
site knowledge; when neither names them, the agent asks you to. A run started
by an uncertain answer says so, so the agent checks before it acts. A
routine can also start when a media file is uploaded ("when an image is
uploaded"), when the site's code changes through a deploy or a merge ("when
the styles change", by file path), or when another routine of the same agent
finishes ("when the link sweep finds broken links", optionally with a
question about what it reported). What a routine changes, publishes or
reports can start the agent's other routines, in a chain of any length. A
routine runs at most once for each change that starts a chain, however many
routines that change leads to, so two routines never start each other in a
loop and routines that react to each other's work never multiply. A new
change by you, a run by hand or on a schedule starts a new chain. A routine
can also start when a visitor submits a form ("when someone submits the contact
form", optionally with a question about the answers, such as "when a big
company asks for a demo"), when a form or a content type changes, when a
branch is merged into main, when a locale is added, removed or made the
default, when a publish of the site fails, or when a domain is added or
removed. A routine can also watch the prices on a page of another web site
("tell me when [https://example.com/pricing](https://example.com/pricing) changes its prices"). Fimo reads
the page when the trigger is set and checks it once a day; a price change
must show on three reads in a row before the routine runs, so a page that
tests two prices at random does not start it. The run's message lists each
plan with its old and new price. The routine's page says whether the watch
is **OK**, **Needs repair** (the page changed shape), **Blocked** (the site
refuses Fimo) or **Unstable** (the prices keep changing), and when it last
checked. A project can watch up to 10 pages. When Fimo
cannot follow what you asked, such as comparing old and new values ("when the
price goes up by 10%"), the agent tells you why and what it can do instead. For what Fimo cannot see as an
event, such as traffic, rankings or errors, the agent offers
a schedule instead: the routine runs at set times, checks it, and stops when
there is nothing to do.

Open the agent's settings to see its **Routines**: each card shows the
routine's name, when it runs (the title of its event trigger, such as **When
an image changes**, a schedule such as **Every Monday at 08:00**, or **By
hand**), its next run, its last run and how it ended, and an **Active** switch.
A new site's default agents come with their routines on: most wake on changes
(from five minutes after the site is created, so its setup starts no run), and the few with a schedule run at their own time of night; until a scheduled
routine first runs, the agent's row in the list says when its first check is. Monthly or rarer routines start about ten minutes after you open their agent on a published site, or on the first publish of a new site. Later runs follow their normal schedule. Turn the **Active** switch off to pause
a routine. Select a card to open the routine's page. You cannot edit a routine
there:

* **What it does**: one or two plain sentences on what the routine does for
  the site. Under it, **Instructions** opens the task the agent reads, sent as
  the message that starts every run. A routine created before descriptions
  existed shows its **Instructions** instead.
* **Model**: the model its runs use. Each routine starts on the smallest model
  that does its work well: Haiku 5.5, Sonnet 5.5 or Opus 5.5, which is marked
  as the default. Ask the agent to run it on another model.
* **Triggers**: **By hand** is always there; **Run now** starts a run right
  away and opens it. **Schedule** says when it runs, when it has one; times
  follow the timezone shown, and a routine runs at most every 15 minutes.
  The event trigger, when it has one, gets a short title from Fimo based on the words it was set
  with, such as **After each publish**, and shows those words. The run's message lists what happened: the publication, or each entry
  that changed and which fields. Content changes that routines make never
  start a routine. Events that come in while a run is busy wait, then run
  together in one next run, which lists each of them; the run shows how many
  events it covered. A very large burst, such as a bulk import, runs in
  several runs, in order.
* **Runs**: every run, newest first, two lines each: how it ended, when it
  started and what started it (**On schedule**, **On event**, or **By hand**, with the name
  of the person or **agent** whose message started it), then the
  first sentence of what it told the agent. **Quiet** (nothing to report),
  **Sent to agent** (the agent was told something), **Asked for a decision**
  (the agent was told you must decide), **Incomplete** (the run could not
  check what it was asked to, such as a site it could not read; the second
  line says why, and the agent is not told), or **Failed** and **Stopped**,
  marked in red. Select one to open it.
* The **Active** switch in the header pauses the schedule and **When something
  happens**; **Run now** still works while paused. Deleting a routine (ask the
  agent) stops a run in progress, then removes the routine and its thread;
  what the agent said in the chat stays.

A routine starts from its schedule or an event only when your organization has
enough credits for one of its usual runs, and at least 300. Otherwise that slot or
event is skipped, and the next one runs once credits are available. If your
organization runs out of credits during a run, the routine's runs stop and wait.
Add credits, then select **Run now** to start it again.

Routine runs also use your plan's agent-hours: each run counts from its start
to its end. Chats in Studio do not. **Billing** shows the hours used this
period, and each run on a routine's page shows how long it took and the credits
it spent.

On Starter and Pro, routines keep running past the included agent-hours
when a billing admin has set an extra usage budget: each extra hour costs \$0.80,
paid from that budget (see [Billing and credits](/docs/collaboration/billing-and-credits.md)).

Once the included agent-hours, and any extra usage budget, are used, no routine
runs: schedules, events and **Run now** start nothing, and a run still going
stops 15 minutes later. Studio
shows **Routines paused** under the chat list and in the agent's settings, with
the date the routines run again, at the start of the next period, and
**Upgrade** to resume them sooner. The owners and admins get an email at 75% of
the included hours and when they are used up; they can turn it off in
**Account** > **Notifications**. No run takes longer than 2 hours.

When a routine reports, the agent reads it and takes a turn in its chat, like
any reply; reports that arrive together are read in one turn. Most reports
need no word from it: the chat stays as it was, and the agent's row stays
read. When you should know, the agent says it once, in a sentence or two,
folding several reports into one message. When you must decide, the agent asks
with a form, and the list reads **Needs you** while that question is the last
message in the chat. Answer
in the chat: the agent passes your decision to the routine, which runs again
with it. To stop a kind of question for good, say so when you answer, such as
"do this on your own from now on" or "don't ask me this again": the agent
saves the rule in its notes, and none of its routines asks it again. A rule never
covers your robots policy, a price, a legal page or removing a page. A message you send from the routine page goes to that routine's next
run; it does not answer the agent's question, which stays open in the chat. Runs with nothing to
report fold into one line at the end of the chat, such as **3 runs since Mon
13 Oct**; the line starts over once the agent says something. In the list, an
agent reads **Ran Tue** with its last words, **Quiet** with how many runs
since when while its runs find nothing, and **First check Mon 09:00** before
its first run. A routine whose runs keep failing, or that is out of credits,
is reported to the agent once, so the agent can tell you once.

A run opened from the routine page shows the routine's thread as it ran: the
task, what it checked and changed, written as it went, and what it told the
agent. It is read-only; to reply, go back to the routine page or write to the
agent.

## Send messages while a reply is in progress

You do not have to wait for a reply to finish. Write the next message and send
it: it waits at the end of the chat, dimmed and marked **Queued**. When the
reply in progress ends, chat answers the waiting messages one at a time, in the
order they were sent. Each one gets its own reply.

The queue belongs to the chat, so everyone on the site sees the same waiting
messages, each with the name of the person who sent it. A waiting message runs
with the model and the environment it was sent with.

* **Remove a waiting message.** Select the cross next to it. Anyone who can
  write in the chat can remove any waiting message. A message that has started
  can no longer be removed.
* **Stop.** The stop button stops the reply in progress and the queue. The
  waiting messages stay where they are. Select the play button in the message box to continue, or send
  a new message: it goes behind the messages that already wait.
* **Questions.** When a reply ends with a question for you and messages wait,
  chat waits 30 seconds for your answer. Anything you send in that time runs
  first. If nobody answers, the waiting messages
  continue and the question stays open, so you can still answer it later.

If your organization runs out of credits, the queue stops and the waiting
messages stay. Add credits, then select the play button in the message box.

The open chat is part of the page address, so a reload or a shared link opens
the same chat. A link to a chat that no longer exists opens the most recently
active chat instead.

## Answer a question from chat

When your request has enough direction, chat starts the work without asking you to confirm routine details. If one missing answer prevents it from continuing safely, chat shows a short form and waits.

A question can follow work already completed in the turn. Chat attempts to
save that progress before waiting, and your answer continues the conversation.

The form opens in the conversation, under the message that asks it, one step at a time. **Previous** and **Next** move between steps, and every step that offers choices has an optional note field under them.

You have two ways to answer:

* **Submit the form.** This sends your selections on their own. Anything you have started typing in the message box stays there, unsent.
* **Send from the message box.** Your message goes out together with whatever you have already picked in the form, as one turn. If you have picked nothing, it is an ordinary message, and the question stays open. The steps you have not answered yet stay open: open the form again to answer them, and it shows only those, with how many you already answered.

When you send a message that does not answer the question, the question folds to one line with an orange **?** where it was asked. Select it to open it there. It stays open until you answer it, fold it again, or chat closes it, so you can answer it later, even days later. When you answer a form, chat also gets back its own reason for asking, such as which routine waits on your answer, so it still knows what to do next after a long conversation. To add context to your choice, write it in the note field under the choices; Submit sends the choice and the note together. Your answer is sent as a new message at the end of the chat, and once every step of a form is answered, it shows a gray check next to its title. When a routine asks again before you answered, its earlier question stays unanswered, folded where it was asked.

Chat keeps its questions current, including a card that waits for you to connect an integration. When what it asks changes, chat updates the question instead of asking again: the earlier version becomes one gray **Question updated** line, and only the latest version, further down the chat, takes an answer. When you settle a question in your own words, or it no longer applies, chat closes it: it becomes one gray **Question closed** line, like a stopped reply. A closed question takes no answer, and closing it never answers for you. A reply in which chat only acted, such as closing a question or starting a routine, without saying anything, shows nothing in the chat. Everyone in the chat sees the change as it happens.

In a single-line answer field, press Enter to move to the next question or submit the last answer. Empty answers stay in the form. In a multiline field, Enter adds a new line; select **Next** or **Submit** when you are ready.

Both appear in the chat history, so you can review them after a reload. A message sent with answers keeps your own words and the answers side by side.

Select **Minimize** to fold the form down to a single line in the conversation. It cannot be dismissed, because the work is waiting on it. Select the line, or press Enter with it focused, to open the form again. Your answers and the step you were on are kept.

## Review work chat left for you

When chat saves work for you to look at, a strip appears directly above the message box. It stays there while anything is waiting, however far you have scrolled.

Collapsed, it names the work: **Review Pricing page** for one review, or **2 reviews waiting** when several are open. Select it to list each one with what chat says it changed, **View changes**, and **Open preview**.

The conversation keeps a one line record where the work was saved, with its own **View changes** link.

Nothing on the strip decides anything. Opening a review does not approve it, and nothing merges or publishes from here. Decide on the review page, or ask for a change in the message box, which stays usable throughout. Closing the strip changes nothing about the saved work.

A review leaves the strip once it has been merged or discarded.

## Keep chatting while long work runs in the background

Some requests take a long time: translate every page, check many pages of another site, import many entries. Chat can run that work in the background and keep talking to you in the meantime. It does so when you say you will not wait, for example "no rush", "I'll keep working meanwhile" or "ping me when it's done", or when the work is long and your next question does not need its result. You can also ask for it: "do this in the background".

While background work runs, a strip above the message box names it: the task name and how long it has worked, or **2 tasks working** when there are several. Select it to see each task, and select the cross next to a task to stop it. The message box stays usable, and each message you send gets its own reply.

When a task ends, chat tells you in the conversation what it did and what you should review. Its changes are saved in a work session of their own, and nothing merges or publishes until you decide. A chat runs up to three background tasks at a time. Deleting the chat stops its tasks.

## Choose a model

When model choices are enabled for your site, use the picker beside the message box to choose **Auto** or a manual model. **Auto** selects a model for your request. Manual choices include **Claude Opus 5.5** and **GPT-6 Astra** for demanding reasoning and coding work. **Claude Sonnet 5.5**, **GPT-6.1 Sol** and **GPT-6 Sol** are options for everyday implementation and **GPT-6 Luna** and **Claude Haiku 5.5** for inexpensive small changes. The models shown in the picker depend on your site’s **Settings** → **Advanced settings** → **Models** configuration.

On a phone, the picker shows only the model icon. Point to it to read the model name, or select it to change the model.

Site members who can manage the site can open **Settings** → **Advanced settings** → **Models** to choose which manual models everyone can use. Showing the picker is a personal browser setting, while the available model choices apply to the whole site.

Chat may present site content, comparisons, assets, and analytics as interactive tables or visual summaries, show a page of your site live, show how a page appears in a Google search, with links that open it in the preview, and show a proposed rewrite next to the current words before anything changes. These blocks use information available in the site. If the requested data or asset is unavailable, chat tells you instead of showing an estimate.

## Use connected tools

Chat can use the [integrations](/docs/studio/integrations.md) turned on for the site. If a request needs an integration that is not on, chat says which integration would help. An organization admin connects it in **Integrations** and gives the site access, then you can ask again. Chat does not offer a connect button yet.

## Check remaining credits

If you have permission to view billing, your remaining credits appear beside the message box, including on phones. Select the balance to see the breakdown of monthly, purchased, and earned credits.

When your organization's credits are about to run out during a reply, chat stops starting new work, saves what it can, and tells you what is done and what remains. If the credits run out before the reply finishes, the message box says so. Add credits, then send the request again to continue.

## Handle overlapping changes

Studio chat works on changes in an isolated work session. Saving keeps that work available for a later message; merging applies it to the branch you are viewing. For an ordinary change request, chat should merge the result when it is ready.

Media Library reads follow the branch being worked on, including assets added to an unmerged proposal. Chat can delegate part of the work to another agent in that same branch or let it work separately. Files attached to the conversation remain available as conversation context.

Chat no longer delegates design requests to a separate Design Director. Describe the changes you want in the conversation; previous design briefs remain in your chat history.

Ask chat to keep work separate when you want to compare proposals or review changes before applying them. You can return to the same conversation to continue. Successful workspace use keeps temporary sessions available for at least another 30 days, unless an existing deadline is later. Inspecting session details or receiving reminders does not extend that deadline. Ask explicitly for a lasting branch or proposal before starting when you need work kept without automatic expiry.

Deleting a chat removes its messages without merging or discarding saved sessions, reviews, or unresolved merge conflicts. Temporary sessions keep their existing expiry.

Automatic expiry cleanup waits while an active agent run is using a session. Once the run finishes, an expired temporary session becomes eligible for cleanup again.

Chat attempts to save progress when a turn ends, including after an error or cancellation. This is not a guarantee: if its working environment disappears before a save succeeds, the code since the last successful save can be lost.

If work overlaps with newer changes, chat can inspect and resolve conflicts. For each conflicting file, it sees the newer changes, who made them and why, such as a fix another agent routine already merged. Chat keeps those changes and combines them with its own. It asks you only when the two changes contradict each other. Submitting a resolution starts another merge attempt; the changes are applied only when that attempt succeeds.

Each change chat saves or merges says why it was made, and a routine's changes name the routine. Teammates and agents that later change the same files read that history.

If more changes arrive before the retry, chat handles the new conflicts in the same way. A successful resolution may finish the merge without another merge request. If the merge succeeds but cleanup fails, retrying finishes cleanup rather than applying the work again. Asking to discard at that point does not undo changes already merged.

Resolving or merging site changes does not publish the live website. Ask
to publish when you want the changes live, or configure standing site
instructions that name when publication is authorized. Without an applicable
instruction, chat does not publish. Your current request can override standing
instructions. Chat checks your publish
permission and reports the publication result, including a failure if the
attempt did not succeed. You can ask it to inspect publication status or logs.

## Use automation for repeatable work

Give an [agent](#give-an-agent-a-job) a routine when the same job should run again by hand or on a schedule. Use a [scheduled command](/docs/agents/schedules.md) when one existing command should run on a cron.

## What's next

> [card] [Integrations](/docs/studio/integrations.md)
>
> Give chat access to external tools.

> [card] [Scheduled commands](/docs/agents/schedules.md)
>
> Run one site command on a recurring cron.

> [card] [Automate your site](/docs/automate/overview.md)
>
> Compare Fimo's automation options.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.