fimo 2.9.0 → 2.10.0-staging.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -39,7 +39,7 @@ Pick by task:
39
39
  - Writing code — schemas/forms, generated clients, labels, framework adapters, rendering primitives → `fimo-code`
40
40
  - Site creation, local setup, cloning, and CLI workflows — init, push, deploy, sync, labels, domains, analytics → `fimo-cli`
41
41
  - AI agent setup — connect Claude Code, Codex, Cursor, or another agent → `fimo-cli` (`references/agent-setup.md`)
42
- - Remote MCP integrations — add, inspect, search, or run an MCP server → `fimo-cli` (`references/mcp.md`)
42
+ - Integrations — Search Console, Slack, or an MCP server: add, inspect, search, or run its tools → `fimo-cli` (`references/integrations.md`)
43
43
  - The Fimo Studio dashboard / web app UI → `fimo-studio`
44
44
  - Migrating an existing site into Fimo → `fimo-migration`
45
45
 
@@ -100,11 +100,11 @@ Load the matching reference when the user's request fires its trigger. Recipes t
100
100
  - "Deploy / publish / go live / push my changes" → `references/deploy.md`
101
101
  - "Add a redirect / security headers / CSP / HSTS / clean URLs / trailing slash" → `references/hosting.md`
102
102
  - "Get the preview URL / open the preview / what's the URL for this Branch / refresh the preview link / I just want to see the site / the preview URL stopped working" → `references/preview.md`
103
- - "Check the site in a browser / is my site accessible / a11y or WCAG check / measure LCP or Web Vitals / why is the page slow / inspect network requests or console errors / Lighthouse score" → `references/site-checks.md`
103
+ - "Check the site in a browser / SEO check / broken links / missing titles, descriptions or alt text / `fimo site check` / is my site accessible / a11y or WCAG check / measure LCP or Web Vitals / why is the page slow / inspect network requests or console errors / Lighthouse score" → `references/site-checks.md`
104
104
  - "Schedule a command / cron / nightly publish / recurring checks / `fimo schedules`" → `references/schedules.md`
105
105
  - "Set env vars / configure API keys / add project secrets / local `.env.local` / `fimo vars` / `fimo secrets`" → `references/project-vars-and-secrets.md`
106
106
  - "React to form submissions / publish changes / analytics reports / media activity / send events to Resend, Slack, GitHub, Zapier, or an HTTP endpoint / configure or debug outbound webhooks" → `references/webhooks.md`
107
- - "Enable provider tools / integrations / API key connection for a provider / agent integration access" → `references/integrations.md`
107
+ - "Use a connected app / Google Search Console / clicks, impressions, rankings, keywords from Google / Google Analytics / GA4 users, sessions, traffic sources, key events / enable provider tools / integrations / add, inspect, search, or run an MCP server / `fimo integrations` or `fimo mcp`" → `references/integrations.md`
108
108
  - "Firecrawl / scrape a public website / competitor research / agent web research" → `references/integrations.md` **+ load `references/integrations/firecrawl.md`**
109
109
  - "Check credits / credit balance / can I keep using AI / billing credits / running low / how many credits are left" → `references/credits.md`
110
110
  - "List history / create a restore point / recover content and code / restore a previous version / snapshot usage or retention" → `references/history.md`
@@ -117,7 +117,6 @@ Load the matching reference when the user's request fires its trigger. Recipes t
117
117
  - "Invite a collaborator / add Marc / share with client" → `references/invite.md`
118
118
  - "Login / log out / who am I / switch organization" → `references/account.md` — note: switching **org** is `fimo orgs switch`; bare `fimo switch` changes the active **Fimo Branch** (see `references/branches.md`)
119
119
  - "Install Fimo for my agent / fimo skills install / set up Claude Code, Codex, or Cursor for Fimo" → `references/agent-setup.md`
120
- - "Add, inspect, search, or run a remote MCP server / use `fimo mcp`" → `references/mcp.md`
121
120
  - "Refresh / update installed Fimo skills / fimo skills sync / agent missing the latest Fimo conventions" → `references/agent-setup.md`
122
121
  - "Update / upgrade the project's fimo packages / move to a new Fimo release / `fimo update`" → `references/update.md`. Never edit `fimo` or `fimo-*` versions directly in `package.json`; `fimo update` keeps package pins and codemods aligned.
123
122
  - "Report a Fimo problem or blocking feature request / contact Fimo support / a Fimo API or command keeps failing / a documented argument is rejected / a supported operation needs an undocumented workaround / a Fimo API is abnormally slow / a confirmed missing capability blocks completion or forces a fragile or heavily manual workaround" → `references/support.md`
@@ -51,7 +51,7 @@ Global flags: `--project <id>` / `-C, --cwd <dir>` for project resolution, `--or
51
51
  When a user says "I want to change my website's URL," ask which case fits:
52
52
 
53
53
  - **"It's fine as-is, just nicer"** → `rename-default` or `suggest-default`. Free, instant, no DNS.
54
- - **"I own example.com already"** → `add example.com`. Pay as you go or higher. They configure CNAME at their registrar.
54
+ - **"I own example.com already"** → `add example.com`. Starter or higher. They configure CNAME at their registrar.
55
55
  - **"I want to buy a domain"** → `search` → `pricing` → `buy`. The registered-domains feature flag and an eligible plan must be on (the flag is not enabled in every environment).
56
56
 
57
57
  If they aren't sure, run `fimo domains suggest-default` first — it's free, takes one step, and a good fallback if they don't want to commit to a domain purchase.
@@ -60,7 +60,7 @@ If they aren't sure, run `fimo domains suggest-default` first — it's free, tak
60
60
 
61
61
  After the automatic first-preview deploy on a newly created project, offer a cleaner free `*.fimo.site` URL before the first public publish when there is no custom domain and the current default slug still looks generated or was never explicitly chosen. Choosing it now lets the first public launch use the clean URL. Skip the offer if the user already chose the default slug, attached a custom domain, or declined.
62
62
 
63
- The default URL is free and needs no DNS. A custom domain uses the Pay as you go (or higher) workflow above. A default slug can be reserved before publication, but it returns "Project Not Found" until the site is published. Renaming changes the address that will become public, so never silently claim a suggestion:
63
+ The default URL is free and needs no DNS. A custom domain needs Starter or higher, as above. A default slug can be reserved before publication, but it returns "Project Not Found" until the site is published. Renaming changes the address that will become public, so never silently claim a suggestion:
64
64
 
65
65
  1. Run `fimo domains suggest-default --base "<brand>" --json` to get candidates.
66
66
  2. Show the candidates and ask the user to choose one explicitly.
@@ -72,7 +72,7 @@ Choosing the slug does not publish the site. The first successful `fimo deploy -
72
72
 
73
73
  The CLI never charges directly. Two distinct money paths:
74
74
 
