fimo 2.10.0 → 2.10.1-staging.1
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.
- package/README.md +9 -0
- package/assets/skills/fimo-cli/SKILL.md +0 -1
- package/assets/skills/fimo-cli/references/account.md +2 -0
- package/assets/skills/fimo-cli/references/agent-setup.md +1 -1
- package/assets/skills/fimo-cli/references/assets.md +2 -0
- package/assets/skills/fimo-cli/references/branches.md +10 -2
- package/assets/skills/fimo-cli/references/content.md +11 -1
- package/assets/skills/fimo-cli/references/deploy.md +1 -26
- package/assets/skills/fimo-cli/references/init.md +18 -18
- package/assets/skills/fimo-code/references/content/richtext.md +2 -2
- package/assets/skills/fimo-studio/references/ai-chat.md +2 -2
- package/assets/skills/fimo-studio/references/billing-and-credits.md +12 -1
- package/assets/skills/fimo-studio/references/project-creation.md +4 -4
- package/dist/cli/bundle.json +1 -1
- package/dist/cli/index.js +123 -112
- package/package.json +8 -8
- package/release.json +2 -2
- package/templates/astro/package.json +3 -3
- package/templates/nextjs/package.json +4 -4
- package/templates/react-router/package.json +5 -5
- package/templates/sveltekit/package.json +3 -3
- package/templates/vite/package.json +5 -5
package/README.md
CHANGED
|
@@ -37,6 +37,15 @@ cd my-site
|
|
|
37
37
|
|
|
38
38
|
Every command runs the same way: **`npx fimo@latest <command>`**. `fimo init` sets up the site, pushes the first commit, and wires it to your Fimo account. Open it in your coding agent and start building.
|
|
39
39
|
|
|
40
|
+
## No account yet?
|
|
41
|
+
|
|
42
|
+
`fimo new` creates a site without signing in; a person claims it within 72 hours through the printed claim link. It is the path for sandboxes, CI, and headless coding agents, where `fimo login` cannot open a browser:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npx fimo@latest new my-site # creates the site and prints the claim link
|
|
46
|
+
npx fimo@latest new --instructions # the setup guide for coding agents (the text of https://fimo.new)
|
|
47
|
+
```
|
|
48
|
+
|
|
40
49
|
## AI coding tools
|
|
41
50
|
|
|
42
51
|
Fimo ships skills and rules for your AI coding tools (Claude Code, Cursor, Codex, Gemini, and more) so the agent knows how to work in a Fimo site. `fimo init` installs them for you — add or refresh them any time (`--mode=copy` is required under npx):
|
|
@@ -135,7 +135,6 @@ These fire at specific moments in the project lifecycle. **Surface them proactiv
|
|
|
135
135
|
- **Right after `fimo init`** → start the app locally with the project's package-manager `dev` script (`pnpm dev` / `npm run dev` / `yarn dev` / `bun dev`) in the background. This localhost server with live reload is your iteration loop — edit, show, repeat. No deploy is needed to see local changes. If the initiating request did not say what to build, ask the developer — after the first preview on the create-new path, never as a blocker before initializing.
|
|
136
136
|
- **When a user-visible unit of work looks done outside first-time onboarding** → **offer** to deploy (`fimo deploy` for a hosted project preview, `fimo deploy --publish` to go live) and run it only after the developer confirms — or immediately if they ask. Never deploy ordinary edits on your own. See `references/deploy.md`.
|
|
137
137
|
- **Optional, outside new-project onboarding (its first preview already warms the sandbox), if you already know a deploy is coming** → warm the sandbox early with `fimo deploy -m "chore: init" &` in the background so the one-time ~15-30s provision + dep install happens while you work and the real deploy lands warm (~4-10s). This is a perf optimization, not a requirement. See `references/deploy.md` § Warm the sandbox early in a session.
|
|
138
|
-
- **Iterative code-only deploys** → once you are deploying, `fimo deploy --no-restart` skips the sandbox dev-server restart on HMR-safe edits. See `references/deploy.md` § Skipping the dev-server restart for when it's safe.
|
|
139
138
|
- **You need the current preview URL but haven't changed code** (opening it, screenshotting it, handing it to another tool, the previous URL expired) → `fimo preview url`, never a no-op `fimo deploy`. See `references/preview.md`.
|
|
140
139
|
- **When the user wants to try something risky / explore a redesign without touching the live site** → suggest a feature Branch: `fimo checkout -b <name>` gives an isolated Branch + DB + preview. Deploy previews there, then `fimo merge` it back and `fimo publish`. See `references/branches.md`.
|
|
141
140
|
- **After completing or safely preserving the user's main work, when a confirmed Fimo platform failure still materially blocks the task after one safe recovery attempt, or a confirmed missing capability blocks completion or forces a fragile or heavily manual workaround** → use the built-in `supportReport` tool. Do not wait for the user to ask and do not stop after only describing the gap. See `references/support.md`.
|
|
@@ -10,6 +10,8 @@ fimo login # opens your browser; the CLI captures the token automatically
|
|
|
10
10
|
|
|
11
11
|
`fimo login` starts a local loopback server, opens your browser to authorize, and the browser redirects the token back to the CLI — **there's nothing to copy or paste**. After login, the CLI saves the session token and auto-selects an active organization (your session's current org, otherwise the first one) — it never prompts. If you belong to more than one org, change the active one later with `fimo orgs switch` (see below).
|
|
12
12
|
|
|
13
|
+
`fimo login` needs a browser on this machine, not a terminal: a coding agent can run it and the user finishes sign-in in the browser that opens. Where no browser can open (a sandbox, CI), it stops at once with `LOGIN_REQUIRES_BROWSER`; create the site without an account instead with `fimo new <dir> --yes --json` (`fimo new --instructions` prints the guide).
|
|
14
|
+
|
|
13
15
|
```bash
|
|
14
16
|
fimo whoami # show the currently signed-in user + active organization
|
|
15
17
|
fimo logout # revoke the current session and clear local credentials
|
|
@@ -84,7 +84,7 @@ Every command that takes agents accepts the same selection inputs:
|
|
|
84
84
|
- **Additional** — agents that get the global bootstrap skill installed. The popular ones (`claude-code`, `cursor`, `codex`, `opencode`, `windsurf`, `gemini-cli`, `hermes`) appear at the top of the picker; the full list of supported agents remains available below them. Agents already set up on the machine are pre-checked.
|
|
85
85
|
- `--agents=none` (only `fimo init`) — skip the global skill entirely.
|
|
86
86
|
|
|
87
|
-
In headless contexts (CI, agent-spawned commands), pass the flag explicitly. Env-var detection (only Claude Code's `CLAUDECODE` / `CLAUDE_CODE_ENTRYPOINT`) silently targets `claude-code` if the flag is omitted; every other agent must be named explicitly with `--agents` in a headless shell, or the command exits with "No agents detected and no --agents flag passed."
|
|
87
|
+
In headless contexts (CI, agent-spawned commands), pass the flag explicitly. Env-var detection (only Claude Code's `CLAUDECODE` / `CLAUDE_CODE_ENTRYPOINT`) silently targets `claude-code` if the flag is omitted; every other agent must be named explicitly with `--agents` in a headless shell, or the command exits with "No agents detected and no --agents flag passed." `fimo new` takes no agent flags and installs no skill. A non-interactive `fimo init` without `--skills` installs no skill and needs no agent; with `--skills` and no agent found, it still sets up the site and skips the skill install with a warning.
|
|
88
88
|
|
|
89
89
|
## Always current, never stale
|
|
90
90
|
|
|
@@ -15,6 +15,8 @@ fimo assets upload ./hero.jpg --name "Hero Image" --parent-id "<folder-uuid>"
|
|
|
15
15
|
fimo assets upload ./screenshot.png --folder-path ".agents/<session-id>/screenshots"
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
+
Upload options are `--name`, `--parent-id`, and `--folder-path`. Set alt text in the content media field's `alt` value or the rendering component; upload does not accept `--alt`.
|
|
19
|
+
|
|
18
20
|
Response (JSON) — the full asset object, wrapped in a `data` envelope:
|
|
19
21
|
|
|
20
22
|
```json
|
|
@@ -32,7 +32,7 @@ fimo --branch <name> <command> # peek at another Branch for one command (does n
|
|
|
32
32
|
| `fimo branch -d <name>` | `git branch -d` | Delete a Branch — tears down its sandbox, Neon branch, and R2 prefix. Refuses `main` and `prod`. |
|
|
33
33
|
| `fimo checkout <name>` | `git checkout` | Switch to a Branch (checks out the matching git branch; the app derives its Branch from that branch at startup). `-b` creates + switches; `--from <branch>` sets the parent. |
|
|
34
34
|
| `fimo switch <name>` | `git switch` | Switch to an existing Branch. Takes only `<name>` (no `-b`/`--from`) — use `fimo checkout -b` to create + switch. |
|
|
35
|
-
| `fimo pull` | `git pull` |
|
|
35
|
+
| `fimo pull` | `git pull` | Fast-forward the local checkout to the Branch's latest code on Fimo. Never changes the Branch on the server. |
|
|
36
36
|
| `fimo diff [from] [to]` | `git diff` | Two-Branch diff across all surfaces. Defaults `from` = current Branch, `to` = `main`. `--surface <name>` limits to one; `--json`; `--no-color`. |
|
|
37
37
|
| `fimo status` | `git status` | Multi-surface status for the current Branch vs its parent. See below. |
|
|
38
38
|
| `fimo merge <from>` | `git merge` | Merge another Branch into the current one (multi-surface, atomic, interactive conflict resolver). See below. |
|
|
@@ -95,7 +95,15 @@ fimo merge feat/seo --allow-direct-merge # override the "don't merge straight
|
|
|
95
95
|
|
|
96
96
|
## `fimo pull`
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
Brings the current Branch's latest code from Fimo into the local checkout, like `git pull --ff-only fimo <branch>`. Run it before editing locally when the Branch may have changed elsewhere (Studio, an agent, a teammate's deploy). It only reads from Fimo: it never changes the Branch on the server. To bring `main` into a feature Branch, use `fimo merge main`.
|
|
99
|
+
|
|
100
|
+
It never rebases, merges, or stashes local work. It stops instead:
|
|
101
|
+
|
|
102
|
+
- `ENV_BRANCH_BEHIND_DIRTY` — the checkout is behind and has uncommitted changes. Commit or stash them, then run `fimo pull` again.
|
|
103
|
+
- `ENV_BRANCH_DIVERGED` — local commits and remote commits both exist. Run `git pull --rebase fimo <branch>`, fix any conflicts, then `fimo deploy`.
|
|
104
|
+
- `ENV_BRANCH_MISMATCH` — the git checkout is on another branch, or a detached HEAD. Run `fimo checkout <branch>`.
|
|
105
|
+
|
|
106
|
+
`--json` returns `details.commits_pulled` and `details.head` (the checkout's commit afterwards).
|
|
99
107
|
|
|
100
108
|
## Publishing — `fimo publish` vs `fimo deploy --publish`
|
|
101
109
|
|
|
@@ -81,7 +81,17 @@ fimo entries bulk-update <TypeName> (--file <path> | --stdin)
|
|
|
81
81
|
fimo entries bulk-delete <TypeName> (--ids <id1>,<id2> | --where '<json>') [--locale es]
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
`create` and `update` require `--body` with a `data` envelope. The content type is positional. For JSON files, use `bulk-create` or `bulk-update` with their documented array formats.
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
fimo entries create BlogPost --body '{"data":{"slug":"hello","title":"Hello"}}'
|
|
88
|
+
fimo entries update BlogPost <id> --body '{"data":{"title":"Updated"}}'
|
|
89
|
+
fimo entries list BlogPost --where '{"slug":"hello"}'
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
For `get`, `update`, and `delete`, use the UUID returned as `id` by create/list. To find an entry by slug, filter with `list --where` as above, then use its `id`.
|
|
93
|
+
|
|
94
|
+
Run `fimo skills get fimo-code --ref content/richtext` before constructing an entry payload: slug belongs inside `data`, media has a specific shape, and richtext must be Tiptap JSONContent.
|
|
85
95
|
|
|
86
96
|
`entries list` accepts the same read query surface as generated hooks:
|
|
87
97
|
|
|
@@ -15,7 +15,6 @@ Before deploying, Fimo fast-forwards a clean checkout that is behind and stops o
|
|
|
15
15
|
```bash
|
|
16
16
|
fimo deploy # preview only (default; reversible)
|
|
17
17
|
fimo deploy -m "<commit message>" # commit pending + push + sandbox sync
|
|
18
|
-
fimo deploy --no-restart # skip dev-server restart (HMR-safe changes only)
|
|
19
18
|
fimo deploy -m "<commit message>" --publish # also publish a new live version
|
|
20
19
|
```
|
|
21
20
|
|
|
@@ -23,7 +22,6 @@ fimo deploy -m "<commit message>" --publish # also publish a new live version
|
|
|
23
22
|
- **`fimo deploy --publish`** — same as above, then triggers a live publish and prints the live URL. Runs from the configured Production source Branch only. **Only use `--publish` when the user signals "ship it"** — first-time site completion, or an explicit "publish" / "go live" request. Otherwise stick to plain `fimo deploy`. (For a _versioned_ prod release, use `fimo publish` instead — see below.)
|
|
24
23
|
- **`-m`** is the commit message used when there are uncommitted local changes; required in non-interactive shells. Omit if the working tree is already clean.
|
|
25
24
|
- **`--description "<why>"`** — the commit body for those changes: why they were made. Teammates and agents that later edit the same files read it, for example when a merge conflicts. Pass it with `-m` when the reason is not obvious from the diff.
|
|
26
|
-
- **`--no-restart`** — tells the sandbox to skip the dev-server restart and let Vite HMR pick up the change. Shaves ~3s per deploy. A deploy that carries changed variables restarts anyway. See "Skipping the dev-server restart" below for when it's safe.
|
|
27
25
|
|
|
28
26
|
## Reading deploy destinations
|
|
29
27
|
|
|
@@ -89,7 +87,7 @@ Redirects, response headers, and URL shape belong in
|
|
|
89
87
|
|
|
90
88
|
This is a **performance optimization, only worth doing when you already know a deploy is coming** (the developer asked to publish, or you're confident they'll want a hosted preview soon). If you're just iterating locally, skip it — don't deploy pre-emptively. New-project onboarding never needs it: its automatic first preview deploy is the warm-up.
|
|
91
89
|
|
|
92
|
-
The first deploy of a project's life pays a one-time cost: the sandbox has to provision (create the VM, install the user's deps if they differ from the template's baked ones, start the dev server) — about 15-30s. Every deploy after that lands on a warm sandbox (~10s
|
|
90
|
+
The first deploy of a project's life pays a one-time cost: the sandbox has to provision (create the VM, install the user's deps if they differ from the template's baked ones, start the dev server) — about 15-30s. Every deploy after that lands on a warm sandbox (~4-10s).
|
|
93
91
|
|
|
94
92
|
**To hide that one-time cost, kick off an early deploy in the background while you keep working.** The provisioning happens during your generation work, so by the time the developer wants a hosted preview, the sandbox is already warm and the deploy is fast.
|
|
95
93
|
|
|
@@ -99,29 +97,6 @@ fimo deploy -m "chore: init" & # background; keep generating code while i
|
|
|
99
97
|
|
|
100
98
|
There's nothing special about this — it's the same `fimo deploy` you'd run later. The `-m` is the commit message for any files `validate` writes via codegen; pick a sensible conventional-commit string (e.g. `chore: init`, `chore: scaffold`). The point is purely the timing: pay the provisioning tax up front instead of when the user is waiting on a result. **This is also the only path that installs your project's deps on the sandbox** — if you skip it, the first interactive deploy will pay both costs.
|
|
101
99
|
|
|
102
|
-
## Skipping the dev-server restart
|
|
103
|
-
|
|
104
|
-
`fimo deploy --no-restart` tells the API not to restart the sandbox's dev server after pulling new code. Vite's HMR picks up the change instead, which is what it's designed for — 3+ seconds saved per deploy.
|
|
105
|
-
|
|
106
|
-
**Use `--no-restart` when you only touched HMR-safe files:**
|
|
107
|
-
|
|
108
|
-
- Anything under `src/**` (components, pages, hooks, styles)
|
|
109
|
-
- Fixed-path static files under `public/`, such as favicons or `robots.txt` (images and videos belong in the media library, not the repository; see the `fimo-code` skill's non-negotiable boundaries)
|
|
110
|
-
- Content / entries / translations / form definitions (JSON the Fimo runtime hot-loads)
|
|
111
|
-
|
|
112
|
-
**Do NOT use `--no-restart` when you touched any of these — they require a fresh dev server:**
|
|
113
|
-
|
|
114
|
-
- `vite.config.*` (Vite plugin or config changes)
|
|
115
|
-
- `react-router.config.*` (router config)
|
|
116
|
-
- `tsconfig.json` (TypeScript compiler)
|
|
117
|
-
- `.env` (env vars are read at process start)
|
|
118
|
-
- `package.json` or any lockfile (dep changes)
|
|
119
|
-
- Anything under `.fimo/` (Fimo's own pre-build / runtime config)
|
|
120
|
-
|
|
121
|
-
**When in doubt, omit the flag.** The default (restart) is the safe choice — a wasted restart costs 3 seconds; a missing one costs the user serving stale code until they notice and re-deploy.
|
|
122
|
-
|
|
123
|
-
**One case is handled for you:** if the deploy changes the project's route set (a page added, removed, or moved), the API tells the preview to reload regardless of this flag. A router builds its route table once per document, so the new page would otherwise exist but be unreachable — missing from the Studio route selector and 404-ing from the site's own links. This costs a page load, not a restart.
|
|
124
|
-
|
|
125
100
|
## Publishing: `fimo deploy --publish` vs `fimo publish`
|
|
126
101
|
|
|
127
102
|
Use `fimo deploy --publish` to push and publish local changes. Use `fimo publish` to publish the revision already on the Fimo remote without pushing. Both target the configured Production source Branch.
|
|
@@ -10,30 +10,30 @@ fimo init [dir] [options]
|
|
|
10
10
|
|
|
11
11
|
`fimo init` runs the full onboarding in one shot:
|
|
12
12
|
|
|
13
|
-
1. **Signs in automatically** — if there's no session it opens the browser loopback login. In `--json` / non-TTY with no session it fails with `NOT_AUTHENTICATED
|
|
13
|
+
1. **Signs in automatically** — if there's no session it opens the browser loopback login. In `--json` / non-TTY with no session it fails with `NOT_AUTHENTICATED`: run `fimo login` in a terminal first, or create the site without an account with `fimo new <dir>` (see `account.md`).
|
|
14
14
|
2. **Resolves the project** — with `--project-id <id>` it sets up the named Fimo site: a project with no code yet is scaffolded as a fresh site, while an existing repository is cloned. Without it, `init` creates a NEW project. An interactive TTY shows a "Create new / Link existing" picker; non-interactive shells default to create-new. New sites use the Next.js App Router by default; `--framework react-router`, `--framework vite`, `--framework astro`, and `--framework sveltekit` select the other minimal framework-native shells.
|
|
15
15
|
3. **Installs dependencies** — prompts for the package manager, or honor `--package-manager <pm>` / `--no-install`.
|
|
16
16
|
4. **Optionally sets up Fimo skills** — confirm prompt, or `--skills` / `--no-skills`.
|
|
17
17
|
|
|
18
18
|
Generated pnpm projects pin `pnpm@10.26.0` and carry project-owned `pnpm-workspace.yaml#strictDepBuilds: true` and `#allowBuilds` settings. Generated Bun projects trust the same required packages through `package.json#trustedDependencies`. Keep the selected package manager's policy committed. When adding a dependency with an install script, review it before extending that policy; never replace it with a blanket allow-all install.
|
|
19
19
|
|
|
20
|
-
| Flag | Required | Purpose
|
|
21
|
-
| ---------------------------- | ----------------------------- |
|
|
22
|
-
| `[dir]` positional | yes in non-TTY for create-new | Target directory (e.g. `my-site`)
|
|
23
|
-
| `--project-id <id>` | no | Set up the named Fimo site: scaffold and push a fresh site when it has no code yet, otherwise clone it.
|
|
24
|
-
| `--org <id>` | no | Target organization **id** when creating (use the `ID` column from `fimo orgs list`, NOT the slug). Picker shown interactively if omitted and TTY.
|
|
25
|
-
| `--branch <name>` | no | Branch to check out when linking an existing project (defaults to `main`).
|
|
26
|
-
| `--env <name>` | no | Rejected as a Branch selector; use `--branch <name>`.
|
|
27
|
-
| `--framework <framework>` | no | New-project scaffold: `nextjs` (App Router, default), `react-router`, `vite` (React SPA), `astro`, or `sveltekit`. Existing repositories are preserved.
|
|
28
|
-
| `--package-manager <pm>` | no | `npm` \| `pnpm` \| `yarn` \| `bun`.
|
|
29
|
-
| `--install` / `--no-install` |
|
|
30
|
-
| `--skills` / `--no-skills` |
|
|
31
|
-
| `--agents <list>` | no | Comma-separated agent IDs (e.g. `claude-code,cursor`). Pass `none` to skip installing the global skill.
|
|
32
|
-
| `-a, --agent <id>` | alternative | Repeatable form: `-a claude-code -a cursor`.
|
|
33
|
-
| `--template-root <path>` | no | Override the bundled template (development only).
|
|
34
|
-
| `-y, --yes` | no | Run non-interactively using defaults (no prompts).
|
|
35
|
-
|
|
36
|
-
In a non-TTY shell the create-new path requires `[dir]`,
|
|
20
|
+
| Flag | Required | Purpose |
|
|
21
|
+
| ---------------------------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
22
|
+
| `[dir]` positional | yes in non-TTY for create-new | Target directory (e.g. `my-site`) |
|
|
23
|
+
| `--project-id <id>` | no | Set up the named Fimo site: scaffold and push a fresh site when it has no code yet, otherwise clone it. |
|
|
24
|
+
| `--org <id>` | no | Target organization **id** when creating (use the `ID` column from `fimo orgs list`, NOT the slug). Picker shown interactively if omitted and TTY. |
|
|
25
|
+
| `--branch <name>` | no | Branch to check out when linking an existing project (defaults to `main`). |
|
|
26
|
+
| `--env <name>` | no | Rejected as a Branch selector; use `--branch <name>`. |
|
|
27
|
+
| `--framework <framework>` | no | New-project scaffold: `nextjs` (App Router, default), `react-router`, `vite` (React SPA), `astro`, or `sveltekit`. Existing repositories are preserved. |
|
|
28
|
+
| `--package-manager <pm>` | no | `npm` \| `pnpm` \| `yarn` \| `bun`. |
|
|
29
|
+
| `--install` / `--no-install` | no | Install deps after checkout (or skip it). |
|
|
30
|
+
| `--skills` / `--no-skills` | no | Install the global Fimo skill (or skip it). |
|
|
31
|
+
| `--agents <list>` | no | Comma-separated agent IDs (e.g. `claude-code,cursor`). Pass `none` to skip installing the global skill. Non-interactive runs without it use `none`, unless `--skills` is passed. |
|
|
32
|
+
| `-a, --agent <id>` | alternative | Repeatable form: `-a claude-code -a cursor`. |
|
|
33
|
+
| `--template-root <path>` | no | Override the bundled template (development only). |
|
|
34
|
+
| `-y, --yes` | no | Run non-interactively using defaults (no prompts). |
|
|
35
|
+
|
|
36
|
+
In a non-TTY shell (or with `-y` / `--json`) the create-new path requires `[dir]`, and `--org` if you have no active org and belong to multiple orgs. Everything else takes a default: dependencies install with the detected package manager unless you pass `--no-install`, and no skill is installed unless you pass `--skills`.
|
|
37
37
|
|
|
38
38
|
### Non-interactive setup
|
|
39
39
|
|
|
@@ -33,7 +33,7 @@ generated client hydration helper where required.
|
|
|
33
33
|
|
|
34
34
|
## Entry payload
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
`entries create` and `entries update` take `--body` with every field, including the collection slug, under `data`:
|
|
37
37
|
|
|
38
38
|
```json
|
|
39
39
|
{
|
|
@@ -46,7 +46,7 @@ CLI entry writes put every value, including the collection slug, under `data`:
|
|
|
46
46
|
}
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
Keep `slug` inside `data`; `entries create` rejects unsupported top-level keys.
|
|
50
50
|
|
|
51
51
|
Slugs should be lowercase, hyphenated, stable, meaningful, and unique per content type. Fimo slugifies the supplied candidate. If omitted, Fimo generates one, which is unsuitable for content with durable public URLs.
|
|
52
52
|
|
|
@@ -12,7 +12,7 @@ The plan decides the agents (FIMO-2856): Free has the SEO and GEO default agents
|
|
|
12
12
|
|
|
13
13
|
An agent is a chat with a job: a name, a one-line summary for people, and instructions that Fimo reads at the start of every reply in that chat and every run of its routines (FIMO-3079). Live agents are shared like any chat, with an **Agent** tag after the name. The **+** above the chat list is a menu: **New chat** (blank), **New agent** (opens the new agent's chat at once: the agent asks what it should do with three one-click answers, then drafts its name, summary, instructions and routines on one card; **Create agent** sends the person's agreement and the agent goes live, the team sees it and its routines start; until then only its creator sees it, as **New agent** with **Setting up…**, its routines do not run, and its chat changes nothing on the site (it reads the site, its data and the web; no CLI, files, work sessions or publish), and it goes live only after the person saw its latest draft; a routine time the person did not name keeps its hour and Fimo picks the minute; below Pro, **Create agent** opens the plans), 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 starter is sent as shown, by anyone who can send messages. Asked to, an agent changes its own instructions with its `agent` tool; the chat shows **Updated instructions** with **View change** (before and after). The agent's settings page has **Summary** and **Instructions** fields, shared with everyone (empty means none), and an **Instruction history** where **Restore previous** puts back the text a change replaced. In text, an agent links another as `[Name](agent://id)`, shown as a chip that opens it. 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,
|
|
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, changes since its last run: pages moved without a redirect, and, with Search Console, old addresses Google still shows that the site no longer serves), **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
|
|
|
@@ -37,7 +37,7 @@ A routine is saved instructions an agent runs in a thread of its own, by hand, o
|
|
|
37
37
|
|
|
38
38
|
The AI can place choices, cards, tables, images, and contextual actions directly in its reply. Optional suggestions do not interrupt the conversation.
|
|
39
39
|
|
|
40
|
-
When the AI needs an answer before it can continue, it
|
|
40
|
+
When the AI needs an answer before it can continue, it opens a form in the conversation, under the message that asks, and waits for your response. The form goes one step at a time with **Previous**, **Next**, and **Submit**, and a step with choices has an optional note field under them. If you send a message that does not answer it, the question folds to one line with an orange **?** where it was asked. Select it to open it there and answer it at any time; the answer is sent as a new message at the end of the chat. An answered question shows a gray check next to its title. When a routine asks again before anyone answered, its earlier question stays unanswered, folded where it was asked. Select **Minimize** to fold the form to one line without losing your answers, then select that line to reopen it. **Submit** sends only the completed form and leaves anything typed in the message box unsent. Sending from the message box includes any selections already made in the form with your message; with no selections, it is an ordinary reply and the question stays open.
|
|
41
41
|
|
|
42
42
|
## Attaching Context
|
|
43
43
|
|
|
@@ -61,10 +61,21 @@ From there:
|
|
|
61
61
|
3. Pick a plan and complete checkout.
|
|
62
62
|
4. Your new monthly credit pool is available right away.
|
|
63
63
|
|
|
64
|
+
## Activating a team organization
|
|
65
|
+
|
|
66
|
+
Only your personal organization starts on Free. A new team organization opens nothing until someone completes a Starter or Pro checkout: every page of it lands on **Choose a plan for {organization}**, and its sites, integrations, members, domains and settings stay unavailable until then.
|
|
67
|
+
|
|
68
|
+
- An owner or admin picks **Continue with Starter** or **Continue with Pro** and completes checkout. Other members see that an owner or admin must activate it.
|
|
69
|
+
- Leaving checkout without paying keeps the organization inactive. Use the organization switcher at the top of the page to go back to another organization.
|
|
70
|
+
- An owner who no longer wants the organization can delete it from the same page.
|
|
71
|
+
- A team organization that has paid once stays usable if it later moves to Free.
|
|
72
|
+
|
|
64
73
|
## Extra usage budget
|
|
65
74
|
|
|
66
|
-
Open **Billing & usage**, then **Details** beside public bandwidth. Billing admins on Starter or Pro can edit one **Monthly budget**
|
|
75
|
+
Open **Billing & usage**, then **Details** beside public bandwidth. Billing admins on Starter or Pro can edit one **Monthly budget** that covers public bandwidth, routine agent-hours, and database compute beyond each site's own allowance. The page shows each one's cost and **Spent this period**. This budget does not cover AI credit purchases or auto-refill.
|
|
67
76
|
|
|
77
|
+
- Database compute: each site includes 100 compute-unit hours a month (400 on Pro). From 1 November 2026, compute beyond that is billed from the budget at $0.08 per compute-unit hour on Starter and $0.05 on Pro. Free sites stop at their allowance.
|
|
78
|
+
- When a site stops at its database limit, the owner finds **Manage extra usage** in the site's **Database limit** details, which opens this page.
|
|
68
79
|
- At the budget, additional paid usage stops; remaining included allowances stay usable.
|
|
69
80
|
- Disabling extra usage preserves charges already incurred. The budget cannot be lowered below existing extra-usage charges.
|
|
70
81
|
|
|
@@ -11,13 +11,13 @@ To build with your own AI instead, select **Build with ChatGPT, Claude or a codi
|
|
|
11
11
|
## Start From a Website
|
|
12
12
|
|
|
13
13
|
1. Enter the website address. Fimo checks that it can read the site; if it cannot, it says why and nothing is created.
|
|
14
|
-
2. Fimo creates the site, reads its homepage, works out what kind of site it is (business, non-profit, portfolio, hobby or personal site), and asks three questions that fit it in a short chat. It always starts by confirming what it understood. A business then keeps or adds its competitors and says how it stands out and how
|
|
15
|
-
3. The report opens as soon as the last question is answered. It shows how ready the site is for search engines (SEO) and AI answers (GEO), with every check and how to fix it. Leaving and coming back resumes where you left off.
|
|
16
|
-
4. Select **
|
|
14
|
+
2. Fimo creates the site, reads its homepage, works out what kind of site it is (business, non-profit, portfolio, hobby or personal site), and asks three questions that fit it in a short chat. It always starts by confirming what it understood. A business then keeps or adds its competitors and says how it stands out and how its prices compare to those competitors; other sites say what visitors should do and what to put forward, picking suggestions or typing their own. The answers are saved as the site's knowledge. If Fimo cannot read the site for the questions, select **Try again**.
|
|
15
|
+
3. The report opens as soon as the last question is answered. It shows how ready the site is for search engines (SEO) and AI answers (GEO), with every check and how to fix it. To keep or share it, select **Export**. Leaving and coming back resumes where you left off.
|
|
16
|
+
4. Select **Recreate and fix my homepage**, under the score. The site opens on its **Getting started** chat, where Fimo rebuilds the homepage with the report's problems fixed, then shows the new score and what it changed. Only the homepage is rebuilt; links to other pages still go to the current site. The first two homepage rebuilds are free; after that, a rebuild uses credits.
|
|
17
17
|
|
|
18
18
|
Fimo does not rebuild a site that breaks its terms of use: the onboarding stops with a message to contact support.
|
|
19
19
|
|
|
20
|
-
The report and the homepage copy Fimo read are deleted after 7 days.
|
|
20
|
+
The report and the homepage copy Fimo read are deleted after 7 days. Export the report to keep it.
|
|
21
21
|
|
|
22
22
|
Once the homepage is rebuilt, a banner offers to bring over the other pages: copy a prompt into an AI, or book a call or write to the Fimo team. Website migration is in alpha, so review every result. Dismissing the banner hides it for good.
|
|
23
23
|
|