fimo projects, --project-id, and .fimo/project.json are unchanged. Use the commands below exactly as written.
Run a one-off command with the latest CLI release without installing it globally:
- npm
- Bun
- pnpm
- Yarn
- npm
- Bun
- pnpm
- Yarn
fimo <command> for brevity. Run fimo --help for the full surface and fimo <command> --help for every argument and flag.
Site-scoped commands target the current Git Branch. Use --branch <name> to override it for one command; the removed --env <name> selector is rejected. Other global options include --json, --no-color, and --ascii. Some commands add their own output flags.
Paginated lists
Paginated list commands share three flags:--limit sets the page size. When more results exist, the command returns a nextCursor or prints an exact continuation command using --cursor. Use --all-pages when you intentionally need every remaining result. The older --before, --offset, and schedule --all spellings remain accepted as compatibility aliases, but new scripts should use the shared flags.
Sites & onboarding
Migration
fimo migrate init only sets the target up: it creates or links the site, scaffolds it, and pushes the first commit. It never reads the source site. Your coding agent reads the source and does the rebuild.
Migration flags
Account & organizations
Support
Content
See Content and schemas for the content workflow.
Forms
Media
Labels
Locales
Deploy & publish
See Deploy and publish for the workflow.
Site checks
See Check your site for topics and results.
Branches
Environments
Environments group Branches for deployment. They are a different concept from a Branch: Production and Preview are built in, and a custom Environment claims Branches by name or pattern.Site variables & secrets
Every command targets one Environment with--env production, --env preview or --env <name> for a custom Environment. Without --env, it targets the Environment of the checked-out Branch, so main targets Preview, not Production.
For example,
fimo vars add STRIPE_SECRET_KEY --private --stdin --env production sets the live key, and the same command with --env preview sets the test key. Each result names the Environment it changed. A Production change reaches the live site only after you publish again, and the command warns about it. Picking the Environment with --branch still works for these commands but is deprecated and prints a warning.
Public variables are readable and may use browser-safe prefixes such as VITE_, PUBLIC_, NEXT_PUBLIC_, or NUXT_PUBLIC_. Private variables hold API keys the site’s server code reads: they are hidden after they are written, reach previews, schedules, and production as server-side environment variables, never land in an env file or the browser bundle, and cannot use those prefixes. Secrets are for Fimo itself (webhooks, schedules, agents) and never reach the site.
fimo vars writes public variables into a managed block in .env.local so local development picks the value up immediately, and fimo vars pull refreshes it later. Private variables are never pulled: for each one you have not set yourself, the block gets a comment reminding you to add a local value outside it. See Variables and Secrets for the Studio side, and use --help before changing stored values.
Integrations
Integrations run on the current site: run them inside a linked site, or pass--project <id> (and -C, --cwd <dir>) to any of these commands.
connect, add, reconnect, rotate and remove need an organization admin.
Prefer
--token-stdin over --token in shells that record history. A tool that changes data in the outside service may need a yes: when it needs approval, fimo integrations run stops with APP_APPROVAL_REQUIRED and a link to Studio. Once someone allowed it there, run the same command with --approval <code> and the one-time code Studio showed, within the hour. See Integrations and Add MCP servers.
Built-in services
Firecrawl and Fal are built into Fimo, on Fimo’s provider account and billed in Fimo credits. They are no longer available to new sites. A site that already uses one keeps it: it shows infimo integrations list, and
info <key>, status <key>, enable, disable and run <key> <tool> work as before. To use your own provider
account instead, add that provider’s MCP server with fimo integrations add.
Deprecated commands
fimo mcp still works, prints a warning, and runs through the same change checks. Use these instead: