fimo 0.21.0-staging.4 → 0.21.0-staging.6

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.
Files changed (310) hide show
  1. package/assets/skills/fimo/SKILL.md +1 -1
  2. package/assets/skills/fimo-cli/SKILL.md +1 -1
  3. package/assets/skills/fimo-cli/references/assets.md +25 -1
  4. package/assets/skills/fimo-cli/references/branches.md +4 -1
  5. package/assets/skills/fimo-cli/references/forms.md +1 -1
  6. package/assets/skills/fimo-cli/references/init.md +17 -5
  7. package/assets/skills/fimo-cli/references/integrations.md +24 -0
  8. package/assets/skills/fimo-cli/references/mcp.md +98 -57
  9. package/assets/skills/fimo-cli/references/project-vars-and-secrets.md +3 -1
  10. package/assets/skills/fimo-cli/references/projects.md +2 -2
  11. package/assets/skills/fimo-code/assets/react-router-locales/navigation.tsx +1 -1
  12. package/assets/skills/fimo-code/references/assets.md +2 -2
  13. package/assets/skills/fimo-code/references/best-practices/next.md +1 -1
  14. package/assets/skills/fimo-code/references/forms.md +1 -1
  15. package/assets/skills/fimo-code/references/frameworks/astro.md +8 -2
  16. package/assets/skills/fimo-code/references/frameworks/compatibility.md +9 -9
  17. package/assets/skills/fimo-code/references/frameworks/hosting.md +17 -13
  18. package/assets/skills/fimo-code/references/frameworks/next/app-router.md +8 -9
  19. package/assets/skills/fimo-code/references/frameworks/next/locales.md +1 -1
  20. package/assets/skills/fimo-code/references/frameworks/next/pages-router.md +5 -5
  21. package/assets/skills/fimo-code/references/frameworks/next.md +41 -32
  22. package/assets/skills/fimo-code/references/frameworks/react-router.md +8 -6
  23. package/assets/skills/fimo-code/references/frameworks/sveltekit.md +19 -10
  24. package/assets/skills/fimo-code/references/frameworks/vite-react.md +7 -5
  25. package/assets/skills/fimo-code/references/labels.md +4 -4
  26. package/assets/skills/fimo-code/references/ui.md +4 -4
  27. package/assets/skills/fimo-migration/references/frameworks/nextjs.md +12 -15
  28. package/assets/skills/fimo-migration/references/media.md +4 -2
  29. package/assets/skills/fimo-migration/references/qa.md +10 -8
  30. package/assets/skills/fimo-migration/references/workers/content-planner.md +20 -10
  31. package/assets/skills/fimo-migration/references/workflow.md +8 -6
  32. package/assets/skills/fimo-migration/scripts/retrieval/strapi/public-content.mjs +243 -0
  33. package/assets/skills/fimo-migration/scripts/retrieval/strapi/source-schema.mjs +148 -0
  34. package/assets/skills/fimo-studio/SKILL.md +3 -1
  35. package/assets/skills/fimo-studio/references/command-palette.md +8 -3
  36. package/assets/skills/fimo-studio/references/connections.md +52 -0
  37. package/assets/skills/fimo-studio/references/webhooks.md +1 -1
  38. package/assets/starters/fimo-site/template/src/pages/Contact.tsx +1 -1
  39. package/assets/starters/fimo-site/template/src/pages/SiteContent.tsx +1 -1
  40. package/assets/starters/fimo-site/template/src/schemas/HomePage.ts +3 -3
  41. package/assets/starters/fimo-site/template/src/schemas/HomePage.types.ts +1 -1
  42. package/dist/build/astro/config.d.ts +13 -2
  43. package/dist/build/astro/config.js +9 -24
  44. package/dist/build/next/moved.d.ts +2 -0
  45. package/dist/build/next/moved.js +2 -0
  46. package/dist/build/react/router-moved.d.ts +2 -0
  47. package/dist/build/react/router-moved.js +2 -0
  48. package/dist/build/react/router-preset-moved.d.ts +2 -0
  49. package/dist/build/react/router-preset-moved.js +2 -0
  50. package/dist/build/react/router-routes-moved.d.ts +2 -0
  51. package/dist/build/react/router-routes-moved.js +2 -0
  52. package/dist/build/react/ui-moved.d.ts +2 -0
  53. package/dist/build/react/ui-moved.js +2 -0
  54. package/dist/build/react/vite-moved.d.ts +2 -0
  55. package/dist/build/react/vite-moved.js +2 -0
  56. package/dist/build/sveltekit/config.d.ts +5 -4
  57. package/dist/build/sveltekit/config.js +6 -15
  58. package/dist/build/sveltekit/moved.d.ts +13 -0
  59. package/dist/build/sveltekit/moved.js +3 -0
  60. package/dist/build/vite/data-id.d.ts +11 -0
  61. package/dist/build/vite/data-id.js +20 -0
  62. package/dist/build/vite/plugins/runtime-env.d.ts +1 -1
  63. package/dist/build/vite/plugins/runtime-env.js +6 -2
  64. package/dist/build/vite/runtime-env.d.ts +2 -0
  65. package/dist/build/vite/runtime-env.js +1 -0
  66. package/dist/cli/bundle.json +1 -1
  67. package/dist/cli/index.js +82 -86
  68. package/dist/runtime/content/client/internal.js +1 -1
  69. package/dist/runtime/content/index.d.ts +6 -1
  70. package/dist/runtime/content/index.js +6 -0
  71. package/dist/runtime/i18n/index.d.ts +2 -0
  72. package/dist/runtime/i18n/index.js +1 -0
  73. package/dist/runtime/labels/index.d.ts +3 -0
  74. package/dist/runtime/labels/index.js +2 -0
  75. package/dist/runtime/preview/index.d.ts +5 -0
  76. package/dist/runtime/preview/index.js +4 -0
  77. package/dist/runtime/primitives/lib/index.d.ts +2 -0
  78. package/dist/runtime/primitives/lib/index.js +2 -0
  79. package/dist/runtime/seo/index.d.ts +0 -8
  80. package/dist/runtime/seo/index.js +0 -8
  81. package/dist/runtime/shared/config.d.ts +6 -0
  82. package/dist/runtime/shared/config.js +4 -0
  83. package/dist/runtime/shared/local-runtime-env.d.ts +2 -2
  84. package/dist/runtime/shared/local-runtime-env.js +7 -5
  85. package/dist/runtime/templates.d.ts +21 -5
  86. package/dist/runtime/templates.js +61 -19
  87. package/dist/scripts/extract-translations.js +8 -3
  88. package/dist/scripts/index.d.ts +3 -0
  89. package/dist/scripts/index.js +2 -0
  90. package/dist/scripts/sync-forms.js +21 -9
  91. package/dist/scripts/sync-schemas.js +45 -21
  92. package/package.json +76 -82
  93. package/templates/astro/astro.config.mjs +1 -1
  94. package/templates/astro/package.json +2 -1
  95. package/templates/nextjs/AGENTS.md +1 -1
  96. package/templates/nextjs/next.config.ts +1 -1
  97. package/templates/nextjs/package.json +2 -1
  98. package/templates/nextjs/src/app/layout.tsx +1 -1
  99. package/templates/react-router/package.json +3 -1
  100. package/templates/react-router/react-router.config.ts +1 -1
  101. package/templates/react-router/src/pages/LocaleLayout.tsx +1 -1
  102. package/templates/react-router/src/pages/legal/LegalPage.tsx +1 -1
  103. package/templates/react-router/src/root.tsx +1 -1
  104. package/templates/react-router/vite.config.ts +1 -1
  105. package/templates/sveltekit/package.json +2 -1
  106. package/templates/sveltekit/src/error.html +51 -0
  107. package/templates/sveltekit/src/routes/+error.svelte +50 -0
  108. package/templates/sveltekit/src/routes/+layout.server.ts +1 -1
  109. package/templates/sveltekit/src/routes/+layout.svelte +1 -1
  110. package/templates/sveltekit/svelte.config.js +1 -1
  111. package/templates/sveltekit/vite.config.ts +1 -1
  112. package/templates/vite/.fimo/config.json +28 -0
  113. package/templates/vite/AGENTS.md +43 -0
  114. package/templates/vite/CLAUDE.md +5 -0
  115. package/templates/vite/_gitignore +13 -0
  116. package/templates/vite/index.html +12 -0
  117. package/templates/vite/package.json +32 -0
  118. package/templates/vite/pnpm-workspace.yaml +8 -0
  119. package/templates/vite/src/App.tsx +14 -0
  120. package/templates/vite/src/LocaleLayout.tsx +12 -0
  121. package/templates/vite/src/index.css +61 -0
  122. package/templates/vite/src/main.tsx +20 -0
  123. package/templates/vite/src/vite-env.d.ts +1 -0
  124. package/templates/vite/tsconfig.json +17 -0
  125. package/templates/vite/vite.config.ts +7 -0
  126. package/assets/sveltekit/components/Boolean.svelte +0 -19
  127. package/assets/sveltekit/components/Date.svelte +0 -33
  128. package/assets/sveltekit/components/DateTime.svelte +0 -35
  129. package/assets/sveltekit/components/FimoProvider.svelte +0 -35
  130. package/assets/sveltekit/components/Image.svelte +0 -80
  131. package/assets/sveltekit/components/Json.svelte +0 -18
  132. package/assets/sveltekit/components/Label.svelte +0 -16
  133. package/assets/sveltekit/components/Number.svelte +0 -21
  134. package/assets/sveltekit/components/RichText.svelte +0 -19
  135. package/assets/sveltekit/components/Text.svelte +0 -30
  136. package/assets/sveltekit/components/Video.svelte +0 -37
  137. package/assets/sveltekit/components/index.d.ts +0 -11
  138. package/assets/sveltekit/components/index.js +0 -11
  139. package/dist/build/next/config.d.ts +0 -17
  140. package/dist/build/next/config.js +0 -66
  141. package/dist/build/sveltekit/data-id.d.ts +0 -3
  142. package/dist/build/sveltekit/data-id.js +0 -171
  143. package/dist/build/sveltekit/files/edge.js +0 -68
  144. package/dist/build/sveltekit/files/serverless.js +0 -42
  145. package/dist/build/sveltekit/vite.d.ts +0 -12
  146. package/dist/build/sveltekit/vite.js +0 -14
  147. package/dist/build/vite/index.d.ts +0 -42
  148. package/dist/build/vite/index.js +0 -160
  149. package/dist/build/vite/plugins/content-sync.d.ts +0 -11
  150. package/dist/build/vite/plugins/content-sync.js +0 -41
  151. package/dist/build/vite/plugins/data-id.d.ts +0 -12
  152. package/dist/build/vite/plugins/data-id.js +0 -109
  153. package/dist/build/vite/plugins/fimo-config.d.ts +0 -12
  154. package/dist/build/vite/plugins/fimo-config.js +0 -68
  155. package/dist/build/vite/plugins/overlay.d.ts +0 -3
  156. package/dist/build/vite/plugins/overlay.js +0 -154
  157. package/dist/build/vite/plugins/robots.d.ts +0 -10
  158. package/dist/build/vite/plugins/robots.js +0 -56
  159. package/dist/build/vite/plugins/seo.d.ts +0 -3
  160. package/dist/build/vite/plugins/seo.js +0 -112
  161. package/dist/build/vite/plugins/server-config.d.ts +0 -3
  162. package/dist/build/vite/plugins/server-config.js +0 -36
  163. package/dist/build/vite/plugins/sitemap.d.ts +0 -3
  164. package/dist/build/vite/plugins/sitemap.js +0 -73
  165. package/dist/build/vite/plugins/translations.d.ts +0 -11
  166. package/dist/build/vite/plugins/translations.js +0 -601
  167. package/dist/runtime/app/FimoProviders.d.ts +0 -30
  168. package/dist/runtime/app/FimoProviders.js +0 -193
  169. package/dist/runtime/app/FimoScripts.d.ts +0 -13
  170. package/dist/runtime/app/FimoScripts.js +0 -45
  171. package/dist/runtime/app/index.d.ts +0 -8
  172. package/dist/runtime/app/index.js +0 -4
  173. package/dist/runtime/app/prefetch.d.ts +0 -9
  174. package/dist/runtime/app/prefetch.js +0 -39
  175. package/dist/runtime/content/DataSourcesProvider.d.ts +0 -4
  176. package/dist/runtime/content/DataSourcesProvider.js +0 -63
  177. package/dist/runtime/content/RefreshContentProvider.d.ts +0 -19
  178. package/dist/runtime/content/RefreshContentProvider.js +0 -71
  179. package/dist/runtime/content/client/createContentClient.d.ts +0 -7
  180. package/dist/runtime/content/client/createContentClient.js +0 -7
  181. package/dist/runtime/content/client/createSingletonClient.d.ts +0 -5
  182. package/dist/runtime/content/client/createSingletonClient.js +0 -6
  183. package/dist/runtime/content/client/react-content-client.d.ts +0 -10
  184. package/dist/runtime/content/client/react-content-client.js +0 -165
  185. package/dist/runtime/content/client/react-singleton-client.d.ts +0 -7
  186. package/dist/runtime/content/client/react-singleton-client.js +0 -38
  187. package/dist/runtime/content/client/types.d.ts +0 -42
  188. package/dist/runtime/content/client/types.js +0 -1
  189. package/dist/runtime/content/client/useQueryLocale.d.ts +0 -2
  190. package/dist/runtime/content/client/useQueryLocale.js +0 -5
  191. package/dist/runtime/content/client/vite-runtime.d.ts +0 -3
  192. package/dist/runtime/content/client/vite-runtime.js +0 -23
  193. package/dist/runtime/content/utils/retrieve-data-sources.d.ts +0 -29
  194. package/dist/runtime/content/utils/retrieve-data-sources.js +0 -107
  195. package/dist/runtime/core/AppErrorBoundary.d.ts +0 -10
  196. package/dist/runtime/core/AppErrorBoundary.js +0 -27
  197. package/dist/runtime/core/ViteLifecycles.d.ts +0 -5
  198. package/dist/runtime/core/ViteLifecycles.js +0 -35
  199. package/dist/runtime/i18n/FimoLocaleContext.d.ts +0 -9
  200. package/dist/runtime/i18n/FimoLocaleContext.js +0 -17
  201. package/dist/runtime/iframe/ConsoleErrorProvider.d.ts +0 -3
  202. package/dist/runtime/iframe/ConsoleErrorProvider.js +0 -103
  203. package/dist/runtime/iframe/ScreenshotProvider.d.ts +0 -3
  204. package/dist/runtime/iframe/ScreenshotProvider.js +0 -60
  205. package/dist/runtime/iframe/runtime/overlay-hmr.d.ts +0 -2
  206. package/dist/runtime/iframe/runtime/overlay-hmr.js +0 -27
  207. package/dist/runtime/iframe/runtime/overlay-runtime.d.ts +0 -2
  208. package/dist/runtime/iframe/runtime/overlay-runtime.js +0 -103
  209. package/dist/runtime/index.d.ts +0 -22
  210. package/dist/runtime/index.js +0 -23
  211. package/dist/runtime/next/client-runtime.d.ts +0 -3
  212. package/dist/runtime/next/client-runtime.js +0 -24
  213. package/dist/runtime/next/client.d.ts +0 -28
  214. package/dist/runtime/next/client.js +0 -25
  215. package/dist/runtime/next/facade.d.ts +0 -8
  216. package/dist/runtime/next/facade.js +0 -34
  217. package/dist/runtime/next/labels.d.ts +0 -7
  218. package/dist/runtime/next/labels.js +0 -9
  219. package/dist/runtime/next/preview.d.ts +0 -13
  220. package/dist/runtime/next/preview.js +0 -34
  221. package/dist/runtime/next/primitives/Text.d.ts +0 -10
  222. package/dist/runtime/next/primitives/Text.js +0 -18
  223. package/dist/runtime/next/primitives/server.d.ts +0 -11
  224. package/dist/runtime/next/primitives/server.js +0 -54
  225. package/dist/runtime/next/provider.d.ts +0 -13
  226. package/dist/runtime/next/provider.js +0 -54
  227. package/dist/runtime/next/server-runtime.d.ts +0 -3
  228. package/dist/runtime/next/server-runtime.js +0 -23
  229. package/dist/runtime/next/server.d.ts +0 -21
  230. package/dist/runtime/next/server.js +0 -16
  231. package/dist/runtime/primitives/index.d.ts +0 -16
  232. package/dist/runtime/primitives/index.js +0 -17
  233. package/dist/runtime/react/primitives/contracts.d.ts +0 -100
  234. package/dist/runtime/react/primitives/contracts.js +0 -1
  235. package/dist/runtime/react/primitives/editable/Boolean.d.ts +0 -5
  236. package/dist/runtime/react/primitives/editable/Boolean.js +0 -11
  237. package/dist/runtime/react/primitives/editable/Date.d.ts +0 -4
  238. package/dist/runtime/react/primitives/editable/Date.js +0 -12
  239. package/dist/runtime/react/primitives/editable/DateTime.d.ts +0 -4
  240. package/dist/runtime/react/primitives/editable/DateTime.js +0 -13
  241. package/dist/runtime/react/primitives/editable/Image.d.ts +0 -4
  242. package/dist/runtime/react/primitives/editable/Image.js +0 -10
  243. package/dist/runtime/react/primitives/editable/Json.d.ts +0 -5
  244. package/dist/runtime/react/primitives/editable/Json.js +0 -11
  245. package/dist/runtime/react/primitives/editable/RichText.d.ts +0 -4
  246. package/dist/runtime/react/primitives/editable/RichText.js +0 -11
  247. package/dist/runtime/react/primitives/editable/Text.d.ts +0 -20
  248. package/dist/runtime/react/primitives/editable/Text.js +0 -36
  249. package/dist/runtime/react/primitives/editable/Video.d.ts +0 -4
  250. package/dist/runtime/react/primitives/editable/Video.js +0 -10
  251. package/dist/runtime/react/primitives/renderers/DateRenderer.d.ts +0 -17
  252. package/dist/runtime/react/primitives/renderers/DateRenderer.js +0 -17
  253. package/dist/runtime/react/primitives/renderers/ImageRenderer.d.ts +0 -8
  254. package/dist/runtime/react/primitives/renderers/ImageRenderer.js +0 -31
  255. package/dist/runtime/react/primitives/renderers/RichTextRenderer.d.ts +0 -12
  256. package/dist/runtime/react/primitives/renderers/RichTextRenderer.js +0 -135
  257. package/dist/runtime/react/primitives/renderers/StaticImage.d.ts +0 -35
  258. package/dist/runtime/react/primitives/renderers/StaticImage.js +0 -58
  259. package/dist/runtime/react/primitives/renderers/VideoRenderer.d.ts +0 -8
  260. package/dist/runtime/react/primitives/renderers/VideoRenderer.js +0 -10
  261. package/dist/runtime/react/useFimoLiveValue.d.ts +0 -20
  262. package/dist/runtime/react/useFimoLiveValue.js +0 -43
  263. package/dist/runtime/react-router/active-routes.d.ts +0 -12
  264. package/dist/runtime/react-router/active-routes.js +0 -60
  265. package/dist/runtime/react-router/index.d.ts +0 -16
  266. package/dist/runtime/react-router/index.js +0 -20
  267. package/dist/runtime/react-router/legacy/routes.d.ts +0 -35
  268. package/dist/runtime/react-router/legacy/routes.js +0 -86
  269. package/dist/runtime/react-router/navigation-utils.d.ts +0 -8
  270. package/dist/runtime/react-router/navigation-utils.js +0 -36
  271. package/dist/runtime/react-router/navigation.d.ts +0 -12
  272. package/dist/runtime/react-router/navigation.js +0 -28
  273. package/dist/runtime/react-router/preset.d.ts +0 -30
  274. package/dist/runtime/react-router/preset.js +0 -33
  275. package/dist/runtime/routing/AppResetScrollOnNavigate.d.ts +0 -2
  276. package/dist/runtime/routing/AppResetScrollOnNavigate.js +0 -12
  277. package/dist/runtime/routing/AppRoutesProvider.d.ts +0 -25
  278. package/dist/runtime/routing/AppRoutesProvider.js +0 -112
  279. package/dist/runtime/seo/buildSeoForPath.d.ts +0 -74
  280. package/dist/runtime/seo/buildSeoForPath.js +0 -55
  281. package/dist/runtime/seo/htmlProps.d.ts +0 -13
  282. package/dist/runtime/seo/htmlProps.js +0 -15
  283. package/dist/runtime/sveltekit/content.d.ts +0 -25
  284. package/dist/runtime/sveltekit/content.js +0 -33
  285. package/dist/runtime/sveltekit/context-contract.d.ts +0 -5
  286. package/dist/runtime/sveltekit/context-contract.js +0 -2
  287. package/dist/runtime/sveltekit/context.d.ts +0 -8
  288. package/dist/runtime/sveltekit/context.js +0 -25
  289. package/dist/runtime/sveltekit/forms.d.ts +0 -15
  290. package/dist/runtime/sveltekit/forms.js +0 -15
  291. package/dist/runtime/sveltekit/index.d.ts +0 -9
  292. package/dist/runtime/sveltekit/index.js +0 -5
  293. package/dist/runtime/sveltekit/internal.d.ts +0 -6
  294. package/dist/runtime/sveltekit/internal.js +0 -12
  295. package/dist/runtime/sveltekit/labels.d.ts +0 -20
  296. package/dist/runtime/sveltekit/labels.js +0 -13
  297. package/dist/runtime/sveltekit/preview.d.ts +0 -27
  298. package/dist/runtime/sveltekit/preview.js +0 -69
  299. package/dist/runtime/sveltekit/runtime.d.ts +0 -9
  300. package/dist/runtime/sveltekit/runtime.js +0 -26
  301. package/dist/runtime/t/OptionalTracking.d.ts +0 -13
  302. package/dist/runtime/t/OptionalTracking.js +0 -28
  303. package/dist/runtime/t/Pageview.d.ts +0 -9
  304. package/dist/runtime/t/Pageview.js +0 -118
  305. package/dist/runtime/vite/Label.d.ts +0 -13
  306. package/dist/runtime/vite/Label.js +0 -16
  307. package/dist/runtime/vite/primitives/Images.d.ts +0 -4
  308. package/dist/runtime/vite/primitives/Images.js +0 -12
  309. package/dist/runtime/vite/translations.d.ts +0 -28
  310. package/dist/runtime/vite/translations.js +0 -103