75
- 1. **Pay as you go or higher** — gates custom-domain operations. A valid card activates Pay as you go through the Fimo web app (Hyperline-hosted checkout). When a Free user runs a gated command they get a 403 with the billing URL; surface it as-is to the user.
75
+ 1. **Starter or higher** — gates custom-domain operations. Starter or Pro is chosen in the Fimo web app (Hyperline-hosted checkout). Organizations that still have Pay as you go keep custom domains. When a Free user runs a gated command they get a 403 with the billing URL; surface it as-is to the user.
76
76
  2. **Domain registration** — `fimo domains buy` creates a Hyperline invoice with `payment_method_strategy: 'external'` and returns a `checkoutUrl`. The user opens that URL in a browser to pay. **No money moves until they pay the invoice.** That's why `--yes` on `buy` is safe: it queues an invoice; the human still has to consent at checkout.
77
77
 
78
78
  Domain prices come from name.com via the registrar reseller. They vary by TLD and can change. Pricing is in USD (cents in the API, formatted as dollars in CLI output).
@@ -121,7 +121,7 @@ Propagation: typically 15–30 minutes, up to 48 hours rarely.
121
121
  ## Common errors
122
122
 
123
123
  - **"Project Not Found" on a new URL or custom domain.** The route exists but the site was never published — run `fimo deploy --publish`.
124
- - **"Custom domains require Pay as you go or higher."** — add a card at `/app/billing`, then retry. Free users can still run `list`, `rename-default`, `suggest-default`, `search`, and `pricing`.
124
+ - **"Custom domains require Starter or higher."** — choose a plan at `/app/billing`, then retry. Free users can still run `list`, `rename-default`, `suggest-default`, `search`, and `pricing`.
125
125
  - **"Domain purchase is not enabled on this account."** — the registered-domains feature flag is off on this API instance. Contact support.
126
126
  - **"This URL is not available."** — slug or hostname collides with another project or is reserved.
127
127
  - **"That's a Fimo-owned domain."** — user tried `add <something>.fimo.site`. Use `rename-default` instead.
@@ -32,7 +32,7 @@ fimo history list --all-pages
32
32
  ```
33
33
 
34
34
  The list also reports compressed snapshot usage and the current retention period. Restore points expire after 1 day on
35
- Free, 30 days on Pay as you go, or 90 days on Premium and Pro. The expiry is fixed when each point is created.
35
+ Free, 30 days on Starter and Pay as you go, or 90 days on Premium and Pro. The expiry is fixed when each point is created.
36
36
 
37
37
  ## Restore safety
38
38
 
@@ -1,94 +1,73 @@
1
1
  # Integrations
2
2
 
3
- Use integrations to enable external services for a Fimo site. Firecrawl and Fal are built into Fimo: Fimo owns the provider account and bills the project in Fimo credits, so they take no API key at all. Every other credential (MCP servers, OAuth workspaces) is stored encrypted by Fimo and never printed back to the CLI. Teammates and agents receive access to the integration, not the underlying token.
3
+ Integrations are the outside services a site can use. There are three kinds, all used the same way:
4
4
 
5
- Start with `fimo integrations list` whenever the task could benefit from an external service. It is the site-scoped,
6
- runtime-truthful inventory; use `info` only for the relevant integration instead of loading every provider's tools into
7
- context.
5
+ - **Integrations an organization connects**, such as Google Search Console, Google Analytics, and the MCP integrations Semrush, Ahrefs and DataForSEO (SEO data). An organization admin connects one from **Integrations** in Fimo Studio; a site manager turns it on for a site and fills its settings. An MCP integration's tools come live from the provider's server.
6
+ - **MCP integrations from the catalog**, such as PostHog and Resend. An organization admin signs in from Studio, or adds the integration's API key once with `fimo integrations connect <integration> --token-stdin`. Then turn it on per site with `fimo integrations enable <integration>`.
7
+ - **MCP servers your organization adds** with `fimo integrations add`. Their tools come live from the server.
8
8
 
9
- ## Inspect
9
+ `fimo integrations` uses the integrations turned on for the current site. Slack is an integration too, managed from Studio's Slack settings. Every credential is stored encrypted by Fimo and never printed back to the CLI.
10
10
 
11
- ```bash
12
- fimo integrations list
13
- fimo integrations info firecrawl
14
- fimo integrations status firecrawl
15
- ```
11
+ Firecrawl and Fal are Fimo's built-in services, on Fimo's key and Fimo credits. They are no longer available to new sites: a site that already uses one keeps it, sees it in `fimo integrations list`, and runs it as before (`references/integrations/firecrawl.md`). Never offer them to a site that does not have them.
16
12
 
17
- `info` shows supported auth choices, required credentials, tools, and recipes. For a built-in service the only auth choice is `fimo`. `status` shows the project-specific setup state.
13
+ ## Commands
18
14
 
19
- When running inside an agent session, `fimo integrations list` shows only the integrations the project has enabled for that session.
15
+ | Command | Does |
16
+ | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
17
+ | `fimo integrations list` | Every integration the site could use, with its state: `on`, `needs <setting>`, `off for this site`, or `not installed`. Inside an agent session, the integrations that session may use. |
18
+ | `fimo integrations info <integration>` | The integration's guide: when it helps, how to read its numbers, its rules. Read it before an integration's first run. |
19
+ | `fimo integrations tools [integration] [--search <words>] [--tool <key>]` | Tools of the integrations that are on. `--search` keeps the best few matches with the start of what each does; `--tool` shows one tool with its input schema, before you run it. |
20
+ | `fimo integrations run <integration> <tool> --input '<json>'` | Run one tool. `--input` also takes `@file.json` or `-` for stdin. `--approval <code>` runs a change a person allowed. |
21
+ | `fimo integrations settings <integration> [--set key=value]` | Show the site's settings for an integration, or change one. A choice must be one the connected account offers. |
22
+ | `fimo integrations enable <integration>` / `disable <integration>` | Turn an integration on or off for this site. |
23
+ | `fimo integrations status <integration>` | The site's setup state for an integration. |
24
+ | `fimo integrations connect <integration> --token-stdin` | Add the organization's API key for an integration such as PostHog or Resend (organization admins) and turn it on for this site. Running it again replaces the key. |
25
+ | `fimo integrations add <name> --url <mcp-url>` | Add an MCP server for the organization and turn it on here. Options: `--auth`, `--header`, `--token-stdin`, `--headers-stdin`. |
26
+ | `fimo integrations reconnect <integration>` | Sign in to an OAuth MCP integration again. |
27
+ | `fimo integrations rotate <integration>` | Replace an MCP integration's credentials from stdin. |
28
+ | `fimo integrations remove <integration> --yes` | Remove an MCP server and its connection from every site (organization admins). |
20
29
 
21
- ## Add a remote MCP server
30
+ `fimo mcp` still works but is deprecated: `mcp run` becomes `integrations run`, `mcp search` becomes `integrations tools --search`, `mcp add` becomes `integrations add`.
22
31
 
23
- Remote MCP servers have a focused command group while remaining integrations underneath:
32
+ ## Find the right tool
33
+
34
+ Search by what you need, not by integration name:
24
35
 
25
36
  ```bash
26
- fimo mcp add sentry --url https://mcp.sentry.dev/mcp
37
+ fimo integrations tools --search "search clicks impressions rankings"
38
+ fimo integrations info search-console
39
+ fimo integrations tools search-console --tool query_search_analytics
40
+ fimo integrations run search-console query_search_analytics --input '{"dimensions":["page"],"days":28}'
41
+
42
+ fimo integrations tools --search "users sessions traffic sources"
43
+ fimo integrations info google-analytics
44
+ fimo integrations run google-analytics performance_overview --input '{"days":28}'
27
45
 
28
- fimo mcp search "issue tracking"
29
- fimo mcp info sentry
30
- fimo mcp run sentry <tool> --input '{"key":"value"}'
46
+ fimo integrations tools --search "keyword rankings backlinks"
47
+ fimo integrations tools --search "AI search citations share of voice"
31
48
  ```
32
49
 
50
+ ## Add a remote MCP server
51
+
33
52
  Automatic discovery connects public endpoints directly and opens the provider authorization page for OAuth servers.
34
53
  Use `--auth none` to require a public endpoint, `--auth bearer --token-stdin` for a bearer token, or `--auth header
35
54
  --header-name <name> --token-stdin` for a custom private header. A custom header value is sent exactly as piped, so it
36
- carries any prefix itself. Fimo requires an HTTPS Streamable HTTP endpoint,
37
- encrypts credentials, assigns an `mcp_`-prefixed integration key, and reads the server's current tools live. OAuth and
38
- manual headers are alternative grants and are never sent together. Local stdio commands such as `npx` are not supported. Agents continue to use `fimo integrations list|info|run`
39
- so native and MCP providers share one runtime policy surface.
40
-
41
- ## Integration References
42
-
43
- Load the integration reference when the user names a specific integration:
55
+ carries any prefix itself. Fimo requires an HTTPS Streamable HTTP endpoint, encrypts credentials, assigns an
56
+ `mcp_`-prefixed key, and reads the server's current tools live. OAuth and manual headers are alternative grants and are
57
+ never sent together. Local stdio commands such as `npx` are not supported.
44
58
 
45
- - Firecrawl public website scraping and research → `references/integrations/firecrawl.md`
46
-
47
- ## Enable
48
-
49
- ```bash
50
- fimo integrations enable firecrawl
51
- fimo integrations enable fal
52
- fimo integrations disable firecrawl
53
- ```
54
-
55
- Bare enable uses the integration's default auth path. For Firecrawl and Fal that is the only path: Fimo credits, no key,
56
- no connection, nothing to choose. `fimo integrations connect firecrawl` and `connect fal` are refused for that reason.
57
-
58
- If an integration has no safe default auth path, bare enable stops with a repair command instead of guessing.
59
-
60
- To bring your own Firecrawl or Fal account, add it as an MCP server (`fimo mcp add`), which is the generic path for any
61
- server the user owns. It does not replace the built-in service.
62
-
63
- ## Connections
64
-
65
- Use `connect` for provider accounts, workspaces, OAuth installs, and user-owned MCP servers. Connections live at the
66
- organization level and are shared as capabilities, not as visible credentials. A project chooses one by enabling the
67
- integration with `--connection <alias>`.
68
-
69
- Set up Slack from **Project Settings > Connections** in Fimo Studio. Slack app creation and workspace approval require an explicit organization app choice, so the CLI does not guess one.
70
-
71
- ## Run
72
-
73
- ```bash
74
- fimo integrations run firecrawl scrape --url https://example.com
75
- fimo integrations run firecrawl scrape --url https://example.com --formats markdown,summary,links
76
- fimo integrations run firecrawl search --query "Example Domain" --max-results 3 --include-domains example.com
77
- fimo integrations run firecrawl map --url https://example.com --limit 20
78
- fimo integrations run firecrawl crawl --url https://example.com --limit 3 --formats markdown
79
- fimo integrations run firecrawl monitor.create --name pricing --url https://example.com/pricing --schedule hourly
80
- fimo integrations run firecrawl monitor.list
81
- ```
59
+ ## Changes need a yes
82
60
 
83
- Firecrawl execution supports `search`, `scrape`, `map`, `crawl`, and `monitor.*` lifecycle tools. The default scrape/crawl output format is `markdown`; supported formats are `markdown`, `summary`, `links`, `images`, `html`, and `raw-html`.
61
+ A tool whose `EFFECT` is not `read` changes data in the outside service, such as `submit_sitemap`. Run it only when the user asked for that change. Changes a person runs from their own CLI run straight away. Changes an agent runs need a person's yes, unless the site always allows that tool; paid actions always ask.
84
62
 
85
- Firecrawl search returns query-relevant excerpts by default. Use them for direct, sourced answers and scrape only when
86
- full context or exact wording is needed. Search can be narrowed with source, category, domain, freshness, location,
87
- and country options; see the Firecrawl reference for the full command shape.
63
+ - `APP_APPROVAL_REQUIRED`: give the user the `approve_url`. When they allow the change there, Fimo shows them a one-time code: ask them to paste it, then run the same command, with the same input, plus `--approval <code>`. The code works once, for that exact call, within the hour.
64
+ - `APP_WRITE_BLOCKED`: the change cannot run this way. Do not retry; tell the user.
88
65
 
89
- Use `--connection <alias>` only for one run of a connection-backed integration when a named connection already exists. It
90
- does not change the project default integration setup, and built-in services have no connection to name.
66
+ ## Errors
91
67
 
92
- Firecrawl `monitor.*` tools monitor websites for changes. `monitor.list` shows the website change monitors available in the current project. Fimo cleans up those monitors when the project is deleted.
68
+ - `needs property`: the site has not chosen which account data to use. A site manager picks it in Studio, Site settings, Integrations.
69
+ - `app_reconnect_required`: the provider revoked access. An organization admin reconnects the integration from Integrations.
70
+ - `not installed`: no one connected the integration yet. Tell the user what it would let you do; never ask for credentials.
71
+ - `Firecrawl and Fal are no longer available to new sites.`: the site never used that built-in service. Do not retry.
93
72
 
94
- For Firecrawl-specific recipes and JSON examples, load `references/integrations/firecrawl.md`.
73
+ Set up Slack from **Settings > Integrations > Slack** in Fimo Studio.
@@ -1,5 +1,7 @@
1
1
  # Remote MCP integrations
2
2
 
3
+ > **Deprecated.** `fimo mcp` still works but prints a warning: use `fimo integrations` instead (`references/integrations.md`). Changes ask for a person's yes the same way either way.
4
+
3
5
  Use the `mcp` command group to connect a project to remote Model Context Protocol servers. Fimo stores the connection,
4
6
  keeps its credential server-side, and makes the server's tools available through the same integration gateway as native
5
7
  providers.
@@ -102,16 +104,7 @@ from stdin.
102
104
 
103
105
  ## Studio chat
104
106
 
105
- Remote MCP servers remain normal project integrations underneath the focused CLI. Studio chat discovers and runs them
106
- through:
107
-
108
- ```bash
109
- fimo integrations list
110
- fimo integrations info mcp_sentry
111
- fimo integrations run mcp_sentry search_issues --input '{"query":"open regressions"}'
112
- ```
113
-
114
- Studio receives a frozen snapshot of the integrations enabled when the turn starts. It never receives the underlying
107
+ Studio chat finds and runs MCP apps with its own app tools, not with these commands. It never receives the underlying
115
108
  credential or opens a direct connection to the remote server.
116
109
 
117
110
  ## Supported servers
@@ -6,6 +6,22 @@ Three kinds of values, each set per Environment (production, preview, or a custo
6
6
  - **Private variables** — API keys and tokens the site's own server code reads. Write-only after saving.
7
7
  - **Secrets** — credentials Fimo itself uses for webhooks, schedules, and agents. Never sent to the site.
8
8
 
9
+ ## Choose the Environment
10
+
11
+ Every `fimo vars` and `fimo secrets` command reads or writes one Environment, chosen with `--env`:
12
+
13
+ ```bash
14
+ fimo vars add STRIPE_SECRET_KEY --private --stdin --env production
15
+ fimo vars list --env preview
16
+ fimo secrets list --env Staging
17
+ ```
18
+
19
+ - `--env production`: the live site, used by `fimo publish`.
20
+ - `--env preview`: Studio previews, and hosted previews of Branches no custom Environment claims.
21
+ - `--env <name or id>`: a custom Environment from `fimo environments list`.
22
+
23
+ Always pass `--env`. Without it, a command uses the Environment of the checked-out branch: `main` is Preview, not Production. To change the live site, pass `--env production`, check the Environment named in the result, then run `fimo publish`: the live site keeps its current variables until the next publish, and the command warns about it. Do not use `--branch` to choose the Environment; it is deprecated here and prints a warning.
24
+
9
25
  ## Public Variables
10
26
 
11
27
  ```bash
@@ -45,9 +61,9 @@ fimo vars unset STRIPE_SECRET_KEY
45
61
  - Fimo agents' shell commands do not receive private values, and output that would show one is redacted. Test a server route through the preview instead of reading the key from a shell.
46
62
  - A dev server whose Environment is Production never gets production private values.
47
63
  - Private variables cannot use browser prefixes (`VITE_`, `PUBLIC_`, `NEXT_PUBLIC_`, `NUXT_PUBLIC_`). Read them only from server code.
48
- - Set one value per Environment: a test key for preview, the live key for production.
64
+ - Set one value per Environment: a test key for preview, the live key for production (`--env production`).
49
65
  - Public or private is chosen when the variable is created. To switch, unset it and add it again.
50
- - A changed or removed variable applies on the next deploy: run `fimo deploy` for previews (with no new commit, it restarts the preview and rebuilds the hosted preview when variables changed) and `fimo publish` for the live site. After changing variables for the user, offer that redeploy.
66
+ - A changed or removed Preview or custom Environment variable rebuilds that Environment's hosted previews on its own. The Studio preview picks it up on the next `fimo deploy`, even with no new commit. A Production variable reaches the live site only on `fimo publish`: after changing one for the user, offer to publish.
51
67
  - Names that control processes (`PATH`, `NODE_ENV`, `NODE_OPTIONS`, `HTTPS_PROXY`, `GIT_*`, `NPM_CONFIG_*` and similar) are refused for new private variables, and a public variable with such a name never reaches the site's processes or the `.env.local` written by `fimo vars pull`.
52
68
 
53
69
  ## Secrets
@@ -71,7 +87,7 @@ Secrets are for Fimo itself: webhook headers, schedule runs, and agents. They ar
71
87
  an env file. Supported framework runtimes derive it from `.fimo/project.json`
72
88
  and the active git branch; hosted preview and production inject it directly.
73
89
 
74
- `fimo vars add`, `fimo vars update`, and `fimo vars pull` write public project variables to a managed block in `.env.local`.
90
+ `fimo vars add`, `fimo vars update`, and `fimo vars pull` write public project variables to a managed block in `.env.local`. They write the values of the Environment they target, except that writes to Production never touch `.env.local`. Without `--env`, `fimo vars pull` writes the checked-out branch's Environment.
75
91
 
76
92
  Local env files are ignored by git in Fimo sites. They are for local development only; deployment reads project variables from Fimo and injects them into the remote build.
77
93
 
@@ -24,6 +24,9 @@ URL can describe the live version, but one synthetic run is not field data.
24
24
 
25
25
  Inspect the available tools and skills before choosing a method.
26
26
 
27
+ - For SEO, links, images, structured data or AI readiness, start with
28
+ `fimo site check` (below): it picks the target and reports findings.
29
+
27
30
  - If `agent-browser` is available, load its skill and version-matched `core`
28
31
  guidance before using it.
29
32
  - Otherwise use equivalent browser automation, accessibility, HTTP, network,
@@ -35,6 +38,41 @@ Inspect the available tools and skills before choosing a method.
35
38
  own guidance and name the target. If it does not, report that limitation and
36
39
  use only measurements that can actually run.
37
40
 
41
+ ## Check pages with `fimo site check`
42
+
43
+ `fimo site check` reads pages of the current Branch's hosted preview over HTTP
44
+ and reports findings by topic. Name the pages a change touches, or pass `--all`
45
+ for the whole site: the home page, the sitemap, llms.txt and every page they
46
+ link to, at most 300 pages.
47
+
48
+ ```bash
49
+ fimo site check / /pricing --json # named pages, every topic
50
+ fimo site check /blog/my-post --topic meta-tags # one topic
51
+ fimo site check --all --branch main # every page of main's hosted preview
52
+ fimo site check /about --browser --topic accessibility,mobile
53
+ fimo site check / --url http://localhost:3000 # another address, such as your dev server
54
+ fimo site links /pricing # each link on the page and its target's status
55
+ ```
56
+
57
+ - Name at most 50 pages per run. Paths, bare names and full URLs all work.
58
+ - Topics: `technical`, `meta-tags`, `broken-links`, `image-seo`,
59
+ `internal-linking`, `hreflang`, `ai-readiness`, `structured-data`,
60
+ `citation`, `lifecycle`, `refresh`, `accessibility`, `mobile`, `consent`,
61
+ `privacy`. Without `--topic`, every topic runs.
62
+ - `--browser` renders every page in a real browser (needs `agent-browser`).
63
+ Use it for `accessibility`, `mobile`, `consent` and `privacy`; the other
64
+ topics read HTML. A page whose HTML has no content before JavaScript runs (a
65
+ client-rendered site) is read in the browser without `--browser`; the output
66
+ says how many.
67
+ - The target is the Branch's hosted preview. While it builds, the command
68
+ waits up to 90 seconds. `prod` has no preview: check `--branch main`, or the
69
+ published address with `--url`.
70
+ - Findings that compare pages (shared titles, title shape, pages nothing links
71
+ to, pages missing from the sitemap) need `--all`.
72
+ - Each finding is `auto` (one right fix), `suggest` (a person decides) or
73
+ `note`. Read `data.output` in `--json` mode. Lines marked "could not tell"
74
+ are not clean: say what could not be checked.
75
+
38
76
  ## 3. Pick the lens the question needs
39
77
 