@@ -33,7 +33,7 @@ Pick by task:
33
33
  - Project creation, local setup, cloning, and CLI workflows — init, push, deploy, sync, labels, domains, analytics → `fimo-cli`
34
34
  - Fimo agents — create, configure, validate, deploy, run, or inspect them → `fimo-cli` (`references/agents.md`)
35
35
  - AI agent setup — connect Claude Code, Codex, Cursor, or another agent → `fimo-cli` (`references/agent-setup.md`)
36
- - Project MCP setup — configure `fimo mcp` for a local agent → `fimo-cli` (`references/mcp.md`)
36
+ - Remote MCP integrations — add, inspect, search, or run an MCP server → `fimo-cli` (`references/mcp.md`)
37
37
  - The Fimo Studio dashboard / web app UI → `fimo-studio`
38
38
  - Migrating an existing site into Fimo → `fimo-migration`
39
39
 
@@ -106,7 +106,7 @@ Load the matching reference when the user's request fires its trigger. Recipes t
106
106
  - "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`)
107
107
  - "Create / scaffold / run / validate an agent / agent bundle / wire or enable its triggers / list agent templates / view agent runs, reports, or logs (`fimo agents *`)" → `references/agents.md`
108
108
  - "Install Fimo for my agent / fimo skills install / set up Claude Code, Codex, or Cursor for Fimo" → `references/agent-setup.md`