40
78
  | The user asks | Evidence to obtain |
@@ -36,7 +36,7 @@ Use plain, friendly language. Describe what users see, where they click, and wha
36
36
 
37
37
  - **Header (desktop):** the site menu (site name; History is here) and the Branch switcher, then the workspaces: Chats, Getting started, Preview, Content, Assets, Analytics, Settings. Only workspaces the user can access appear. Workspaces that do not fit move into **More**. On the right: Earn free credits, Invite, Clone, Publish, and Merge on a Branch.
38
38
  - **Phone:** bottom tabs for Chat, Preview and Settings. Invite, Earn free credits and Clone ("Work on this site locally") move into the site menu.
39
- - **Settings:** General, Domains, Knowledge, SEO and Languages are listed directly. Models, Environments, Variables, Secrets, Schedules, Webhooks and Connections are under **Advanced settings**.
39
+ - **Settings:** General, Domains, Knowledge, SEO, Integrations and Languages are listed directly. Models, Environments, Variables, Secrets, Schedules and Webhooks are under **Advanced settings**.
40
40
  - **Shortcuts:** Alt+1 Preview, Alt+2 Content, Alt+3 Assets, Alt+5 Settings, Alt+E edit mode, Cmd/Ctrl+K command palette.
41
41
 
42
42
  When a reference says "open X", X can be inside **More** on a narrow window.
@@ -59,7 +59,7 @@ Read the relevant reference file when the user's question matches a topic.
59
59
  | Variables & Secrets | references/variables-and-secrets.md | "Where do I put an API key?", "Public or private variable?" |
60
60
  | Schedules | references/schedules.md | "Recurring commands", "Run history", "Run now" |
61
61
  | Webhooks | references/webhooks.md | "React to forms", "Send events to another service" |
62
- | Connections | references/connections.md | "Connect a service", "Add an MCP server" |
62
+ | Integrations | references/integrations.md | "Connect a service", "Add an MCP server", "Slack channels" |
63
63
  | Preview & Responsive | references/preview-and-responsive.md | "How does it look on mobile?", "How do I test sizes?" |
64
64
  | Visual Editing | references/visual-editing.md | "Can I edit visually?", "How do I change colors?" |
65
65
  | Version History | references/version-history.md | "How do I undo?", "How do I go back?" |
@@ -76,7 +76,7 @@ Read the relevant reference file when the user's question matches a topic.
76
76
  | Adding images | Media Library, AI Chat, Edit Mode |
77
77
  | Content/CMS | AI Chat, Media Library |
78
78
  | Webhooks | Site secrets, Forms, Publishing |
79
- | Connections | AI Chat, Site secrets |
79
+ | Apps | AI Chat, Site secrets |
80
80
  | Schedules | Site secrets, Environments |
81
81
  | API keys | Variables (private), Site secrets |
82
82
  | Visual changes | Edit Mode (CMS content), AI Chat (layout, styling, and code changes) |
@@ -8,11 +8,11 @@ Chat has its own **Chats** tab in the site header; the tab shows how many chats
8
8
 
9
9
  ## Agents
10
10
 