109
- - "Connect an agent to a Fimo project through MCP / configure `fimo mcp` / expose Fimo tools to a local MCP client" → `references/mcp.md`
109
+ - "Add, inspect, search, or run a remote MCP server / use `fimo mcp`" → `references/mcp.md`
110
110
  - "Refresh / update installed Fimo skills / fimo skills sync / agent missing the latest Fimo conventions" → `references/agent-setup.md`
111
111
  - "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`
112
112
  - "Regenerate rule files / I edited AGENTS.md / fimo rules sync" → `references/agent-setup.md`
@@ -35,6 +35,30 @@ Read it as `.data.url` / `.data.id` (e.g. `… | jq -r '.data.url'`). Keep the `
35
35
 
36
36
  Use `--folder-path` when an agent needs a non-interactive upload target and does not already know folder IDs. Missing folders are created automatically. Dot-prefixed root folders such as `.agents` are reserved for internal/agent media and are hidden from the normal media-library UI.
37
37
 
38
+ ## Upload a manifest
39
+
40
+ Use one structured manifest for migration batches. Paths resolve from the
41
+ project directory; `sourceId` must be unique so every result can be reconciled.
42
+
43
+ ```json
44
+ [
45
+ {
46
+ "sourceId": "strapi:upload:42",
47
+ "path": ".fimo/migration/media/Hero image.jpg",
48
+ "name": "Homepage hero",
49
+ "folderPath": "Imported"
50
+ }
51
+ ]
52
+ ```
53
+
54
+ ```bash
55
+ fimo assets bulk-upload --file .fimo/migration/media.json
56
+ ```
57
+
58
+ The result preserves manifest order and reports each `sourceId` as `uploaded`
59
+ or `failed`, plus final counts. Partial failure exits non-zero. Use
60
+ `--concurrency <1-16>` to change the default concurrency of four.
61
+
38
62
  ## Generate AI media
39
63
 
40
64
  Moved to **`references/media.md`**. Choose the task that describes the outcome:
@@ -125,6 +149,6 @@ fimo assets delete <asset-id>
125
149
 
126
150
  ## End-to-end workflow
127
151
 
128
- 1. Upload with `fimo assets upload` or generate with a task command such as `fimo image generate`.
152
+ 1. Upload with `fimo assets upload`, use `fimo assets bulk-upload` for a batch, or generate with a task command such as `fimo image generate`.
129
153
  2. Keep the returned `url` (for direct use) or `id` (to attach to a `media` content-type field).
130
154
  3. To use in application code, run `fimo skills get fimo-code --ref ui` and load the detected framework reference: schema media → `<Image>` / `<Video>`, deliberate non-schema URLs → `<StaticImage>`. Never use raw `<img src={asset.url}>` for tracked media.
@@ -105,7 +105,10 @@ Use `fimo publish` when `main` is already synced; use `fimo deploy --publish` wh
105
105
  ## Anti-patterns
106
106
 
107
107
  - **Using `git checkout -b` instead of `fimo checkout -b`** — raw git creates the branch but **not** the Branch's DB / sandbox / preview. Always use `fimo` for Branch operations so resources are provisioned atomically. (Running `fimo branch <name>` after the fact provisions them.) The running app itself follows the git branch either way.
108
- - **Hardcoding the tenant API URL** — the app derives it from the git branch and `.fimo/project.json`. Set `VITE_API_URL` / `NEXT_PUBLIC_FIMO_API_URL` yourself only as a deliberate override (e.g. a local API); it then wins over derivation on every branch.
108
+ - **Hardcoding the tenant API URL** — the framework runtime derives it from the
109
+ git branch and `.fimo/project.json`. Use an explicit host variable only as a
110
+ deliberate override, such as a local API; it then wins over derivation on
111
+ every branch.
109
112
  - **Trying to push to or delete `prod` / `release/*`** — these are read-only/protected. Publish to update prod; never push.
110
113
  - **`fimo merge` straight onto `main` as a habit** — it's gated for a reason. Merge on a branch, then publish.
111
114
  - **Confusing `fimo switch` (Branch) with `fimo orgs switch` (org).**
@@ -54,7 +54,7 @@ Use this when the user asks "who filled out the contact form?", "how many signup
54
54
 
55
55
  ## When to run sync manually
56
56
 
57
- The `fimo/vite` plugin regenerates legacy Vite `src/forms/*.ts` after form JSON changes during development. Framework-aware generation runs during validation. Before a production build, regenerate explicitly with:
57
+ The `fimo-vite` plugin regenerates legacy Vite `src/forms/*.ts` after form JSON changes during development. Framework-aware generation runs during validation. Before a production build, regenerate explicitly with:
58
58
 
59
59
  ```bash
60
60
  fimo validate # runs all phases: codegen, lint, route validation, label checks
@@ -11,7 +11,7 @@ fimo init [dir] [options]
11
11
  `fimo init` runs the full onboarding in one shot:
12
12
 
13
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` first).
14
- 2. **Resolves the project** — with `--project-id <id>` it sets up the named Fimo project: 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 projects use React Router by default; `--framework astro`, `--framework nextjs`, and `--framework sveltekit` select minimal framework-native shells. An optional `--starter fimo-site@1` adds a content-led starter only to a newly created project without `--project-id`.
14
+ 2. **Resolves the project** — with `--project-id <id>` it sets up the named Fimo project: 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 projects use React Router by default; `--framework vite`, `--framework astro`, `--framework nextjs`, and `--framework sveltekit` select minimal framework-native shells. An optional `--starter fimo-site@1` adds a content-led starter only to a newly created project without `--project-id`.
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
 
@@ -24,7 +24,7 @@ Generated pnpm projects pin `pnpm@10.26.0` and carry project-owned `pnpm-workspa
24
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
25
  | `--branch <name>` | no | Branch to check out when linking an existing project (defaults to `main`). |
26
26
  | `--env <name>` | no | Compatibility alias for `--branch <name>`. |
27
- | `--framework <framework>` | no | New-project scaffold: `react-router` (default), `astro`, `nextjs` (App Router), or `sveltekit`. Existing repositories are preserved. |
27
+ | `--framework <framework>` | no | New-project scaffold: `react-router` (default), `vite` (React SPA), `astro`, `nextjs` (App Router), or `sveltekit`. Existing repositories are preserved. |
28
28
  | `--starter <id>` | no | Opt-in project starter for create-new (currently `fimo-site@1`). It seeds CMS content, labels, a contact form, and manual-only agents. Rejects `--project-id`. |
29
29
  | `--package-manager <pm>` | no | `npm` \| `pnpm` \| `yarn` \| `bun`. |
30
30
  | `--install` / `--no-install` | yes in non-TTY | Install deps after checkout (or skip it). |
@@ -68,6 +68,7 @@ Omit `--framework` for the existing React Router scaffold, or select a
68
68
  minimal framework-native shell explicitly:
69
69
 
70
70
  ```bash
71
+ fimo init my-vite-site --framework vite --org <organizationId>
71
72
  fimo init my-astro-site --framework astro --org <organizationId>
72
73
  fimo init my-next-site --framework nextjs --org <organizationId>
73
74
  fimo init my-svelte-site --framework sveltekit --org <organizationId>
@@ -96,15 +97,22 @@ For `--agents`, pass the AI tool you're running in: `--agents=claude-code` for C
96
97
 
97
98
  Pass `--project-id <id>` to set up a known Fimo project. If the project has no code yet — for example, one just created in Fimo Studio — `init` scaffolds a fresh site into it and pushes the initial commit: the same create-new path, linked to the existing ID. If the project already has code, `init` clones it into `[dir]`, like `fimo clone`. Use `--branch <name>` to check out a specific Branch (defaults to `main`); `--env <name>` remains a compatibility alias. Without `--project-id`, `fimo init` creates a new project.
98
99
 
100
+ ## Linking an existing local application
101
+
102
+ Use `fimo link <projectId>` to adopt the application in the current folder without replacing its code or comparing its Git history. Running it again with the same project id repairs missing Fimo metadata, dependencies, or the `fimo` remote. If the folder is linked to a different project, the command stops before changing the remote or local files. Pass `--relink` only when the project replacement is intentional:
103
+
104
+ ```bash
105
+ fimo link <projectId> --relink
106
+ ```
107
+
99
108
  ## What gets written (create-new path)
100
109
 
101
110
  `fimo init` (create-new path) scaffolds:
102
111
 
103
- - The selected project shell: React Router by default, Astro with `--framework astro`, Next.js App Router with `--framework nextjs`, or SvelteKit with `--framework sveltekit`
112
+ - The selected project shell: React Router by default, a native React SPA with `--framework vite`, Astro with `--framework astro`, Next.js App Router with `--framework nextjs`, or SvelteKit with `--framework sveltekit`
104
113
  - `.fimo/project.json` — links this directory to the remote project (read-only after creation)
105
114
  - `.fimo/config.json` — project, optional Studio Pages route metadata, locale, SEO, and agent policy
106
115
  - `.fimo/agents/` — versioned agent bundles
107
- - `.env` — framework-specific tenant content API URLs for local development
108
116
  - `AGENTS.md` + `CLAUDE.md` — project rules (from the template) read by AGENTS.md-compatible tools and Claude Code. Both point the agent at `fimo skills get` to load the real skills on demand.
109
117
  - A git repository with `fimo` as the remote, and — after dependencies install — an initial commit (including the lockfile) plus an initial push
110
118
 
@@ -120,7 +128,11 @@ Nothing is written into per-agent skill dirs: the rich skills are fetched on dem
120
128
 
121
129
  Codex, OpenCode, Aider, and similar AGENTS.md-native tools work directly off AGENTS.md.
122
130
 
123
- `.env` is only the bootstrap app env so local `pnpm dev` works immediately. Fimo writes the tenant API aliases used by its supported frameworks; users should not discover or set those URLs manually. User-managed public variables are stored with `fimo vars add` and synced into a managed `.env.local` block; hidden values use `fimo secrets add`. See `references/project-vars-and-secrets.md`.
131
+ Supported framework runtimes derive the Fimo connection from
132
+ `.fimo/project.json` and the active git branch, so local development needs no
133
+ Fimo env file. User-managed public variables are stored with `fimo vars add`
134
+ and synced into a managed `.env.local` block; hidden values use
135
+ `fimo secrets add`. See `references/project-vars-and-secrets.md`.
124
136
 
125
137
  ## Right after scaffolding
126
138
 
@@ -2,6 +2,10 @@
2
2
 
3
3
  Use integrations to enable external services for a Fimo project. API keys are stored by Fimo and never printed back to the CLI. Teammates and agents receive access to the integration, not the underlying token.
4
4
 
5
+ Start with `fimo integrations list` whenever the task could benefit from an external service. It is the project-scoped,
6
+ runtime-truthful inventory; use `info` only for the relevant integration instead of loading every provider's tools into
7
+ context.
8
+
5
9
  ## Inspect
6
10
 
7
11
  ```bash
@@ -14,6 +18,26 @@ fimo integrations status firecrawl
14
18
 
15
19
  When running inside an autonomous agent session, `fimo integrations list` shows the effective integrations available to that agent runtime, scoped by `.fimo/agents/<name>/config.yaml`. It lists only usable tools, plus the auth column and the config path that granted access.
16
20
 
21
+ ## Add a remote MCP server
22
+
23
+ Remote MCP servers have a focused command group while remaining integrations underneath:
24
+
25
+ ```bash
26
+ fimo mcp add sentry --url https://mcp.sentry.dev/mcp
27
+
28
+ fimo mcp search "issue tracking"
29
+ fimo mcp info sentry
30
+ fimo mcp run sentry <tool> --input '{"key":"value"}'
31
+ ```
32
+
33
+ Automatic discovery connects public endpoints directly and opens the provider authorization page for OAuth servers.
34
+ Use `--auth none` to require a public endpoint, `--auth bearer --token-stdin` for a bearer token, or `--auth header
35
+ --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
+
17
41
  ## Integration References
18
42
 
19
43
  Load the integration reference when the user names a specific integration:
@@ -1,83 +1,124 @@
1
- # Project MCP
1
+ # Remote MCP integrations
2
2
 
3
- The **Project MCP** lets an AI coding client use Fimo's project workflows through the Model Context Protocol. It is
4
- the same Fimo tool surface exposed in two ways:
3
+ Use the `mcp` command group to connect a project to remote Model Context Protocol servers. Fimo stores the connection,
4
+ keeps its credential server-side, and makes the server's tools available through the same integration gateway as native
5
+ providers.
5
6
 
6
- - **Local MCP**: `fimo mcp` over stdio, for an AI client running next to a checkout.
7
- - **Remote MCP**: `https://api.fimo.ai/api/mcp` over authenticated Streamable HTTP, for ChatGPT, Claude, and other
8
- clients that support OAuth.
7
+ ## Add a server
9
8
 
10
- The local and remote Project MCP modes share the same catalog. The public Docs MCP at
11
- `https://fimo.ai/docs/mcp` is separate: it is unauthenticated, read-only, and only provides Fimo documentation.
9
+ Start with automatic discovery:
12
10
 
13
- ## Set up the local MCP
11
+ ```bash
12
+ fimo mcp add sentry --url https://mcp.sentry.dev/mcp
13
+ ```
14
14
 
15
- Authenticate the CLI first:
15
+ Fimo connects public servers immediately. When the server advertises OAuth, Fimo opens its authorization page. Use
16
+ `--no-open` to print the URL for a browser on another machine.
17
+
18
+ Bearer token:
16
19
 
17
20
  ```bash
18
- fimo login
21
+ printf '%s\n' "$MCP_TOKEN" | fimo mcp add sentry \
22
+ --url https://mcp.sentry.dev/mcp \
23
+ --auth bearer \
24
+ --token-stdin
19
25
  ```
20
26
 
21
- Then configure the MCP client to launch:
27
+ Multiple custom headers:
22
28
 
23
- ```text
24
- fimo mcp
29
+ ```bash
30
+ printf '%s\n' "$MCP_HEADERS_JSON" | fimo mcp add internal \
31
+ --url https://mcp.example.com/mcp \
32
+ --auth header \
33
+ --header Authorization \
34
+ --header X-Workspace \
35
+ --headers-stdin
25
36
  ```
26
37
 
27
- For clients that accept a JSON command configuration, the equivalent entry is:
28
-
29
- ```json
30
- {
31
- "mcpServers": {
32
- "fimo": {
33
- "command": "npx",
34
- "args": ["fimo@latest", "mcp"]
35
- }
36
- }
37
- }
38
+ `MCP_HEADERS_JSON` must be one JSON object containing every configured header and no others, for example
39
+ `{"Authorization":"Bearer abc123","X-Workspace":"workspace-secret"}`. Header names are matched case-insensitively.
40
+ **Each value is the complete header value and is sent byte for byte**, so include any prefix the server expects. There
41
+ is no scheme or prefix option; anything the header needs goes in the value.
42
+
43
+ Use `--auth none` for a public endpoint or `--auth bearer --token-stdin` for a bearer token, which is the shortcut for
44
+ sending `Authorization: Bearer <token>` from the token alone. The single-header form,
45
+ `--auth header --header-name <name> --token-stdin`, pipes one complete header value.
46
+
47
+ Fimo requires an HTTPS Streamable HTTP endpoint, validates the MCP handshake before saving it, encrypts the credentials,
48
+ and never prints their values. The resulting integration key begins with `mcp_` so it cannot collide with a native
49
+ provider.
50
+
51
+ OAuth and manual credentials are alternative connection grants. Fimo never sends custom secret headers alongside an
52
+ OAuth access token.
53
+
54
+ ## Reconnect OAuth
55
+
56
+ If live discovery or execution reports that an OAuth connection needs authorization again:
57
+
58
+ ```bash
59
+ fimo mcp reconnect sentry
38
60
  ```
39
61
 
40
- Do not add shell output or logging around the command: stdout is reserved for MCP JSON-RPC frames. Diagnostics are
41
- written to stderr.
62
+ This replaces the organization-owned OAuth grant and requires organization admin access. Add `--no-open` to print the
63
+ authorization URL.
42
64
 
43
- ## Project and Branch scope
65
+ ## Rotate credentials
44
66
 
45
- When launched inside a linked Fimo project, `fimo mcp` reads the project from `.fimo.settings.json` and uses the
46
- current git branch as the default Branch. This keeps an AI client working against the same Branch as the checkout.
67
+ Rotation replaces the complete credential bundle on the connection already enabled for this project:
47
68
 
48
- Outside a linked project, the server still works, but each project-scoped tool call must provide `projectId` and
49
- `env` (the compatibility-preserved wire field for a Branch name). The canonical catalog tool is `branches_list`;
50
- `envs_list` remains a compatibility alias. The client can also pass a Branch override when launching the CLI. Never
51
- edit `.fimo.settings.json` manually to change scope.
69
+ ```bash
70
+ printf '%s\n' "$MCP_HEADERS_JSON" | fimo mcp rotate internal --headers-stdin
71
+ printf '%s\n' "$MCP_TOKEN" | fimo mcp rotate sentry --token-stdin
72
+ ```
52
73
 
53
- The CLI credential represents the signed-in user's Fimo authority. If an MCP server is invoked from a Fimo agent
54
- session, the session's frozen capability snapshot still limits the operations available to that agent.
74
+ Custom-header rotation requires the complete value of every configured header. It never merges a partial update, and
75
+ neither command prints the submitted values. Rotation updates the organization-owned connection and requires organization admin access.
55
76
 
56
- ## Capabilities
77
+ ## Discover servers and tools
57
78
 
58
- The Project MCP catalog covers:
79
+ ```bash
80
+ fimo mcp list
81
+ fimo mcp search "issue tracking"
82
+ fimo mcp info sentry
83
+ ```
84
+
85
+ - `list` shows only remote MCP integrations available to the current project.
86
+ - `search` searches the live tool names and descriptions across those servers.
87
+ - `info` shows one server's endpoint, authentication shape, and current live tool catalog.
88
+
89
+ `info` and `run` accept either the short server name (`sentry`) or its complete integration key (`mcp_sentry`). The
90
+ catalog is loaded live; Fimo does not persist or expose a stale copy to the model.
91
+
92
+ ## Run a tool
93
+
94
+ ```bash
95
+ fimo mcp run sentry search_issues --input '{"query":"open regressions"}'
96
+ fimo mcp run sentry projects_list
97
+ fimo mcp run sentry search_issues --input @request.json
98
+ ```
99
+
100
+ Omit `--input` when the tool takes no arguments. Use inline JSON, a project-relative `@file`, or `--input -` to read JSON
101
+ from stdin.
59
102
 
60
- - **Identity and navigation** — current user, projects, and Branches.
61
- - **Content** — schemas, collection entries, search, create/update/delete, bounded bulk operations, and Singles.
62
- - **Labels** — list, read, set, batch-set, and delete localized labels.
63
- - **Media** — list and inspect assets, read canonical pages or ask one targeted question with `assets_read`, generate images or videos, create folders, move, and delete assets. Binary
64
- upload remains `fimo assets upload`.
65
- - **Forms** — create, read, update, and delete forms; inspect submissions and statistics.
66
- - **Files** — read, glob, grep, write, edit, and delete project files within the scoped Branch. Sensitive files
67
- such as credentials and `.env` files are excluded.
68
- - **Agents** — list agents, start a run, and inspect run status.
103
+ ## Studio and project agents
69
104
 
70
- Use the MCP client's tool list as the wire-level source of truth. The catalog is shared with the remote endpoint, so a
71
- client configured locally sees the same tool names and input shapes as a remote client.
105
+ Remote MCP servers remain normal project integrations underneath the focused CLI. Studio chat and autonomous agents
106
+ discover and run them 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
+ ```
72
113
 
73
- ## Local versus remote authorization
114
+ An autonomous agent only sees integrations enabled in its committed `integrations:` policy. Studio receives a frozen
115
+ snapshot of the integrations enabled when the turn starts. Neither surface receives the underlying credential or opens
116
+ a direct connection to the remote server.
74
117
 
75
- Local MCP uses the stored CLI credential (or `FIMO_API_TOKEN` when explicitly configured). It does not use the
76
- browser OAuth consent screen. Remote MCP uses Fimo OAuth with `read`, `write`, and `agents` scopes; the user selects
77
- the optional capabilities during consent.
118
+ ## Supported servers
78
119
 
79
- In both modes, Fimo still checks the user's project permissions, Branch access, input validation, and file safety
80
- rules for every operation. MCP does not grant access to projects the user cannot already access.
120
+ Remote connections support HTTPS Streamable HTTP servers with OAuth, no authentication, a bearer token, or custom
121
+ private headers. Local stdio commands such as `npx`, arbitrary child processes, resources, and prompts are not supported.
81
122
 
82
- For ChatGPT, Claude, or another remote MCP client, use the setup guide in the public [MCP documentation](https://fimo.ai/docs/ai/mcp)
83
- instead of the local stdio configuration above.
123
+ To connect ChatGPT, Claude, or another remote MCP client to Fimo itself, use Fimo's hosted Project MCP at
124
+ `https://api.fimo.ai/api/mcp`. That is a separate direction from connecting a Fimo project to an external MCP server.
@@ -47,7 +47,9 @@ variables.
47
47
 
48
48
  ## Local Env Files
49
49
 
50
- `fimo init` and `fimo clone` write `.env` with the framework-specific tenant content API URLs needed for local development. These are Fimo-managed connection values, not project variables; users should not discover or set them manually.
50
+ `fimo init`, `fimo clone`, and `fimo link` do not write the Fimo connection to
51
+ an env file. Supported framework runtimes derive it from `.fimo/project.json`
52
+ and the active git branch; hosted preview and production inject it directly.
51
53
 
52
54
  `fimo vars add`, `fimo vars update`, and `fimo vars pull` write public project variables to a managed block in `.env.local`.
53
55
 
@@ -19,7 +19,7 @@ fimo projects rename <name> [projectId] [-C <dir>] # set seo.siteName in the l
19
19
  - **`clone`** — clone a remote Fimo project's git repo to your machine and write the local `.fimo/project.json` and agent files. Use `fimo clone <projectId>` when scripting or when the ID is known. In an interactive terminal, bare `fimo clone` opens a project picker for the active org; JSON mode and non-TTY shells require an explicit project ID and fail fast instead of prompting. By default it clones `main`; pass `--branch <name>` to clone a specific Branch. The legacy `--env <name>` spelling remains a compatibility alias. The target directory defaults to the project display name/name, or pass `[dir]` explicitly.
20
20
  - **`delete`** — destructive; prompts unless `-y`. Removes the remote project.
21
21
  - **`publish` / `unpublish`** — toggle the project's public visibility. `publish` flips the current `main` state live (the same "go live" as `fimo deploy --publish`, minus the git push).
22
- - **`rename`** — edits only the linked local project immediately. It requires a project marker in the cwd, and if you pass a `[projectId]` that doesn't match the linked project it errors and exits 1 (so you can't rename a different project). It writes `seo.siteName` into the current or legacy project config; commit and run `fimo deploy` to reconcile the remote `displayName` and deploy the new site name.
22
+ - **`rename`** — edits only the linked local project's `seo.siteName`. It does not commit or deploy. It requires a project marker in the cwd, and if you pass a `[projectId]` that doesn't match the linked project it errors and exits 1 (so you can't rename a different project). Later remote config commands may require reconciliation while the local config is dirty. Finish your local edits, then explicitly run `fimo deploy --no-wait` when ready for a quick sync.
23
23
 
24
24
  ## Top-level clone shortcut
25
25
 
@@ -39,7 +39,7 @@ fimo unpublish [-C <dir>] # unpublish the current project
39
39
  fimo rename "<Site Name>" # local edit: set seo.siteName in the project config
40
40
  ```
41
41
 
42
- `fimo rename` sets the **site name** (`seo.siteName`) in the local project config — it is a local edit, not an immediate remote update, so it requires a follow-up commit + `fimo deploy` to take effect. Deploy reconciles the project's remote `displayName` with the committed site name while pushing the config. See `references/init.md` and `references/deploy.md`.
42
+ `fimo rename` sets the **site name** (`seo.siteName`) in the local project config. It does not commit or deploy. Later remote config commands may require reconciliation while that local config is dirty. Finish your local edits, then explicitly run `fimo deploy --no-wait` when ready for a quick sync. Deploy reconciles the project's remote `displayName` while pushing the config. See `references/init.md` and `references/deploy.md`.
43
43
 
44
44
  ## Publish commands
45
45
 
@@ -1,4 +1,4 @@
1
- import { FimoLink } from 'fimo/react-router';
1
+ import { FimoLink } from 'fimo-react-router';
2
2
 
3
3
  export function Navigation() {
4
4
  return (
@@ -24,7 +24,7 @@ Generated content reads wrap this stored value in `FimoMedia`, which exposes `ur
24
24
 
25
25
  ## Rendering in application code
26
26
 
27
- Import the primitives from the active framework adapter: `fimo/next` on the Next server, `fimo/next/client` in Next Client Components, `fimo/ui` in React Router/Vite, or `fimo/astro/components` in Astro pages.
27
+ Import the primitives from the active framework adapter: `fimo-next` on the Next server, `fimo-next/client` in Next Client Components, `fimo-react` in React Router/Vite, or `fimo/astro/components` in Astro pages.
28
28
 
29
29
  | Asset source | Component | Pass via |
30
30
  | --------------------------------------------------- | --------------------- | ------------------------- |
@@ -32,7 +32,7 @@ Import the primitives from the active framework adapter: `fimo/next` on the Next
32
32
  | Hard-coded URL or generated asset referenced inline | `<StaticImage>` | `src="https://..."` |
33
33
 
34
34
  ```tsx
35
- import { Image, StaticImage, Video } from 'fimo/next';
35
+ import { Image, StaticImage, Video } from 'fimo-next';
36
36
 
37
37
  // from a schema entry:
38
38
  <Image value={post.coverImage} width={1200} height={630} fit="cover" />
@@ -13,7 +13,7 @@ Load `references/frameworks/next.md` and the matching router reference first. In
13
13
 
14
14
  ```ts
15
15
  import type { NextConfig } from 'next';
16
- import { withFimo } from 'fimo/next/config';
16
+ import { withFimo } from 'fimo-next/config';
17
17
 
18
18
  const nextConfig: NextConfig = {
19
19
  cacheComponents: true,
@@ -106,7 +106,7 @@ export function ContactForm() {
106
106
 
107
107
  ## Framework bindings
108
108
 
109
- - **Vite/React:** `submitX(data)` keeps using the existing `fimo/ui` runtime and preserves the current generated API.
109
+ - **Vite/React:** `submitX(data)` keeps using the existing `fimo-react` runtime and preserves the current generated API.
110
110
  - **Next.js:** server modules import `@/forms/name`; client components import `@/forms/name.client`. Both expose the same `submitX(data)` shape.
111
111
  - **Astro:** import the generated server module and call `submitX(data)` in an Astro action or endpoint. Astro keeps the HTML form and redirect.
112
112
  - **SvelteKit:** use `createFimoFormClient({ event })` in a server action and pass it as the second argument: `submitX(data, client)`.
@@ -14,17 +14,23 @@ Declare the production framework in `.fimo/config.json`:
14
14
 
15
15
  Astro owns its static or server output, routes, and 404 behavior. Do not add a catch-all hosting rewrite, a hosting-provider adapter, a preview URL, or a script tag for Fimo.
16
16
 
17
- Add the integration beside the adapters and integrations the project already uses:
17
+ Install `fimo-astro` at the same version as `fimo` and add the integration
18
+ beside the adapters and integrations the project already uses:
18
19
 
19
20
  ```js
20
21
  import { defineConfig } from 'astro/config';
21
- import { fimo } from 'fimo/astro/config';
22
+ import { fimo } from 'fimo-astro/config';
22
23
 
23
24
  export default defineConfig({
24
25
  integrations: [fimo()],
25
26
  });
26
27
  ```
27
28
 
29
+ `fimo-astro/config` supplies Fimo hosting for `output: 'server'`. A static
30
+ Astro site that hosts elsewhere can import `fimo` from `fimo/astro/config`
31
+ instead for the preview connector and branch env alone; the runtime
32
+ (`fimo/astro`, `fimo/astro/components`) always comes from `fimo`.
33
+
28
34
  Compatibility: the Fimo peer range covers Astro 5–7. Static output is supported
29
35
  across that range. Fimo's automatic server adapter path is currently validated
30
36
  with the Astro 7-compatible adapter; Astro 5/6 server apps should keep their
@@ -4,15 +4,15 @@
4
4
  peer ranges and the executable acceptance fixtures define compatibility; the
5
5
  profile does not promise support for every version of the framework.
6
6
 
7
- | Profile | Application dependency specifier | Fimo surface |
8
- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
9
- | `nextjs` | Next 16 is the current acceptance baseline; Fimo's React peer is `^18.2.0 \|\| ^19.0.0` and Next imposes its own React range | `fimo/next`, `fimo/next/client` |
10
- | `react-router` | React `^18.2.0 \|\| ^19.0.0`, React Router `^7.0.0 \|\| ^8.0.0`, Vite `^7.0.0 \|\| ^8.0.0` | `fimo/react-router`, `fimo/ui` |
11
- | `vite` | React `^18.2.0 \|\| ^19.0.0`, Vite `^7.0.0 \|\| ^8.0.0` | `fimo/ui`, `fimo/vite` |
12
- | `astro` | Astro `^5.0.0 \|\| ^6.0.0 \|\| ^7.0.0` | `fimo/astro`, `fimo/astro/components` |
13
- | `sveltekit` | SvelteKit `^2.0.0`, Svelte `^5.0.0`, Vite `^7.0.0 \|\| ^8.0.0` | `fimo/sveltekit`, `fimo/sveltekit/components`, `fimo/sveltekit/config`, `fimo/sveltekit/vite` |
14
- | `nuxtjs`, `remix`, `vue` | Hosting detection only; no Fimo content/runtime adapter yet | `fimo` hosting profile only |
15
- | _(unset)_ | Anything else: a static generator, plain HTML, a custom build script. Declare `runtime.commands.build` and `runtime.outputDirectory` instead | Static output only; no adapter |
7
+ | Profile | Application dependency specifier | Fimo surface |
8
+ | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
9
+ | `nextjs` | Next 16 is the current acceptance baseline; Fimo's React peer is `^18.2.0 \|\| ^19.0.0` and Next imposes its own React range | `fimo-next`, `fimo-next/client` |
10
+ | `react-router` | React `^18.2.0 \|\| ^19.0.0`, React Router `^7.0.0 \|\| ^8.0.0`, Vite `^7.0.0 \|\| ^8.0.0` | `fimo-react-router`, `fimo-react-router/routes`, `fimo-react-router/preset`, `fimo-react-router/vite`, `fimo-react` |
11
+ | `vite` | Vite `^7.0.0 \|\| ^8.0.0`; React `^18.2.0 \|\| ^19.0.0` only when the app uses React | `fimo-react`, `fimo-react-router/vite` (React SPA) or `fimo-vite` (no React) |
12
+ | `astro` | Astro `^5.0.0 \|\| ^6.0.0 \|\| ^7.0.0`; Fimo hosting (`fimo-astro`) needs Astro `^7.0.0` | `fimo/astro`, `fimo/astro/components`, `fimo-astro/config` |
13
+ | `sveltekit` | SvelteKit `^2.0.0`, Svelte `^5.0.0`, Vite `^7.0.0 \|\| ^8.0.0` | `fimo-sveltekit`, `fimo-sveltekit/components`, `fimo-sveltekit/vite`, `fimo-sveltekit/config` |
14
+ | `nuxtjs`, `remix`, `vue` | Hosting detection only; no Fimo content/runtime adapter yet | `fimo` hosting profile only |
15
+ | _(unset)_ | Anything else: a static generator, plain HTML, a custom build script. Declare `runtime.commands.build` and `runtime.outputDirectory` instead | Static output only; no adapter |
16
16
 
17
17
  `runtime.framework` must match a dependency in `package.json`; a profile the
18
18
  code does not use fails the production build. Shape and rules: `hosting.md`
@@ -39,27 +39,31 @@ Hosted preview and production inject the tenant API through these aliases:
39
39
 
40
40
  | Application | Server | Public/build |
41
41
  | ----------------------- | ---------------------- | -------------------------- |
42
- | Next.js | `FIMO_CONTENT_API_URL` | `NEXT_PUBLIC_FIMO_API_URL` |
42
+ | Next.js | `FIMO_CONTENT_API_URL` | Provider-owned |
43
43
  | Nuxt | `FIMO_CONTENT_API_URL` | `NUXT_PUBLIC_FIMO_API_URL` |
44
44
  | Astro, Remix, SvelteKit | `FIMO_CONTENT_API_URL` | `PUBLIC_FIMO_API_URL` |
45
45
  | React Router, Vite, Vue | `FIMO_CONTENT_API_URL` | `VITE_API_URL` |
46
46
 
47
- Locally, the app derives its env from the **git branch**: `fimo/vite`,
48
- `withFimo`, the Astro integration and the SvelteKit plugin compute the tenant
49
- API URL from `.fimo/project.json`
47
+ Locally, the app derives its env from the **git branch**: `fimo-vite` (or
48
+ `fimo-react-router/vite` for React Router projects), the Astro integration and
49
+ the SvelteKit plugin compute the tenant API URL from `.fimo/project.json`
50
50
  (`projectId` + `tenantApiBaseUrl`, recorded once at `init`/`clone`/`link`) and
51
- expose the Vite, Next and public (`PUBLIC_*`) aliases plus `FIMO_ENV` /
52
- `NEXT_PUBLIC_FIMO_ENV` at startup. The Vite connectors derive them during both
53
- dev and production builds, and `withFimo` derives them in `next dev`, `next
54
- build`, and `next start`, so a linked project builds and serves locally without
55
- exporting them by hand. No env file is written on a switch, so a plain `git checkout` is a
56
- complete env switch. Never hardcode a tenant URL in application source. One
57
- rule, per variable: a non-empty value the user set explicitly (`.env`, shell, their own
58
- `define`) is left alone, and Fimo fills the variables they did not set.
51
+ expose the Vite and public (`PUBLIC_*`) aliases plus `FIMO_ENV` at startup,
52
+ during both dev and production builds. Next.js needs no browser alias: the root
53
+ `FimoProvider` and the `fimo-next` server runtime resolve the same connection
54
+ at render time and pass only the public part to the browser. No env file is
55
+ written on a switch, so a plain `git checkout` is a complete env switch. Never
56
+ hardcode a tenant URL in application source. One rule, per variable: a
57
+ non-empty value the user set explicitly (`.env`, shell, their own `define`) is
58
+ left alone, and Fimo fills the variables they did not set.
59
59
 
60
60
  For a framework whose alias is not in that list yet, preserve or add its normal
61
61
  local environment alias by hand.
62
62
 
63
+ `NEXT_PUBLIC_FIMO_*` remains a compatibility override for existing Next.js
64
+ projects. Do not add it to new code, env files, setup instructions, or migration
65
+ plans.
66
+
63
67
  ## React Router framework mode
64
68
 
65
69
  For the supported client-rendered setup, keep `ssr: false` and add Fimo's
@@ -67,7 +71,7 @@ hosting preset. It hides the active hosting provider from application code:
67
71
 
68
72
  ```ts
69
73
  import type { Config } from '@react-router/dev/config';
70
- import { fimoPreset } from 'fimo/react-router/preset';
74
+ import { fimoPreset } from 'fimo-react-router/preset';
71
75
 
72
76
  export default {
73
77
  ssr: false,