11
- Agents and routines appear only when the organization has the agents feature, which is off by default in production. Without it, the **+** above the chat list opens a new chat directly, agent settings have no **Routines**, and existing routines do not run; ask Fimo support to enable it. The plan decides the agents (FIMO-2856): Free has the SEO and GEO default agents, each running only its weekly checkup (**Weekly SEO checkup**, **Weekly AI check**), and its agent settings list the routines Starter adds with **See plans**; Starter (pay-as-you-go) has every default agent with its detailed routines, and a change wakes each routine at most once a day (the changes made meanwhile wait and the next run, a day after the last one started, checks them together; the routine's next run shows when, and **Run now** and schedules never wait); Pro runs them right after each change and adds agents of one's own (**New agent**). In the **+** menu, what the plan does not include shows **Upgrade** and opens the plans. Default agents are Fimo's: their routines follow Fimo's instructions, only switch off and on or get deleted (a deleted one stays deleted), and nothing is added to them (`routine_is_default`); routines of one's own live in a custom agent, on Pro (`routine_needs_pro` below Pro). A default agent's name, description and portrait cannot be changed on any plan, and a custom agent's change only on Pro: below Pro its settings are read-only, say its routines are paused and offer **See plans**, and it can still be deleted. A plan change changes which agents open and which routines run; agents, routines and past runs stay. Fimo support can give an organization Pro's agents on any plan. A routine Fimo retires from a default agent stops running and leaves the list.
11
+ The plan decides the agents (FIMO-2856): Free has the SEO and GEO default agents, each running only its weekly checkup (**Weekly SEO checkup**, **Weekly AI check**), and its agent settings list the routines Starter adds with **See plans**; Starter (and legacy Pay as you go) has every default agent with its detailed routines, and a change wakes each routine at most once a day (the changes made meanwhile wait and the next run, a day after the last one started, checks them together; the routine's next run shows when, and **Run now** and schedules never wait); Pro runs them right after each change and adds agents of one's own (**New agent**). In the **+** menu, what the plan does not include shows **Upgrade** and opens the plans. Default agents are Fimo's: their routines follow Fimo's instructions, only switch off and on or get deleted (a deleted one stays deleted), and nothing is added to them (`routine_is_default`); routines of one's own live in a custom agent, on Pro (`routine_needs_pro` below Pro). A default agent's name, description and portrait cannot be changed on any plan, and a custom agent's change only on Pro: below Pro its settings are read-only, say its routines are paused and offer **See plans**, and it can still be deleted. A plan change changes which agents open and which routines run; agents, routines and past runs stay. Fimo support can give an organization Pro's agents on any plan. A routine Fimo retires from a default agent stops running and leaves the list.
12
12
 
13
- An agent is a chat with a job: a name and a description that Fimo reads at the start of every reply in that chat. Agents are shared like any chat and are listed as soon as they are created, with an **Agent** tag after the name. The **+** above the chat list is a menu: **New chat** (blank), **New agent** (a name and a description, then the empty agent opens), and under **Agents** Fimo's default agents (**SEO**, **GEO**, **Content**, **Quality**, **Compliance**); a new site starts with SEO and GEO listed, their routines active from the start; Content, Quality and Compliance, and every default on an older site, are created the first time someone selects them, routines active, the same chat every time after. In an agent, the header shows the name alone and the empty state introduces the agent by name and job (the description's first three lines); a cut description shows whole on hover, or on tap on a phone, and the message box reads **Message <name>**. The agent's settings page has a **Description** field, shared with everyone; empty means none. The filter icon's **Kind** option shows only chats or only agents; search finds an agent by its name.
13
+ An agent is a chat with a job: a name and a description that Fimo reads at the start of every reply in that chat. Agents are shared like any chat and are listed as soon as they are created, with an **Agent** tag after the name. The **+** above the chat list is a menu: **New chat** (blank), **New agent** (a name and a description, then the empty agent opens), and under **Agents** Fimo's default agents (**SEO**, **GEO**, **Content**, **Quality**, **Compliance**); a new site starts with SEO and GEO listed, their routines active from the start; Content, Quality and Compliance, and every default on an older site, are created the first time someone selects them, routines active, the same chat every time after. In an agent, the header shows the name alone and the message box reads **Message <name>**. A default agent's empty state greets in its own words and offers its own starter requests; its description stays in its settings. A custom agent's empty state shows its description (the first three lines; a cut description shows whole on hover, or on tap on a phone) and three starter requests every agent can answer. A starter is sent as shown, by anyone who can send messages. The agent's settings page has a **Description** field, shared with everyone; empty means none. The filter icon's **Kind** option shows only chats or only agents; search finds an agent by its name.
14
14
 
15
- The **SEO** default runs six routines backed by Studio's built-in `fimo-seo` skill, which checks the site as a browser renders it and fixes at the source: **Technical SEO** (status, redirects, canonicals, sitemap, robots.txt, language, main heading, and changes since its last run: pages moved without a redirect), **Broken links**, **Meta tags** (titles, descriptions, Open Graph, the site's title ending, length in characters and pixels), **Image SEO** (alt text, file names, images over 200 KB: one in the media library or the site's own files is rendered through Fimo's resizing on its own, a file of the site uploaded first), **Hreflang** (only on a site in more than one language) and **Internal linking** (orphan and deep pages, articles with no link up to a hub or product page or more than eight links). Each default routine wakes on the changes on main that can matter to it, before a publish (CMS edits, code changes, images, languages, forms; the first publish and a new domain for Technical SEO and Cookie consent): a small model reads each change first, so a quiet site runs nothing, and the run checks what changed (the whole site on its first run). Only what changes without anyone touching the site keeps a schedule: Broken links checks outbound links on the 1st of every month, Content refresh runs on the 2nd, Content lifecycle every three months, Privacy and legal pages once a year. A page it changed is left alone for 8 weeks, the time Google takes to show the effect. A fix with one right answer from the page's own words is made without a message (a link only once the new target is checked to be the same content in the same language; a link on words the text already uses to name another page; a 301 from a page's old address once the same page is live at a new one); a change to what visitors read, which page wins a search, whether a page exists, a redirect with more than one possible target, a price or a legal page is asked as a decision; page removals and the robots policy are never changed on its own. A change a person asks for in a chat is made. What a check could not tell (a timeout, a 5xx, a page past the crawl limit) is never acted on: the run retries once, then says the check was incomplete.
15
+ The **SEO** default runs six routines backed by Studio's built-in `fimo-seo` skill, which checks the site as a browser renders it and fixes at the source: **Technical SEO** (status, redirects, canonicals, sitemap, robots.txt, language, main heading, and changes since its last run: pages moved without a redirect), **Broken links**, **Meta tags** (titles, descriptions, Open Graph, the site's title ending, length in characters and pixels), **Image SEO** (alt text, file names, images over 200 KB: one in the media library or the site's own files is rendered through Fimo's resizing on its own, a file of the site uploaded first), **Hreflang** (only on a site in more than one language) and **Internal linking** (orphan and deep pages, articles with no link up to a hub or product page or more than eight links). Each default routine wakes on the changes on main that can matter to it, before a publish (CMS edits, code changes, images, languages, forms; the first publish and a new domain for Technical SEO and Cookie consent): a small model reads each change first, so a quiet site runs nothing, and the run checks what changed (the whole site on its first run). A schedule covers what no single change shows: every Monday, Technical SEO, Meta tags and Internal linking read every page of main's hosted preview (pages out of the sitemap, shared titles and title shape, orphan and deep pages); what changes without anyone touching the site also keeps one: Broken links checks outbound links on the 1st of every month, Content refresh runs on the 2nd, Content lifecycle every three months, Privacy and legal pages once a year. A page it changed is left alone for 8 weeks, the time Google takes to show the effect. A fix with one right answer from the page's own words is made without a message (a link only once the new target is checked to be the same content in the same language; a link on words the text already uses to name another page; a 301 from a page's old address once the same page is live at a new one); a change to what visitors read, which page wins a search, whether a page exists, a redirect with more than one possible target, a price or a legal page is asked as a decision; page removals and the robots policy are never changed on its own. A change a person asks for in a chat is made. What a check could not tell (a timeout, a 5xx, a page past the crawl limit) is never acted on: the run retries once, then says the check was incomplete.
16
16
 
17
17
  The **GEO** default runs three routines backed by Studio's built-in `fimo-geo` skill, which shares `fimo-seo`'s crawl and its rule for what a run may change alone: **AI readiness** (llms.txt, the text each page serves before JavaScript, landmarks and heading levels) and **Structured data** (valid JSON-LD; Organization and WebSite, Article, BreadcrumbList; Product and FAQ where they fit) and **AI citation optimization** (a direct answer under each content page's H1, question headings on long pages). On its own it writes a missing llms.txt and keeps its links in step, adds Organization, WebSite, Article and BreadcrumbList from fields the site already has (never an invented logo, address, author or rating), and fixes landmarks and heading levels without changing words; an opening answer, new headings, FAQ or Product data, and how pages are rendered are asked as decisions; who robots.txt lets crawl, AI crawlers included, prices and claims are never changed, nor reported: asked whether an assistant can read the site, it checks and names the crawlers robots.txt keeps out. Where AI assistants cite the site needs a visibility source; until one is connected there is no routine for it.
18
18
 
@@ -24,7 +24,7 @@ The **Compliance** default runs three routines backed by Studio's built-in `fimo
24
24
 
25
25
  ### Routines
26
26
 
27
- A routine is saved instructions an agent runs in a thread of its own, by hand, on a schedule, or when something happens in the project, so each run sees its earlier runs and the agent's chat never fills with its work. The agent creates, changes, runs and deletes its routines from its chat with its `routines` tool: a person asks in the chat ("check the prices every Monday", "run after each publish"), and Studio only shows routines. A trigger is set in words; Fimo checks them and either says when the routine runs or why it cannot follow them and what it can do instead; for what Fimo cannot see as an event (traffic, rankings, errors) the agent offers a schedule whose run checks it and stops when there is nothing to do. Fimo follows publishes of the site (or only its first publish) and content changes on the main branch by content type, action, locale, changed fields, the entry's current values ("price over 100", "status changes to archived") or a yes/no question about what the content says ("mentions Contentful or Sanity"; for "a competitor" it uses the names given or those in the site knowledge, and asks for them otherwise; a run started on an uncertain answer says so), media files uploaded or changed (by name or file type), the site's code changing through a deploy or a merge (by file path glob, or a yes/no question about the changed files such as "a page was added"), another routine of the same agent finishing (optionally with a yes/no question about its report; never its own end), a visitor submitting a form (optionally with a yes/no question about the answers), a form or content type changing, a branch merged into main, a locale added, removed or made the default, a publish of the site failing, a domain added or removed, and the prices on a page of another web site changing ("tell me when https://example.com/pricing changes its prices": checked daily, a change must hold on three reads before the routine runs, the run lists each plan with its old and new price, the routine page shows the watch as **OK**, **Needs repair**, **Blocked** or **Unstable** with its last check, at most 10 watched pages a project); comparing a field's old and new values is not supported; what a routine changes, publishes or reports can start the agent's other routines, in chains of any length, each routine at most once per change that started the chain (across every routine that change leads to, so routines never loop or multiply; a person's new change, a run by hand or on a schedule starts a new chain); events that come in while a run is busy wait, then run together in one next run (up to 10), which the Runs list shows as one run with its event count; the agent can also make a routine's event runs wait until the changes stop for a set number of minutes (at most 2 hours from the first), then read them all in one run (a yes/no question is then answered once for all the waiting changes, each entry once in its latest version; a waiting change it says no to leaves the queue, and when it says no to all of them no run starts); the default routines that read what changed (Meta tags, Image SEO, Internal linking, Structured data, AI citation optimization, Content lifecycle, Translation, Accessibility, Mobile optimization, Brand compliance) wait 10 minutes after the last change, and those that guard the live site (Technical SEO, Broken links, Hreflang, AI readiness, Cookie consent, Privacy and legal pages) run at once. The agent's settings list its **Routines** as cards (name, when it runs such as its event trigger's title, **Every Monday at 08:00** or **By hand**, next run, an **Active** switch); the default agents come with theirs (a new project's defaults wake on changes from five minutes after it is created, so its first push and seed start no run). A routine's page is read-only: **Instructions** (the task, run on every trigger), **Model** (the model its runs use: Opus 5.5 by default, while most default routines run on Claude Haiku 5.5 or Claude Sonnet 5; the agent sets another when asked), **Triggers** (**By hand** with **Run now**, which starts a run right away; **Schedule** and the event trigger, given a short title by Fimo from the words it was set with, each a sentence, shown when set), the **Runs** list (newest first, two lines each: how it ended (**Quiet**, **Sent to agent**, **Asked for a decision**, or **Failed** and **Stopped** in red), when and what started it (**On schedule**, **On event**, or **By hand** with the person's name or **agent** when their message started it), then the first sentence of what it told the agent; select one to open the routine's thread, read-only, at that run), and the **Active** switch in the header (pauses the schedule and the trigger, not **Run now**). Routines report to the agent, never to a person: a run that has something the agent should know writes it to the agent's chat as a message only the agent reads, and the agent takes a turn on it (reports waiting together are read in one turn); a run with nothing to say reports nothing. The agent decides what the team sees: nothing (the chat stays as it was, the row stays read), one short message (several reports folded into one), or a form when a person must decide, and the chat's row reads **Needs you** while that form is open. A person answers the form in the chat; the agent sends the decision to the routine with its `routines` tool and the routine runs again with it. Only the agent answers a routine: its page has no answer box. Quiet runs leave no message: they fold into one line placed where the last run happened among the messages (**N runs since <date>**), counted from the last report the agent answered visibly, and the chat's row reads **Ran <date>** with that count while the newest thing in the chat is a run, the ordinary status and the last words when a message is newer, and **First check <day> <time>** or **No checks scheduled** before the first run. A routine whose runs keep failing or are refused for credits is reported to the agent once per streak, as a message from Fimo. Routine runs use the plan's agent-hours, from each run's start to its end (Studio chats do not); Billing shows the hours used this period, and each run shows its duration and credits. Once the included hours are used, nothing runs (no schedule, event or Run now, which the routines tool reports to the agent); Studio shows **Routines paused** under the chat list and in the agent's settings with the reset date and the button that resumes them sooner (**Upgrade**), and the routine's page says until when. No run lasts longer than 2 hours.
27
+ A routine is saved instructions an agent runs in a thread of its own, by hand, on a schedule, or when something happens in the project, so each run sees its earlier runs and the agent's chat never fills with its work. The agent creates, changes, runs and deletes its routines from its chat with its `routines` tool: a person asks in the chat ("check the prices every Monday", "run after each publish"), and Studio only shows routines. A trigger is set in words; Fimo checks them and either says when the routine runs or why it cannot follow them and what it can do instead; for what Fimo cannot see as an event (traffic, rankings, errors) the agent offers a schedule whose run checks it and stops when there is nothing to do. Fimo follows publishes of the site (or only its first publish) and content changes on the main branch by content type, action, locale, changed fields, the entry's current values ("price over 100", "status changes to archived") or a yes/no question about what the content says ("mentions Contentful or Sanity"; for "a competitor" it uses the names given or those in the site knowledge, and asks for them otherwise; a run started on an uncertain answer says so), media files uploaded or changed (by name or file type), the site's code changing through a deploy or a merge (by file path glob, or a yes/no question about the changed files such as "a page was added"), another routine of the same agent finishing (optionally with a yes/no question about its report; never its own end), a visitor submitting a form (optionally with a yes/no question about the answers), a form or content type changing, a branch merged into main, a locale added, removed or made the default, a publish of the site failing, a domain added or removed, and the prices on a page of another web site changing ("tell me when https://example.com/pricing changes its prices": checked daily, a change must hold on three reads before the routine runs, the run lists each plan with its old and new price, the routine page shows the watch as **OK**, **Needs repair**, **Blocked** or **Unstable** with its last check, at most 10 watched pages a project); comparing a field's old and new values is not supported; what a routine changes, publishes or reports can start the agent's other routines, in chains of any length, each routine at most once per change that started the chain (across every routine that change leads to, so routines never loop or multiply; a person's new change, a run by hand or on a schedule starts a new chain); events that come in while a run is busy wait, then run together in one next run (up to 10), which the Runs list shows as one run with its event count; the agent can also make a routine's event runs wait until the changes stop for a set number of minutes (at most 2 hours from the first), then read them all in one run (a yes/no question is then answered once for all the waiting changes, each entry once in its latest version; a waiting change it says no to leaves the queue, and when it says no to all of them no run starts); the default routines that read what changed (Meta tags, Image SEO, Internal linking, Structured data, AI citation optimization, Content lifecycle, Translation, Accessibility, Mobile optimization, Brand compliance) wait 10 minutes after the last change, and those that guard the live site (Technical SEO, Broken links, Hreflang, AI readiness, Cookie consent, Privacy and legal pages) run at once. The agent's settings list its **Routines** as cards (name, when it runs such as its event trigger's title, **Every Monday at 08:00** or **By hand**, next run, an **Active** switch); the default agents come with theirs (a new project's defaults wake on changes from five minutes after it is created, so its first push and seed start no run). A routine's page is read-only: **What it does** (one or two plain sentences the agent writes with the routine, Fimo's for a default routine), with **Instructions** folded under it (the task, run on every trigger; a routine created before descriptions shows only its **Instructions**), **Model** (the model its runs use: Opus 5.5 by default, while most default routines run on Claude Haiku 5.5 or Claude Sonnet 5.5; the agent sets another when asked), **Triggers** (**By hand** with **Run now**, which starts a run right away; **Schedule** and the event trigger, given a short title by Fimo from the words it was set with and showing those words, shown when set), the **Runs** list (newest first, two lines each: how it ended (**Quiet**, **Sent to agent**, **Asked for a decision**, or **Failed** and **Stopped** in red), when and what started it (**On schedule**, **On event**, or **By hand** with the person's name or **agent** when their message started it), then the first sentence of what it told the agent; select one to open the routine's thread, read-only, at that run), and the **Active** switch in the header (pauses the schedule and the trigger, not **Run now**). Routines report to the agent, never to a person: a run that has something the agent should know writes it to the agent's chat as a message only the agent reads, and the agent takes a turn on it (reports waiting together are read in one turn); a run with nothing to say reports nothing. The agent decides what the team sees: nothing (the chat stays as it was, the row stays read), one short message (several reports folded into one), or a form when a person must decide, and the chat's row reads **Needs you** while that form is open. A person answers the form in the chat; the agent sends the decision to the routine with its `routines` tool and the routine runs again with it. Only the agent answers a routine: its page has no answer box. Quiet runs leave no message: they fold into one line placed where the last run happened among the messages (**N runs since <date>**), counted from the last report the agent answered visibly, and the chat's row reads **Ran <date>** with that count while the newest thing in the chat is a run, the ordinary status and the last words when a message is newer, and **First check <day> <time>** or **No checks scheduled** before the first run. A routine whose runs keep failing or are refused for credits is reported to the agent once per streak, as a message from Fimo. Routine runs use the plan's agent-hours, from each run's start to its end (Studio chats do not); Billing shows the hours used this period, and each run shows its duration and credits. Once the included hours are used, nothing runs (no schedule, event or Run now, which the routines tool reports to the agent); Studio shows **Routines paused** under the chat list and in the agent's settings with the reset date and the button that resumes them sooner (**Upgrade**), and the routine's page says until when. No run lasts longer than 2 hours.
28
28
 
29
29
  ## Sending a Message
30
30
 
@@ -34,7 +34,7 @@ Buying credits is available while a paid plan is effective, including after sche
34
34
  1. Click the credit display near the chat input.
35
35
  2. Click **Buy credits**.
36
36
  3. Enter a dollar amount (up to $10,000) or pick one of the presets: **$25**, **$50**, **$100**, or **$200**.
37
- 4. Check the rate shown in the dialog. It comes from your current plan, so the same dollar amount can buy a different number of credits on Pay as you go than on Pro.
37
+ 4. Check the rate shown in the dialog. It comes from your current plan, so the same dollar amount can buy a different number of credits on different plans.
38
38
  5. Confirm the purchase. Your card on file is charged and the credits are added after confirmation; there is no separate checkout page to complete. If confirmation stays pending, retry the same purchase or contact support. Do not start another purchase to replace an unresolved one.
39
39
 
40
40
  ## Refilling Credits Automatically
@@ -57,29 +57,30 @@ You can upgrade from two places:
57
57
  From there:
58
58
 
59
59
  1. Compare the available plans side by side.
60
- 2. Pro includes more monthly credits, custom domain support, and the ability to hide the Fimo badge on your published site.
60
+ 2. Starter and Pro include more monthly credits and custom domain support. Pro has the largest allowances and the ability to hide the Fimo badge on your published site.
61
61
  3. Pick a plan and complete checkout.
62
62
  4. Your new monthly credit pool is available right away.
63
63
 
64
64
  ## Extra usage budget
65
65
 
66
- Open **Billing & usage**, then **Details** beside public bandwidth. Billing admins on Pay as you go or Pro can edit one **Monthly budget** for extra public bandwidth. The page shows its cost and **Spent this period**. This budget does not cover AI credit purchases or auto-refill.
66
+ Open **Billing & usage**, then **Details** beside public bandwidth. Billing admins on Starter, Pro or legacy Pay as you go can edit one **Monthly budget** for extra public bandwidth. The page shows its cost and **Spent this period**. This budget does not cover AI credit purchases or auto-refill.
67
67
 
68
68
  - At the budget, additional paid usage stops; remaining included allowances stay usable.
69
69
  - Disabling extra usage preserves charges already incurred. The budget cannot be lowered below existing extra-usage charges.
70
70
 
71
71
  ## Changing or leaving a paid plan
72
72
 
73
- - Free to Pay as you go or Pro, and Pay as you go to Pro, use checkout and take effect after payment succeeds.
74
- - Moving down from a paid monthly plan stops auto-refill and paid extra usage immediately, whether the destination is Free or Pay as you go. The current plan, remaining allowances, credits, and reset date stay unchanged until the destination takes over at renewal. Manual credit purchases remain available while the paid plan is active.
73
+ - Free to Starter or Pro, and Starter or Pay as you go to Pro, use checkout and take effect after payment succeeds. Starter to Pro credits back the unused part of the Starter month.
74
+ - Pay as you go is no longer offered. An organization that has it keeps it; once it leaves, it cannot choose it again.
75
+ - Moving down from a paid monthly plan stops auto-refill and paid extra usage immediately, whether the destination is Free or Starter. The current plan, remaining allowances, credits, and reset date stay unchanged until the destination takes over at renewal. Manual credit purchases remain available while the paid plan is active.
75
76
  - Automatic spending cannot be enabled while a plan change is scheduled. Keep your plan first; then you can immediately enable auto-refill and paid extra usage independently. Keeping the plan itself leaves both off.
76
77
  - Usage before the change remains payable. Enabling extra usage again does not make usage from the off-period billable.
77
- - Pro to Pay as you go or Free takes effect at the end of the current billing period. Billing shows the destination and effective date until then.
78
- - Review the confirmation before scheduling Pro to Pay as you go. It explains the immediate spending stop, retained benefits and charges already incurred; opening it does not change the plan.
79
- - Switching the scheduled destination between Free and Pay as you go keeps the same effective date and the same moment automatic spending stopped. Nothing is re-granted. Team organizations reach Free through **Cancel subscription**, not the plan dialog.
80
- - Choosing the current plan again before that date cancels the scheduled change and its Pay as you go successor.
81
- - Pay as you go requires an active payment method. Removing its only valid card returns the organization to Free immediately, and a scheduled Pay as you go with no card on file lands on Free on its effective date instead.
82
- - A failed Pro renewal follows the payment-recovery flow. It never silently changes the organization to Pay as you go.
78
+ - Pro to Starter, or Pro or Starter to Free, takes effect at the end of the current billing period. Billing shows the destination and effective date until then.
79
+ - Review the confirmation before scheduling Pro to Starter. It explains the immediate spending stop, retained benefits and charges already incurred; opening it does not change the plan.
80
+ - Switching the scheduled destination between Free and Starter keeps the same effective date and the same moment automatic spending stopped. Nothing is re-granted. Team organizations reach Free through **Cancel subscription**, not the plan dialog.
81
+ - Choosing the current plan again before that date cancels the scheduled change and its Starter successor.
82
+ - A scheduled Starter starts with its first monthly payment. With no card on file that payment fails and the organization moves to Free through payment recovery. Legacy Pay as you go requires an active payment method: removing its only valid card returns the organization to Free immediately.
83
+ - A failed Pro renewal follows the payment-recovery flow. It never silently changes the organization to Starter.
83
84
 
84
85
  ## Legacy plan transitions
85
86