fengming 0.3.10 → 0.3.11

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 (761) hide show
  1. package/dist/build-info.json +2 -2
  2. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  3. package/dist/cli-startup-metadata.json +8 -8
  4. package/dist/control-ui/assets/{activity-D-mnRThU.js → activity-wgT0-JR0.js} +2 -2
  5. package/dist/control-ui/assets/{agents-U_KSP5I_.js → agents-DG5PobrT.js} +2 -2
  6. package/dist/control-ui/assets/{channels-ohK9_G1O.js → channels-CX28oM42.js} +2 -2
  7. package/dist/control-ui/assets/{cron-6ZCzfU29.js → cron-B8ixwBqU.js} +2 -2
  8. package/dist/control-ui/assets/{debug-CSsDLg_s.js → debug-CnkYZUXy.js} +2 -2
  9. package/dist/control-ui/assets/{index-jUDczxhd.js → index-DQRZJKbO.js} +4 -4
  10. package/dist/control-ui/assets/{instances-782ZoDT4.js → instances-BE3mV1JC.js} +2 -2
  11. package/dist/control-ui/assets/{nodes-BMX16BKM.js → nodes-Cou4PWRX.js} +2 -2
  12. package/dist/control-ui/assets/{sessions-jLGSApYa.js → sessions-DpAaBT21.js} +2 -2
  13. package/dist/control-ui/assets/{skills-DweBwUhs.js → skills-DjA_j_20.js} +2 -2
  14. package/dist/control-ui/assets/{workboard-BsU-FXIo.js → workboard-BFnvbS0k.js} +2 -2
  15. package/dist/control-ui/index.html +1 -1
  16. package/dist/control-ui/sw.js +1 -1
  17. package/dist/gateway/protocol/index.d.ts +1 -1
  18. package/dist/{index-AZzJCgph.d.ts → index-DuDY3bCZ.d.ts} +2 -2
  19. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  20. package/dist/plugin-sdk/agent-config-primitives.d.ts +1 -1
  21. package/dist/plugin-sdk/{bundled-channel-config-schema-Dfn3b8sF.d.ts → bundled-channel-config-schema-BPFNnbwu.d.ts} +23 -23
  22. package/dist/plugin-sdk/bundled-channel-config-schema.d.ts +3 -3
  23. package/dist/plugin-sdk/channel-config-primitives.d.ts +2 -2
  24. package/dist/plugin-sdk/channel-config-schema-legacy.d.ts +3 -3
  25. package/dist/plugin-sdk/channel-config-schema.d.ts +2 -2
  26. package/dist/plugin-sdk/channel-core.d.ts +1 -1
  27. package/dist/plugin-sdk/channel-plugin-common.d.ts +1 -1
  28. package/dist/plugin-sdk/compat.d.ts +2 -2
  29. package/dist/plugin-sdk/{config-schema-DUddICQM.d.ts → config-schema-D7cABQ6o.d.ts} +1 -1
  30. package/dist/plugin-sdk/config-schema.d.ts +2 -2
  31. package/dist/plugin-sdk/core.d.ts +1 -1
  32. package/dist/plugin-sdk/discord.d.ts +2 -2
  33. package/dist/plugin-sdk/tts-runtime.d.ts +1 -1
  34. package/dist/plugin-sdk/{zod-schema.core-B4_b2R5K.d.ts → zod-schema.core-CwBNqcXp.d.ts} +1 -1
  35. package/package.json +4 -409
  36. package/CHANGELOG.md +0 -42
  37. package/THIRD_PARTY_NOTICES.md +0 -37
  38. package/docs/.i18n/README.md +0 -81
  39. package/docs/.i18n/ar-navigation.json +0 -18
  40. package/docs/.i18n/de-navigation.json +0 -18
  41. package/docs/.i18n/es-navigation.json +0 -18
  42. package/docs/.i18n/fr-navigation.json +0 -18
  43. package/docs/.i18n/glossary.ar.json +0 -78
  44. package/docs/.i18n/glossary.de.json +0 -78
  45. package/docs/.i18n/glossary.es.json +0 -78
  46. package/docs/.i18n/glossary.fa.json +0 -78
  47. package/docs/.i18n/glossary.fr.json +0 -78
  48. package/docs/.i18n/glossary.id.json +0 -78
  49. package/docs/.i18n/glossary.it.json +0 -78
  50. package/docs/.i18n/glossary.ja-JP.json +0 -98
  51. package/docs/.i18n/glossary.ko.json +0 -78
  52. package/docs/.i18n/glossary.nl.json +0 -78
  53. package/docs/.i18n/glossary.pl.json +0 -78
  54. package/docs/.i18n/glossary.pt-BR.json +0 -78
  55. package/docs/.i18n/glossary.th.json +0 -78
  56. package/docs/.i18n/glossary.tr.json +0 -78
  57. package/docs/.i18n/glossary.uk.json +0 -78
  58. package/docs/.i18n/glossary.vi.json +0 -78
  59. package/docs/.i18n/glossary.zh-CN.json +0 -1122
  60. package/docs/.i18n/glossary.zh-TW.json +0 -78
  61. package/docs/.i18n/id-navigation.json +0 -18
  62. package/docs/.i18n/it-navigation.json +0 -18
  63. package/docs/.i18n/ja-navigation.json +0 -18
  64. package/docs/.i18n/ko-navigation.json +0 -18
  65. package/docs/.i18n/pl-navigation.json +0 -18
  66. package/docs/.i18n/pt-BR-navigation.json +0 -18
  67. package/docs/.i18n/tr-navigation.json +0 -18
  68. package/docs/.i18n/translation-workflow.md +0 -111
  69. package/docs/.i18n/zh-Hans-navigation.json +0 -552
  70. package/docs/AGENTS.md +0 -36
  71. package/docs/CLAUDE.md +0 -1
  72. package/docs/agent-runtime-architecture.md +0 -48
  73. package/docs/announcements/bluebubbles-imessage.md +0 -79
  74. package/docs/auth-credential-semantics.md +0 -124
  75. package/docs/automation/auth-monitoring.md +0 -11
  76. package/docs/automation/clawflow.md +0 -12
  77. package/docs/automation/cron-jobs.md +0 -534
  78. package/docs/automation/cron-vs-heartbeat.md +0 -11
  79. package/docs/automation/gmail-pubsub.md +0 -11
  80. package/docs/automation/hooks.md +0 -387
  81. package/docs/automation/index.md +0 -135
  82. package/docs/automation/poll.md +0 -12
  83. package/docs/automation/standing-orders.md +0 -250
  84. package/docs/automation/taskflow.md +0 -155
  85. package/docs/automation/tasks.md +0 -374
  86. package/docs/automation/troubleshooting.md +0 -12
  87. package/docs/automation/webhook.md +0 -12
  88. package/docs/brave-search.md +0 -11
  89. package/docs/channels/access-groups.md +0 -201
  90. package/docs/channels/ambient-room-events.md +0 -214
  91. package/docs/channels/bot-loop-protection.md +0 -131
  92. package/docs/channels/broadcast-groups.md +0 -472
  93. package/docs/channels/channel-routing.md +0 -162
  94. package/docs/channels/clickclack.md +0 -138
  95. package/docs/channels/discord.md +0 -1758
  96. package/docs/channels/feishu.md +0 -650
  97. package/docs/channels/googlechat.md +0 -284
  98. package/docs/channels/group-messages.md +0 -95
  99. package/docs/channels/groups.md +0 -524
  100. package/docs/channels/imessage-from-bluebubbles.md +0 -259
  101. package/docs/channels/imessage.md +0 -839
  102. package/docs/channels/index.md +0 -64
  103. package/docs/channels/irc.md +0 -253
  104. package/docs/channels/line.md +0 -243
  105. package/docs/channels/location.md +0 -71
  106. package/docs/channels/matrix-migration.md +0 -370
  107. package/docs/channels/matrix-presentation.md +0 -77
  108. package/docs/channels/matrix-push-rules.md +0 -150
  109. package/docs/channels/matrix.md +0 -921
  110. package/docs/channels/mattermost.md +0 -542
  111. package/docs/channels/msteams.md +0 -1096
  112. package/docs/channels/nextcloud-talk.md +0 -176
  113. package/docs/channels/nostr.md +0 -253
  114. package/docs/channels/pairing.md +0 -214
  115. package/docs/channels/qqbot.md +0 -314
  116. package/docs/channels/signal.md +0 -417
  117. package/docs/channels/slack.md +0 -1623
  118. package/docs/channels/synology-chat.md +0 -187
  119. package/docs/channels/telegram.md +0 -1124
  120. package/docs/channels/tlon.md +0 -296
  121. package/docs/channels/troubleshooting.md +0 -162
  122. package/docs/channels/twitch.md +0 -431
  123. package/docs/channels/wechat.md +0 -171
  124. package/docs/channels/whatsapp.md +0 -796
  125. package/docs/channels/yuanbao.md +0 -416
  126. package/docs/channels/zalo.md +0 -253
  127. package/docs/channels/zalouser.md +0 -217
  128. package/docs/ci.md +0 -657
  129. package/docs/clawhub/publishing.md +0 -96
  130. package/docs/cli/acp.md +0 -370
  131. package/docs/cli/agent.md +0 -109
  132. package/docs/cli/agents.md +0 -253
  133. package/docs/cli/approvals.md +0 -190
  134. package/docs/cli/backup.md +0 -98
  135. package/docs/cli/browser.md +0 -307
  136. package/docs/cli/channels.md +0 -154
  137. package/docs/cli/clawbot.md +0 -25
  138. package/docs/cli/commitments.md +0 -90
  139. package/docs/cli/completion.md +0 -39
  140. package/docs/cli/config.md +0 -504
  141. package/docs/cli/configure.md +0 -77
  142. package/docs/cli/crestodian.md +0 -337
  143. package/docs/cli/cron.md +0 -304
  144. package/docs/cli/daemon.md +0 -67
  145. package/docs/cli/dashboard.md +0 -33
  146. package/docs/cli/devices.md +0 -240
  147. package/docs/cli/directory.md +0 -68
  148. package/docs/cli/dns.md +0 -53
  149. package/docs/cli/docs.md +0 -63
  150. package/docs/cli/doctor.md +0 -241
  151. package/docs/cli/flows.md +0 -52
  152. package/docs/cli/gateway.md +0 -572
  153. package/docs/cli/health.md +0 -43
  154. package/docs/cli/hooks.md +0 -345
  155. package/docs/cli/index.md +0 -400
  156. package/docs/cli/infer.md +0 -364
  157. package/docs/cli/logs.md +0 -68
  158. package/docs/cli/mcp.md +0 -529
  159. package/docs/cli/memory.md +0 -183
  160. package/docs/cli/message.md +0 -317
  161. package/docs/cli/migrate.md +0 -334
  162. package/docs/cli/models.md +0 -239
  163. package/docs/cli/node.md +0 -177
  164. package/docs/cli/nodes.md +0 -76
  165. package/docs/cli/onboard.md +0 -250
  166. package/docs/cli/pairing.md +0 -77
  167. package/docs/cli/path.md +0 -511
  168. package/docs/cli/plugins.md +0 -459
  169. package/docs/cli/policy.md +0 -886
  170. package/docs/cli/proxy.md +0 -89
  171. package/docs/cli/qr.md +0 -56
  172. package/docs/cli/reset.md +0 -39
  173. package/docs/cli/sandbox.md +0 -208
  174. package/docs/cli/secrets.md +0 -202
  175. package/docs/cli/security.md +0 -136
  176. package/docs/cli/sessions.md +0 -164
  177. package/docs/cli/setup.md +0 -59
  178. package/docs/cli/skills.md +0 -122
  179. package/docs/cli/status.md +0 -45
  180. package/docs/cli/system.md +0 -89
  181. package/docs/cli/tasks.md +0 -111
  182. package/docs/cli/transcripts.md +0 -151
  183. package/docs/cli/tui.md +0 -91
  184. package/docs/cli/uninstall.md +0 -44
  185. package/docs/cli/update.md +0 -243
  186. package/docs/cli/voicecall.md +0 -204
  187. package/docs/cli/webhooks.md +0 -117
  188. package/docs/cli/wiki.md +0 -256
  189. package/docs/concepts/active-memory.md +0 -856
  190. package/docs/concepts/agent-loop.md +0 -185
  191. package/docs/concepts/agent-runtimes.md +0 -276
  192. package/docs/concepts/agent-workspace.md +0 -230
  193. package/docs/concepts/agent.md +0 -140
  194. package/docs/concepts/architecture.md +0 -154
  195. package/docs/concepts/channel-docking.md +0 -145
  196. package/docs/concepts/commitments.md +0 -150
  197. package/docs/concepts/compaction.md +0 -203
  198. package/docs/concepts/context-engine.md +0 -347
  199. package/docs/concepts/context.md +0 -199
  200. package/docs/concepts/delegate-architecture.md +0 -319
  201. package/docs/concepts/dreaming.md +0 -264
  202. package/docs/concepts/experimental-features.md +0 -109
  203. package/docs/concepts/features.md +0 -91
  204. package/docs/concepts/fengming-sdk.md +0 -323
  205. package/docs/concepts/mantis-slack-desktop-runbook.md +0 -231
  206. package/docs/concepts/mantis.md +0 -744
  207. package/docs/concepts/markdown-formatting.md +0 -139
  208. package/docs/concepts/memory-builtin.md +0 -148
  209. package/docs/concepts/memory-honcho.md +0 -144
  210. package/docs/concepts/memory-qmd.md +0 -271
  211. package/docs/concepts/memory-search.md +0 -167
  212. package/docs/concepts/memory.md +0 -299
  213. package/docs/concepts/message-lifecycle-refactor.md +0 -1126
  214. package/docs/concepts/messages.md +0 -214
  215. package/docs/concepts/model-failover.md +0 -384
  216. package/docs/concepts/model-providers.md +0 -719
  217. package/docs/concepts/models.md +0 -371
  218. package/docs/concepts/multi-agent.md +0 -625
  219. package/docs/concepts/oauth.md +0 -198
  220. package/docs/concepts/parallel-specialist-lanes.md +0 -127
  221. package/docs/concepts/personal-agent-benchmark-pack.md +0 -74
  222. package/docs/concepts/presence.md +0 -117
  223. package/docs/concepts/progress-drafts.md +0 -406
  224. package/docs/concepts/qa-e2e-automation.md +0 -947
  225. package/docs/concepts/qa-matrix.md +0 -139
  226. package/docs/concepts/queue-steering.md +0 -90
  227. package/docs/concepts/queue.md +0 -136
  228. package/docs/concepts/retry.md +0 -86
  229. package/docs/concepts/session-pruning.md +0 -104
  230. package/docs/concepts/session-tool.md +0 -188
  231. package/docs/concepts/session.md +0 -164
  232. package/docs/concepts/soul.md +0 -116
  233. package/docs/concepts/streaming.md +0 -257
  234. package/docs/concepts/system-prompt.md +0 -328
  235. package/docs/concepts/timezone.md +0 -47
  236. package/docs/concepts/typebox.md +0 -309
  237. package/docs/concepts/typing-indicators.md +0 -88
  238. package/docs/concepts/usage-tracking.md +0 -66
  239. package/docs/date-time.md +0 -126
  240. package/docs/debug/node-issue.md +0 -90
  241. package/docs/diagnostics/flags.md +0 -182
  242. package/docs/docs.json +0 -1862
  243. package/docs/fengming-agent-runtime.md +0 -82
  244. package/docs/gateway/authentication.md +0 -256
  245. package/docs/gateway/background-process.md +0 -147
  246. package/docs/gateway/bonjour.md +0 -303
  247. package/docs/gateway/bridge-protocol.md +0 -97
  248. package/docs/gateway/cli-backends.md +0 -439
  249. package/docs/gateway/config-agents.md +0 -1525
  250. package/docs/gateway/config-channels.md +0 -945
  251. package/docs/gateway/config-tools.md +0 -774
  252. package/docs/gateway/configuration-examples.md +0 -704
  253. package/docs/gateway/configuration-reference.md +0 -1391
  254. package/docs/gateway/configuration.md +0 -739
  255. package/docs/gateway/diagnostics.md +0 -213
  256. package/docs/gateway/discovery.md +0 -154
  257. package/docs/gateway/doctor.md +0 -575
  258. package/docs/gateway/gateway-lock.md +0 -37
  259. package/docs/gateway/health.md +0 -73
  260. package/docs/gateway/heartbeat.md +0 -498
  261. package/docs/gateway/index.md +0 -383
  262. package/docs/gateway/local-model-services.md +0 -205
  263. package/docs/gateway/local-models.md +0 -355
  264. package/docs/gateway/logging.md +0 -149
  265. package/docs/gateway/multiple-gateways.md +0 -178
  266. package/docs/gateway/network-model.md +0 -15
  267. package/docs/gateway/openai-http-api.md +0 -378
  268. package/docs/gateway/openresponses-http-api.md +0 -347
  269. package/docs/gateway/openshell.md +0 -316
  270. package/docs/gateway/opentelemetry.md +0 -433
  271. package/docs/gateway/operator-scopes.md +0 -119
  272. package/docs/gateway/pairing.md +0 -207
  273. package/docs/gateway/prometheus.md +0 -249
  274. package/docs/gateway/protocol.md +0 -826
  275. package/docs/gateway/remote-gateway-readme.md +0 -169
  276. package/docs/gateway/remote.md +0 -280
  277. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -148
  278. package/docs/gateway/sandboxing.md +0 -546
  279. package/docs/gateway/secrets-plan-contract.md +0 -159
  280. package/docs/gateway/secrets.md +0 -805
  281. package/docs/gateway/security/audit-checks.md +0 -127
  282. package/docs/gateway/security/exposure-runbook.md +0 -212
  283. package/docs/gateway/security/index.md +0 -1343
  284. package/docs/gateway/security/secure-file-operations.md +0 -76
  285. package/docs/gateway/security/shrinkwrap.md +0 -111
  286. package/docs/gateway/tailscale.md +0 -156
  287. package/docs/gateway/tools-invoke-http-api.md +0 -169
  288. package/docs/gateway/troubleshooting.md +0 -877
  289. package/docs/gateway/trusted-proxy-auth.md +0 -483
  290. package/docs/help/debugging.md +0 -341
  291. package/docs/help/environment.md +0 -233
  292. package/docs/help/faq-first-run.md +0 -870
  293. package/docs/help/faq-models.md +0 -556
  294. package/docs/help/faq.md +0 -2041
  295. package/docs/help/index.md +0 -39
  296. package/docs/help/scripts.md +0 -56
  297. package/docs/help/testing-live.md +0 -587
  298. package/docs/help/testing-updates-plugins.md +0 -299
  299. package/docs/help/testing.md +0 -977
  300. package/docs/help/troubleshooting.md +0 -449
  301. package/docs/index.md +0 -196
  302. package/docs/install/ansible.md +0 -233
  303. package/docs/install/azure.md +0 -315
  304. package/docs/install/bun.md +0 -59
  305. package/docs/install/clawdock.md +0 -112
  306. package/docs/install/development-channels.md +0 -148
  307. package/docs/install/digitalocean.md +0 -174
  308. package/docs/install/docker-vm-runtime.md +0 -154
  309. package/docs/install/docker.md +0 -564
  310. package/docs/install/exe-dev.md +0 -201
  311. package/docs/install/fly.md +0 -524
  312. package/docs/install/gcp.md +0 -418
  313. package/docs/install/hetzner.md +0 -285
  314. package/docs/install/hostinger.md +0 -98
  315. package/docs/install/index.md +0 -232
  316. package/docs/install/installer.md +0 -447
  317. package/docs/install/kubernetes.md +0 -196
  318. package/docs/install/macos-vm.md +0 -281
  319. package/docs/install/migrating-claude.md +0 -165
  320. package/docs/install/migrating-hermes.md +0 -178
  321. package/docs/install/migrating.md +0 -137
  322. package/docs/install/nix.md +0 -112
  323. package/docs/install/node.md +0 -142
  324. package/docs/install/northflank.mdx +0 -44
  325. package/docs/install/oracle.md +0 -218
  326. package/docs/install/podman.md +0 -216
  327. package/docs/install/railway.mdx +0 -92
  328. package/docs/install/raspberry-pi.md +0 -234
  329. package/docs/install/render.mdx +0 -167
  330. package/docs/install/uninstall.md +0 -131
  331. package/docs/install/updating.md +0 -284
  332. package/docs/install/upstash.md +0 -96
  333. package/docs/logging.md +0 -320
  334. package/docs/nav-tabs-underline.js +0 -100
  335. package/docs/network.md +0 -72
  336. package/docs/nodes/audio.md +0 -216
  337. package/docs/nodes/camera.md +0 -166
  338. package/docs/nodes/images.md +0 -77
  339. package/docs/nodes/index.md +0 -439
  340. package/docs/nodes/location-command.md +0 -102
  341. package/docs/nodes/media-understanding.md +0 -495
  342. package/docs/nodes/talk.md +0 -160
  343. package/docs/nodes/troubleshooting.md +0 -123
  344. package/docs/nodes/voicewake.md +0 -93
  345. package/docs/perplexity.md +0 -11
  346. package/docs/plan/codex-context-engine-harness.md +0 -624
  347. package/docs/plan/ui-channels.md +0 -284
  348. package/docs/platforms/digitalocean.md +0 -12
  349. package/docs/platforms/easyrunner.md +0 -109
  350. package/docs/platforms/index.md +0 -51
  351. package/docs/platforms/linux.md +0 -141
  352. package/docs/platforms/mac/bundled-gateway.md +0 -79
  353. package/docs/platforms/mac/canvas.md +0 -128
  354. package/docs/platforms/mac/child-process.md +0 -72
  355. package/docs/platforms/mac/dev-setup.md +0 -112
  356. package/docs/platforms/mac/health.md +0 -39
  357. package/docs/platforms/mac/icon.md +0 -36
  358. package/docs/platforms/mac/logging.md +0 -62
  359. package/docs/platforms/mac/menu-bar.md +0 -93
  360. package/docs/platforms/mac/peekaboo.md +0 -96
  361. package/docs/platforms/mac/permissions.md +0 -73
  362. package/docs/platforms/mac/remote.md +0 -123
  363. package/docs/platforms/mac/signing.md +0 -52
  364. package/docs/platforms/mac/skills.md +0 -43
  365. package/docs/platforms/mac/voice-overlay.md +0 -66
  366. package/docs/platforms/mac/voicewake.md +0 -73
  367. package/docs/platforms/mac/webchat.md +0 -54
  368. package/docs/platforms/mac/xpc.md +0 -66
  369. package/docs/platforms/oracle.md +0 -12
  370. package/docs/platforms/raspberry-pi.md +0 -13
  371. package/docs/platforms/windows.md +0 -286
  372. package/docs/plugins/adding-capabilities.md +0 -146
  373. package/docs/plugins/admin-http-rpc.md +0 -216
  374. package/docs/plugins/agent-tools.md +0 -13
  375. package/docs/plugins/architecture-internals.md +0 -1196
  376. package/docs/plugins/architecture.md +0 -483
  377. package/docs/plugins/building-extensions.md +0 -13
  378. package/docs/plugins/building-plugins.md +0 -335
  379. package/docs/plugins/bundles.md +0 -310
  380. package/docs/plugins/cli-backend-plugins.md +0 -310
  381. package/docs/plugins/codex-computer-use.md +0 -297
  382. package/docs/plugins/codex-harness-reference.md +0 -470
  383. package/docs/plugins/codex-harness-runtime.md +0 -268
  384. package/docs/plugins/codex-harness.md +0 -780
  385. package/docs/plugins/codex-native-plugins.md +0 -276
  386. package/docs/plugins/community.md +0 -77
  387. package/docs/plugins/compatibility.md +0 -167
  388. package/docs/plugins/copilot.md +0 -356
  389. package/docs/plugins/dependency-resolution.md +0 -176
  390. package/docs/plugins/google-meet.md +0 -1737
  391. package/docs/plugins/hooks.md +0 -484
  392. package/docs/plugins/install-overrides.md +0 -80
  393. package/docs/plugins/manage-plugins.md +0 -210
  394. package/docs/plugins/manifest.md +0 -1457
  395. package/docs/plugins/memory-lancedb.md +0 -385
  396. package/docs/plugins/memory-wiki.md +0 -529
  397. package/docs/plugins/message-presentation.md +0 -473
  398. package/docs/plugins/oc-path.md +0 -166
  399. package/docs/plugins/plugin-inventory.md +0 -189
  400. package/docs/plugins/plugin-permission-requests.md +0 -193
  401. package/docs/plugins/reference/acpx.md +0 -23
  402. package/docs/plugins/reference/admin-http-rpc.md +0 -23
  403. package/docs/plugins/reference/alibaba.md +0 -23
  404. package/docs/plugins/reference/amazon-bedrock-mantle.md +0 -23
  405. package/docs/plugins/reference/amazon-bedrock.md +0 -23
  406. package/docs/plugins/reference/anthropic-vertex.md +0 -19
  407. package/docs/plugins/reference/anthropic.md +0 -23
  408. package/docs/plugins/reference/arcee.md +0 -23
  409. package/docs/plugins/reference/azure-speech.md +0 -23
  410. package/docs/plugins/reference/bonjour.md +0 -19
  411. package/docs/plugins/reference/brave.md +0 -23
  412. package/docs/plugins/reference/browser.md +0 -23
  413. package/docs/plugins/reference/byteplus.md +0 -19
  414. package/docs/plugins/reference/canvas.md +0 -19
  415. package/docs/plugins/reference/cerebras.md +0 -23
  416. package/docs/plugins/reference/chutes.md +0 -23
  417. package/docs/plugins/reference/clickclack.md +0 -23
  418. package/docs/plugins/reference/cloudflare-ai-gateway.md +0 -23
  419. package/docs/plugins/reference/codex-supervisor.md +0 -27
  420. package/docs/plugins/reference/codex.md +0 -23
  421. package/docs/plugins/reference/comfy.md +0 -23
  422. package/docs/plugins/reference/copilot-proxy.md +0 -19
  423. package/docs/plugins/reference/copilot.md +0 -23
  424. package/docs/plugins/reference/deepgram.md +0 -23
  425. package/docs/plugins/reference/deepinfra.md +0 -23
  426. package/docs/plugins/reference/deepseek.md +0 -23
  427. package/docs/plugins/reference/diagnostics-otel.md +0 -19
  428. package/docs/plugins/reference/diagnostics-prometheus.md +0 -19
  429. package/docs/plugins/reference/diffs-language-pack.md +0 -19
  430. package/docs/plugins/reference/diffs.md +0 -19
  431. package/docs/plugins/reference/discord.md +0 -23
  432. package/docs/plugins/reference/document-extract.md +0 -23
  433. package/docs/plugins/reference/duckduckgo.md +0 -23
  434. package/docs/plugins/reference/elevenlabs.md +0 -23
  435. package/docs/plugins/reference/exa.md +0 -23
  436. package/docs/plugins/reference/fal.md +0 -23
  437. package/docs/plugins/reference/feishu.md +0 -23
  438. package/docs/plugins/reference/file-transfer.md +0 -19
  439. package/docs/plugins/reference/firecrawl.md +0 -23
  440. package/docs/plugins/reference/fireworks.md +0 -23
  441. package/docs/plugins/reference/github-copilot.md +0 -23
  442. package/docs/plugins/reference/gmi.md +0 -23
  443. package/docs/plugins/reference/google-meet.md +0 -23
  444. package/docs/plugins/reference/google.md +0 -23
  445. package/docs/plugins/reference/googlechat.md +0 -23
  446. package/docs/plugins/reference/gradium.md +0 -23
  447. package/docs/plugins/reference/groq.md +0 -23
  448. package/docs/plugins/reference/huggingface.md +0 -23
  449. package/docs/plugins/reference/imessage.md +0 -23
  450. package/docs/plugins/reference/inworld.md +0 -23
  451. package/docs/plugins/reference/irc.md +0 -23
  452. package/docs/plugins/reference/kilocode.md +0 -23
  453. package/docs/plugins/reference/kimi.md +0 -23
  454. package/docs/plugins/reference/line.md +0 -23
  455. package/docs/plugins/reference/litellm.md +0 -23
  456. package/docs/plugins/reference/llm-task.md +0 -19
  457. package/docs/plugins/reference/lmstudio.md +0 -23
  458. package/docs/plugins/reference/lobster.md +0 -19
  459. package/docs/plugins/reference/matrix.md +0 -23
  460. package/docs/plugins/reference/mattermost.md +0 -23
  461. package/docs/plugins/reference/memory-core.md +0 -19
  462. package/docs/plugins/reference/memory-lancedb.md +0 -23
  463. package/docs/plugins/reference/memory-wiki.md +0 -23
  464. package/docs/plugins/reference/microsoft-foundry.md +0 -19
  465. package/docs/plugins/reference/microsoft.md +0 -19
  466. package/docs/plugins/reference/migrate-claude.md +0 -19
  467. package/docs/plugins/reference/migrate-hermes.md +0 -19
  468. package/docs/plugins/reference/minimax.md +0 -23
  469. package/docs/plugins/reference/mistral.md +0 -23
  470. package/docs/plugins/reference/moonshot.md +0 -23
  471. package/docs/plugins/reference/msteams.md +0 -23
  472. package/docs/plugins/reference/nextcloud-talk.md +0 -23
  473. package/docs/plugins/reference/nostr.md +0 -23
  474. package/docs/plugins/reference/novita.md +0 -23
  475. package/docs/plugins/reference/nvidia.md +0 -23
  476. package/docs/plugins/reference/oc-path.md +0 -23
  477. package/docs/plugins/reference/ollama.md +0 -23
  478. package/docs/plugins/reference/open-prose.md +0 -19
  479. package/docs/plugins/reference/openai.md +0 -23
  480. package/docs/plugins/reference/opencode-go.md +0 -23
  481. package/docs/plugins/reference/opencode.md +0 -23
  482. package/docs/plugins/reference/openrouter.md +0 -23
  483. package/docs/plugins/reference/openshell.md +0 -19
  484. package/docs/plugins/reference/perplexity.md +0 -23
  485. package/docs/plugins/reference/pixverse.md +0 -23
  486. package/docs/plugins/reference/policy.md +0 -72
  487. package/docs/plugins/reference/qa-channel.md +0 -23
  488. package/docs/plugins/reference/qa-lab.md +0 -19
  489. package/docs/plugins/reference/qa-matrix.md +0 -19
  490. package/docs/plugins/reference/qianfan.md +0 -23
  491. package/docs/plugins/reference/qqbot.md +0 -23
  492. package/docs/plugins/reference/qwen.md +0 -23
  493. package/docs/plugins/reference/runway.md +0 -23
  494. package/docs/plugins/reference/searxng.md +0 -19
  495. package/docs/plugins/reference/senseaudio.md +0 -23
  496. package/docs/plugins/reference/sglang.md +0 -23
  497. package/docs/plugins/reference/signal.md +0 -23
  498. package/docs/plugins/reference/skill-workshop.md +0 -23
  499. package/docs/plugins/reference/slack.md +0 -23
  500. package/docs/plugins/reference/stepfun.md +0 -23
  501. package/docs/plugins/reference/synology-chat.md +0 -23
  502. package/docs/plugins/reference/synthetic.md +0 -23
  503. package/docs/plugins/reference/tavily.md +0 -23
  504. package/docs/plugins/reference/telegram.md +0 -23
  505. package/docs/plugins/reference/tencent.md +0 -23
  506. package/docs/plugins/reference/tlon.md +0 -23
  507. package/docs/plugins/reference/together.md +0 -23
  508. package/docs/plugins/reference/tokenjuice.md +0 -23
  509. package/docs/plugins/reference/tts-local-cli.md +0 -19
  510. package/docs/plugins/reference/twitch.md +0 -23
  511. package/docs/plugins/reference/venice.md +0 -23
  512. package/docs/plugins/reference/vercel-ai-gateway.md +0 -23
  513. package/docs/plugins/reference/vllm.md +0 -23
  514. package/docs/plugins/reference/voice-call.md +0 -23
  515. package/docs/plugins/reference/volcengine.md +0 -23
  516. package/docs/plugins/reference/voyage.md +0 -19
  517. package/docs/plugins/reference/vydra.md +0 -23
  518. package/docs/plugins/reference/web-readability.md +0 -19
  519. package/docs/plugins/reference/webhooks.md +0 -23
  520. package/docs/plugins/reference/whatsapp.md +0 -23
  521. package/docs/plugins/reference/workboard.md +0 -23
  522. package/docs/plugins/reference/xai.md +0 -23
  523. package/docs/plugins/reference/xiaomi.md +0 -23
  524. package/docs/plugins/reference/zai.md +0 -23
  525. package/docs/plugins/reference/zalo.md +0 -23
  526. package/docs/plugins/reference/zalouser.md +0 -24
  527. package/docs/plugins/reference.md +0 -145
  528. package/docs/plugins/sdk-agent-harness.md +0 -338
  529. package/docs/plugins/sdk-channel-inbound.md +0 -70
  530. package/docs/plugins/sdk-channel-ingress.md +0 -137
  531. package/docs/plugins/sdk-channel-message.md +0 -18
  532. package/docs/plugins/sdk-channel-outbound.md +0 -113
  533. package/docs/plugins/sdk-channel-plugins.md +0 -765
  534. package/docs/plugins/sdk-channel-turn.md +0 -9
  535. package/docs/plugins/sdk-entrypoints.md +0 -344
  536. package/docs/plugins/sdk-migration.md +0 -979
  537. package/docs/plugins/sdk-overview.md +0 -511
  538. package/docs/plugins/sdk-provider-plugins.md +0 -846
  539. package/docs/plugins/sdk-runtime.md +0 -676
  540. package/docs/plugins/sdk-setup.md +0 -550
  541. package/docs/plugins/sdk-subpaths.md +0 -391
  542. package/docs/plugins/sdk-testing.md +0 -403
  543. package/docs/plugins/skill-workshop.md +0 -713
  544. package/docs/plugins/tool-plugins.md +0 -411
  545. package/docs/plugins/voice-call.md +0 -942
  546. package/docs/plugins/webhooks.md +0 -192
  547. package/docs/plugins/workboard.md +0 -252
  548. package/docs/plugins/zalouser.md +0 -86
  549. package/docs/prose.md +0 -137
  550. package/docs/providers/alibaba.md +0 -158
  551. package/docs/providers/anthropic.md +0 -381
  552. package/docs/providers/arcee.md +0 -144
  553. package/docs/providers/azure-speech.md +0 -119
  554. package/docs/providers/bedrock-mantle.md +0 -211
  555. package/docs/providers/bedrock.md +0 -414
  556. package/docs/providers/cerebras.md +0 -130
  557. package/docs/providers/chutes.md +0 -153
  558. package/docs/providers/claude-max-api-proxy.md +0 -191
  559. package/docs/providers/cloudflare-ai-gateway.md +0 -119
  560. package/docs/providers/comfy.md +0 -362
  561. package/docs/providers/deepgram.md +0 -184
  562. package/docs/providers/deepinfra.md +0 -92
  563. package/docs/providers/deepseek.md +0 -146
  564. package/docs/providers/ds4.md +0 -309
  565. package/docs/providers/elevenlabs.md +0 -130
  566. package/docs/providers/fal.md +0 -240
  567. package/docs/providers/fireworks.md +0 -144
  568. package/docs/providers/github-copilot.md +0 -257
  569. package/docs/providers/gmi.md +0 -92
  570. package/docs/providers/google.md +0 -472
  571. package/docs/providers/gradium.md +0 -123
  572. package/docs/providers/groq.md +0 -171
  573. package/docs/providers/huggingface.md +0 -235
  574. package/docs/providers/index.md +0 -105
  575. package/docs/providers/inferrs.md +0 -272
  576. package/docs/providers/inworld.md +0 -120
  577. package/docs/providers/kilocode.md +0 -135
  578. package/docs/providers/litellm.md +0 -234
  579. package/docs/providers/lmstudio.md +0 -224
  580. package/docs/providers/minimax.md +0 -505
  581. package/docs/providers/mistral.md +0 -235
  582. package/docs/providers/models.md +0 -64
  583. package/docs/providers/moonshot.md +0 -413
  584. package/docs/providers/novita.md +0 -92
  585. package/docs/providers/nvidia.md +0 -158
  586. package/docs/providers/ollama-cloud.md +0 -115
  587. package/docs/providers/ollama.md +0 -1225
  588. package/docs/providers/openai.md +0 -1093
  589. package/docs/providers/opencode-go.md +0 -123
  590. package/docs/providers/opencode.md +0 -149
  591. package/docs/providers/openrouter.md +0 -349
  592. package/docs/providers/perplexity-provider.md +0 -123
  593. package/docs/providers/pixverse.md +0 -165
  594. package/docs/providers/qianfan.md +0 -132
  595. package/docs/providers/qwen-oauth.md +0 -115
  596. package/docs/providers/qwen.md +0 -364
  597. package/docs/providers/runway.md +0 -103
  598. package/docs/providers/senseaudio.md +0 -68
  599. package/docs/providers/sglang.md +0 -161
  600. package/docs/providers/stepfun.md +0 -229
  601. package/docs/providers/synthetic.md +0 -154
  602. package/docs/providers/tencent.md +0 -130
  603. package/docs/providers/together.md +0 -140
  604. package/docs/providers/venice.md +0 -312
  605. package/docs/providers/vercel-ai-gateway.md +0 -128
  606. package/docs/providers/vllm.md +0 -407
  607. package/docs/providers/volcengine.md +0 -199
  608. package/docs/providers/vydra.md +0 -180
  609. package/docs/providers/xai.md +0 -571
  610. package/docs/providers/xiaomi.md +0 -262
  611. package/docs/providers/zai.md +0 -224
  612. package/docs/refactor/access.md +0 -9
  613. package/docs/refactor/acp.md +0 -298
  614. package/docs/refactor/canvas.md +0 -131
  615. package/docs/refactor/database-first.md +0 -2256
  616. package/docs/refactor/ingress-core.md +0 -341
  617. package/docs/reference/AGENTS.default.md +0 -131
  618. package/docs/reference/RELEASING.md +0 -799
  619. package/docs/reference/api-usage-costs.md +0 -208
  620. package/docs/reference/application-modernization-plan.md +0 -208
  621. package/docs/reference/code-mode.md +0 -773
  622. package/docs/reference/credits.md +0 -33
  623. package/docs/reference/device-models.md +0 -50
  624. package/docs/reference/fengming-sdk-api-design.md +0 -390
  625. package/docs/reference/full-release-validation.md +0 -202
  626. package/docs/reference/memory-config.md +0 -604
  627. package/docs/reference/prompt-caching.md +0 -358
  628. package/docs/reference/release-performance-sweep.md +0 -360
  629. package/docs/reference/rich-output-protocol.md +0 -101
  630. package/docs/reference/rpc.md +0 -43
  631. package/docs/reference/secret-placeholder-conventions.md +0 -33
  632. package/docs/reference/secretref-credential-surface.md +0 -159
  633. package/docs/reference/secretref-user-supplied-credentials-matrix.json +0 -663
  634. package/docs/reference/session-management-compaction.md +0 -474
  635. package/docs/reference/templates/AGENTS.dev.md +0 -90
  636. package/docs/reference/templates/AGENTS.md +0 -227
  637. package/docs/reference/templates/BOOT.md +0 -16
  638. package/docs/reference/templates/BOOTSTRAP.md +0 -66
  639. package/docs/reference/templates/CLAUDE.md +0 -1
  640. package/docs/reference/templates/HEARTBEAT.md +0 -24
  641. package/docs/reference/templates/IDENTITY.dev.md +0 -52
  642. package/docs/reference/templates/IDENTITY.md +0 -34
  643. package/docs/reference/templates/SOUL.dev.md +0 -82
  644. package/docs/reference/templates/SOUL.md +0 -49
  645. package/docs/reference/templates/TOOLS.dev.md +0 -29
  646. package/docs/reference/templates/TOOLS.md +0 -51
  647. package/docs/reference/templates/USER.dev.md +0 -23
  648. package/docs/reference/templates/USER.md +0 -28
  649. package/docs/reference/test.md +0 -247
  650. package/docs/reference/token-use.md +0 -246
  651. package/docs/reference/transcript-hygiene.md +0 -214
  652. package/docs/reference/wizard.md +0 -252
  653. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -101
  654. package/docs/security/THREAT-MODEL-ATLAS.md +0 -611
  655. package/docs/security/formal-verification.md +0 -170
  656. package/docs/security/incident-response.md +0 -59
  657. package/docs/security/network-proxy.md +0 -268
  658. package/docs/snippets/plugin-publish/minimal-fengming.plugin.json +0 -12
  659. package/docs/snippets/plugin-publish/minimal-package.json +0 -16
  660. package/docs/specs/claw-supervisor.md +0 -247
  661. package/docs/start/bootstrapping.md +0 -49
  662. package/docs/start/docs-directory.md +0 -69
  663. package/docs/start/fengming.md +0 -252
  664. package/docs/start/getting-started.md +0 -152
  665. package/docs/start/hubs.md +0 -201
  666. package/docs/start/lore.md +0 -223
  667. package/docs/start/onboarding-overview.md +0 -72
  668. package/docs/start/onboarding.md +0 -98
  669. package/docs/start/quickstart.md +0 -25
  670. package/docs/start/setup.md +0 -178
  671. package/docs/start/showcase.md +0 -363
  672. package/docs/start/wizard-cli-automation.md +0 -232
  673. package/docs/start/wizard-cli-reference.md +0 -331
  674. package/docs/start/wizard.md +0 -141
  675. package/docs/style.css +0 -137
  676. package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +0 -316
  677. package/docs/tools/acp-agents-setup.md +0 -351
  678. package/docs/tools/acp-agents.md +0 -854
  679. package/docs/tools/agent-send.md +0 -130
  680. package/docs/tools/apply-patch.md +0 -64
  681. package/docs/tools/brave-search.md +0 -139
  682. package/docs/tools/browser-control.md +0 -391
  683. package/docs/tools/browser-linux-troubleshooting.md +0 -173
  684. package/docs/tools/browser-login.md +0 -77
  685. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +0 -219
  686. package/docs/tools/browser.md +0 -810
  687. package/docs/tools/btw.md +0 -159
  688. package/docs/tools/capability-cookbook.md +0 -12
  689. package/docs/tools/clawhub.md +0 -5
  690. package/docs/tools/code-execution.md +0 -173
  691. package/docs/tools/creating-skills.md +0 -158
  692. package/docs/tools/diffs.md +0 -525
  693. package/docs/tools/duckduckgo-search.md +0 -109
  694. package/docs/tools/elevated.md +0 -128
  695. package/docs/tools/exa-search.md +0 -152
  696. package/docs/tools/exec-approvals-advanced.md +0 -444
  697. package/docs/tools/exec-approvals.md +0 -494
  698. package/docs/tools/exec.md +0 -285
  699. package/docs/tools/firecrawl.md +0 -155
  700. package/docs/tools/gemini-search.md +0 -114
  701. package/docs/tools/goal.md +0 -217
  702. package/docs/tools/grok-search.md +0 -129
  703. package/docs/tools/image-generation.md +0 -493
  704. package/docs/tools/index.md +0 -178
  705. package/docs/tools/kimi-search.md +0 -105
  706. package/docs/tools/llm-task.md +0 -137
  707. package/docs/tools/lobster.md +0 -365
  708. package/docs/tools/loop-detection.md +0 -154
  709. package/docs/tools/media-overview.md +0 -160
  710. package/docs/tools/minimax-search.md +0 -102
  711. package/docs/tools/multi-agent-sandbox-tools.md +0 -409
  712. package/docs/tools/music-generation.md +0 -372
  713. package/docs/tools/ollama-search.md +0 -153
  714. package/docs/tools/pdf.md +0 -213
  715. package/docs/tools/perplexity-search.md +0 -220
  716. package/docs/tools/plugin.md +0 -363
  717. package/docs/tools/reactions.md +0 -100
  718. package/docs/tools/searxng-search.md +0 -141
  719. package/docs/tools/skills-config.md +0 -195
  720. package/docs/tools/skills.md +0 -569
  721. package/docs/tools/slash-commands.md +0 -487
  722. package/docs/tools/steer.md +0 -77
  723. package/docs/tools/subagents.md +0 -651
  724. package/docs/tools/tavily.md +0 -162
  725. package/docs/tools/thinking.md +0 -142
  726. package/docs/tools/tokenjuice.md +0 -84
  727. package/docs/tools/tool-search.md +0 -269
  728. package/docs/tools/trajectory.md +0 -229
  729. package/docs/tools/tts.md +0 -1009
  730. package/docs/tools/video-generation.md +0 -555
  731. package/docs/tools/web-fetch.md +0 -210
  732. package/docs/tools/web.md +0 -461
  733. package/docs/tts.md +0 -11
  734. package/docs/vps.md +0 -139
  735. package/docs/web/control-ui.md +0 -512
  736. package/docs/web/dashboard.md +0 -107
  737. package/docs/web/index.md +0 -133
  738. package/docs/web/tui.md +0 -250
  739. package/docs/web/webchat.md +0 -102
  740. package/npm-shrinkwrap.json +0 -12861
  741. package/patches/.gitkeep +0 -0
  742. package/patches/@agentclientprotocol__claude-agent-acp@0.37.0.patch +0 -41
  743. package/pnpm-workspace.yaml +0 -120
  744. package/scripts/crabbox-wrapper.mjs +0 -2004
  745. package/scripts/lib/official-external-channel-catalog.json +0 -560
  746. package/scripts/lib/official-external-plugin-catalog.json +0 -264
  747. package/scripts/lib/official-external-provider-catalog.json +0 -158
  748. package/scripts/lib/package-dist-imports.mjs +0 -171
  749. package/scripts/npm-runner.mjs +0 -91
  750. package/scripts/postinstall-bundled-plugins.mjs +0 -978
  751. package/scripts/preinstall-package-manager-warning.mjs +0 -64
  752. package/scripts/prepare-git-hooks.mjs +0 -72
  753. package/scripts/windows-cmd-helpers.mjs +0 -22
  754. package/skills/batch/SKILL.md +0 -118
  755. package/skills/code-review/SKILL.md +0 -107
  756. package/skills/debug/SKILL.md +0 -83
  757. package/skills/loop/SKILL.md +0 -118
  758. package/skills/run/SKILL.md +0 -79
  759. package/skills/run-skill-generator/SKILL.md +0 -179
  760. package/skills/verify/SKILL.md +0 -103
  761. package/src/agents/templates/HEARTBEAT.md +0 -3
@@ -1,355 +0,0 @@
1
- ---
2
- summary: "Run FengMing on local LLMs (LM Studio, vLLM, LiteLLM, custom OpenAI endpoints)"
3
- read_when:
4
- - You want to serve models from your own GPU box
5
- - You are wiring LM Studio or an OpenAI-compatible proxy
6
- - You need the safest local model guidance
7
- title: "Local models"
8
- ---
9
-
10
- Local models are doable. They also raise the bar on hardware, context size, and prompt-injection defense — small or aggressively quantized cards truncate context and leak safety. This page is the opinionated guide for higher-end local stacks and custom OpenAI-compatible local servers. For lowest-friction onboarding, start with [LM Studio](/providers/lmstudio) or [Ollama](/providers/ollama) and `fengming onboard`.
11
-
12
- For local servers that should start only when a selected model needs them, see
13
- [Local model services](/gateway/local-model-services).
14
-
15
- ## Hardware floor
16
-
17
- Aim high: **≥2 maxed-out Mac Studios or an equivalent GPU rig (~$30k+)** for a comfortable agent loop. A single **24 GB** GPU works only for lighter prompts at higher latency. Always run the **largest / full-size variant you can host**; small or heavily quantized checkpoints raise prompt-injection risk (see [Security](/gateway/security)).
18
-
19
- ## Pick a backend
20
-
21
- | Backend | Use when |
22
- | ---------------------------------------------------- | --------------------------------------------------------------------------- |
23
- | [ds4](/providers/ds4) | Local DeepSeek V4 Flash on macOS Metal with OpenAI-compatible tool calls |
24
- | [LM Studio](/providers/lmstudio) | First-time local setup, GUI loader, native Responses API |
25
- | LiteLLM / OAI-proxy / custom OpenAI-compatible proxy | You front another model API and need FengMing to treat it as OpenAI |
26
- | MLX / vLLM / SGLang | High-throughput self-hosted serving with an OpenAI-compatible HTTP endpoint |
27
- | [Ollama](/providers/ollama) | CLI workflow, model library, hands-off systemd service |
28
-
29
- Use Responses API (`api: "openai-responses"`) when the backend supports it (LM Studio does). Otherwise stick to Chat Completions (`api: "openai-completions"`).
30
-
31
- <Warning>
32
- **WSL2 + Ollama + NVIDIA/CUDA users:** The official Ollama Linux installer enables a systemd service with `Restart=always`. On WSL2 GPU setups, autostart can reload the last model during boot and pin host memory. If your WSL2 VM repeatedly restarts after enabling Ollama, see [WSL2 crash loop](/providers/ollama#wsl2-crash-loop-repeated-reboots).
33
- </Warning>
34
-
35
- ## Recommended: LM Studio + large local model (Responses API)
36
-
37
- Best current local stack. Load a large model in LM Studio (for example, a full-size Qwen, DeepSeek, or Llama build), enable the local server (default `http://127.0.0.1:1234`), and use Responses API to keep reasoning separate from final text.
38
-
39
- ```json5
40
- {
41
- agents: {
42
- defaults: {
43
- model: { primary: "lmstudio/my-local-model" },
44
- models: {
45
- "anthropic/claude-opus-4-6": { alias: "Opus" },
46
- "lmstudio/my-local-model": { alias: "Local" },
47
- },
48
- },
49
- },
50
- models: {
51
- mode: "merge",
52
- providers: {
53
- lmstudio: {
54
- baseUrl: "http://127.0.0.1:1234/v1",
55
- apiKey: "lmstudio",
56
- api: "openai-responses",
57
- models: [
58
- {
59
- id: "my-local-model",
60
- name: "Local Model",
61
- reasoning: false,
62
- input: ["text"],
63
- cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
64
- contextWindow: 196608,
65
- maxTokens: 8192,
66
- },
67
- ],
68
- },
69
- },
70
- },
71
- }
72
- ```
73
-
74
- **Setup checklist**
75
-
76
- - Install LM Studio: [https://lmstudio.ai](https://lmstudio.ai)
77
- - In LM Studio, download the **largest model build available** (avoid "small"/heavily quantized variants), start the server, confirm `http://127.0.0.1:1234/v1/models` lists it.
78
- - Replace `my-local-model` with the actual model ID shown in LM Studio.
79
- - Keep the model loaded; cold-load adds startup latency.
80
- - Adjust `contextWindow`/`maxTokens` if your LM Studio build differs.
81
- - For WhatsApp, stick to Responses API so only final text is sent.
82
-
83
- Keep hosted models configured even when running local; use `models.mode: "merge"` so fallbacks stay available.
84
-
85
- ### Hybrid config: hosted primary, local fallback
86
-
87
- ```json5
88
- {
89
- agents: {
90
- defaults: {
91
- model: {
92
- primary: "anthropic/claude-sonnet-4-6",
93
- fallbacks: ["lmstudio/my-local-model", "anthropic/claude-opus-4-6"],
94
- },
95
- models: {
96
- "anthropic/claude-sonnet-4-6": { alias: "Sonnet" },
97
- "lmstudio/my-local-model": { alias: "Local" },
98
- "anthropic/claude-opus-4-6": { alias: "Opus" },
99
- },
100
- },
101
- },
102
- models: {
103
- mode: "merge",
104
- providers: {
105
- lmstudio: {
106
- baseUrl: "http://127.0.0.1:1234/v1",
107
- apiKey: "lmstudio",
108
- api: "openai-responses",
109
- models: [
110
- {
111
- id: "my-local-model",
112
- name: "Local Model",
113
- reasoning: false,
114
- input: ["text"],
115
- cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
116
- contextWindow: 196608,
117
- maxTokens: 8192,
118
- },
119
- ],
120
- },
121
- },
122
- },
123
- }
124
- ```
125
-
126
- ### Local-first with hosted safety net
127
-
128
- Swap the primary and fallback order; keep the same providers block and `models.mode: "merge"` so you can fall back to Sonnet or Opus when the local box is down.
129
-
130
- ### Regional hosting / data routing
131
-
132
- - Hosted MiniMax/Kimi/GLM variants also exist on OpenRouter with region-pinned endpoints (e.g., US-hosted). Pick the regional variant there to keep traffic in your chosen jurisdiction while still using `models.mode: "merge"` for Anthropic/OpenAI fallbacks.
133
- - Local-only remains the strongest privacy path; hosted regional routing is the middle ground when you need provider features but want control over data flow.
134
-
135
- ## Other OpenAI-compatible local proxies
136
-
137
- MLX (`mlx_lm.server`), vLLM, SGLang, LiteLLM, OAI-proxy, or custom
138
- gateways work if they expose an OpenAI-style `/v1/chat/completions`
139
- endpoint. Use the Chat Completions adapter unless the backend explicitly
140
- documents `/v1/responses` support. Replace the provider block above with your
141
- endpoint and model ID:
142
-
143
- ```json5
144
- {
145
- agents: {
146
- defaults: {
147
- model: { primary: "local/my-local-model" },
148
- },
149
- },
150
- models: {
151
- mode: "merge",
152
- providers: {
153
- local: {
154
- baseUrl: "http://127.0.0.1:8000/v1",
155
- apiKey: "sk-local",
156
- api: "openai-completions",
157
- timeoutSeconds: 300,
158
- models: [
159
- {
160
- id: "my-local-model",
161
- name: "Local Model",
162
- reasoning: false,
163
- input: ["text"],
164
- cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
165
- contextWindow: 120000,
166
- maxTokens: 8192,
167
- },
168
- ],
169
- },
170
- },
171
- },
172
- }
173
- ```
174
-
175
- If `api` is omitted on a custom provider with a `baseUrl`, FengMing defaults to
176
- `openai-completions`. Custom/local provider entries trust their exact configured
177
- `baseUrl` origin for guarded model requests, including loopback, LAN, tailnet,
178
- and private DNS hosts. Requests to other private origins still need
179
- `request.allowPrivateNetwork: true`; metadata/link-local origins remain blocked
180
- without explicit opt-in. Set it to `false` to opt out of exact-origin trust.
181
-
182
- The `models.providers.<id>.models[].id` value is provider-local. Do not
183
- include the provider prefix there. For example, an MLX server started with
184
- `mlx_lm.server --model mlx-community/Qwen3-30B-A3B-6bit` should use this
185
- catalog id and model ref:
186
-
187
- - `models.providers.mlx.models[].id: "mlx-community/Qwen3-30B-A3B-6bit"`
188
- - `agents.defaults.model.primary: "mlx/mlx-community/Qwen3-30B-A3B-6bit"`
189
-
190
- Set `input: ["text", "image"]` on local or proxied vision models so image
191
- attachments are injected into agent turns. Interactive custom-provider
192
- onboarding infers common vision model IDs and asks only for unknown names.
193
- Non-interactive onboarding uses the same inference; use `--custom-image-input`
194
- for unknown vision IDs or `--custom-text-input` when a known-looking model is
195
- text-only behind your endpoint.
196
-
197
- Keep `models.mode: "merge"` so hosted models stay available as fallbacks.
198
- Use `models.providers.<id>.timeoutSeconds` for slow local or remote model
199
- servers before raising `agents.defaults.timeoutSeconds`. The provider timeout
200
- applies only to model HTTP requests, including connect, headers, body streaming,
201
- and the total guarded-fetch abort. If the agent or run timeout is lower, raise
202
- that ceiling too because provider timeouts cannot extend the whole agent run.
203
-
204
- <Note>
205
- For custom OpenAI-compatible providers, persisting a non-secret local marker such as `apiKey: "ollama-local"` is accepted when `baseUrl` resolves to loopback, a private LAN, `.local`, or a bare hostname. FengMing treats it as a valid local credential instead of reporting a missing key. Use a real value for any provider that accepts a public hostname.
206
- </Note>
207
-
208
- Behavior note for local/proxied `/v1` backends:
209
-
210
- - FengMing treats these as proxy-style OpenAI-compatible routes, not native
211
- OpenAI endpoints
212
- - native OpenAI-only request shaping does not apply here: no
213
- `service_tier`, no Responses `store`, no OpenAI reasoning-compat payload
214
- shaping, and no prompt-cache hints
215
- - hidden FengMing attribution headers (`originator`, `version`, `User-Agent`)
216
- are not injected on these custom proxy URLs
217
-
218
- Compatibility notes for stricter OpenAI-compatible backends:
219
-
220
- - Some servers accept only string `messages[].content` on Chat Completions, not
221
- structured content-part arrays. Set
222
- `models.providers.<provider>.models[].compat.requiresStringContent: true` for
223
- those endpoints.
224
- - Some local models emit standalone bracketed tool requests as text, such as
225
- `[tool_name]` followed by JSON and `[END_TOOL_REQUEST]`. FengMing promotes
226
- those into real tool calls only when the name exactly matches a registered
227
- tool for the turn; otherwise the block is treated as unsupported text and is
228
- hidden from user-visible replies.
229
- - If a model emits JSON, XML, or ReAct-style text that looks like a tool call
230
- but the provider did not emit a structured invocation, FengMing leaves it as
231
- text and logs a warning with the run id, provider/model, detected pattern, and
232
- tool name when available. Treat that as provider/model tool-call
233
- incompatibility, not a completed tool run.
234
- - If tools appear as assistant text instead of running, for example raw JSON,
235
- XML, ReAct syntax, or an empty `tool_calls` array in the provider response,
236
- first verify the server is using a tool-call-capable chat template/parser. For
237
- OpenAI-compatible Chat Completions backends whose parser works only when tool
238
- use is forced, set a per-model request override instead of relying on text
239
- parsing:
240
-
241
- ```json5
242
- {
243
- agents: {
244
- defaults: {
245
- models: {
246
- "local/my-local-model": {
247
- params: {
248
- extra_body: {
249
- tool_choice: "required",
250
- },
251
- },
252
- },
253
- },
254
- },
255
- },
256
- }
257
- ```
258
-
259
- Use this only for models/sessions where every normal turn should call a tool.
260
- It overrides FengMing's default proxy value of `tool_choice: "auto"`.
261
- Replace `local/my-local-model` with the exact provider/model ref shown by
262
- `fengming models list`.
263
-
264
- ```bash
265
- fengming config set agents.defaults.models '{"local/my-local-model":{"params":{"extra_body":{"tool_choice":"required"}}}}' --strict-json --merge
266
- ```
267
-
268
- - If a custom OpenAI-compatible model accepts OpenAI reasoning efforts beyond
269
- the built-in profile, declare them on the model compat block. Adding `"xhigh"`
270
- here makes `/think xhigh`, session pickers, Gateway validation, and `llm-task`
271
- validation expose the level for that configured provider/model ref:
272
-
273
- ```json5
274
- {
275
- models: {
276
- providers: {
277
- local: {
278
- baseUrl: "http://127.0.0.1:8000/v1",
279
- apiKey: "sk-local",
280
- api: "openai-responses",
281
- models: [
282
- {
283
- id: "gpt-5.4",
284
- name: "GPT 5.4 via local proxy",
285
- reasoning: true,
286
- input: ["text"],
287
- cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
288
- contextWindow: 196608,
289
- maxTokens: 8192,
290
- compat: {
291
- supportedReasoningEfforts: ["low", "medium", "high", "xhigh"],
292
- reasoningEffortMap: { xhigh: "xhigh" },
293
- },
294
- },
295
- ],
296
- },
297
- },
298
- },
299
- }
300
- ```
301
-
302
- ## Smaller or stricter backends
303
-
304
- If the model loads cleanly but full agent turns misbehave, work top-down — confirm transport first, then narrow the surface.
305
-
306
- 1. **Confirm the local model itself responds.** No tools, no agent context:
307
-
308
- ```bash
309
- fengming infer model run --local --model <provider/model> --prompt "Reply with exactly: pong" --json
310
- ```
311
-
312
- 2. **Confirm Gateway routing.** Sends only the supplied prompt — skips transcript, AGENTS bootstrap, context-engine assembly, tools, and bundled MCP servers, but still exercises Gateway routing, auth, and provider selection:
313
-
314
- ```bash
315
- fengming infer model run --gateway --model <provider/model> --prompt "Reply with exactly: pong" --json
316
- ```
317
-
318
- 3. **Try lean mode.** If both probes pass but real agent turns fail with malformed tool calls or oversized prompts, enable `agents.defaults.experimental.localModelLean: true`. It drops the three heaviest default tools (`browser`, `cron`, `message`) so the prompt shape is smaller and less brittle. See [Experimental Features → Local model lean mode](/concepts/experimental-features#local-model-lean-mode) for the full explanation, when to use it, and how to confirm it is on.
319
-
320
- 4. **Disable tools entirely as a last resort.** If lean mode is not enough, set `models.providers.<provider>.models[].compat.supportsTools: false` for that model entry. The agent will then operate without tool calls on that model.
321
-
322
- 5. **Past that, the bottleneck is upstream.** If the backend still fails only on larger FengMing runs after lean mode and `supportsTools: false`, the remaining issue is usually upstream model or server capacity — context window, GPU memory, kv-cache eviction, or a backend bug. It is not FengMing's transport layer at that point.
323
-
324
- ## Troubleshooting
325
-
326
- - Gateway can reach the proxy? `curl http://127.0.0.1:1234/v1/models`.
327
- - LM Studio model unloaded? Reload; cold start is a common "hanging" cause.
328
- - Local server says `terminated`, `ECONNRESET`, or closes the stream mid-turn?
329
- FengMing records a low-cardinality `model.call.error.failureKind` plus the
330
- FengMing process RSS/heap snapshot in diagnostics. For LM Studio/Ollama
331
- memory pressure, match that timestamp against the server log or macOS crash /
332
- jetsam log to confirm whether the model server was killed.
333
- - FengMing derives context-window preflight thresholds from the detected model window, or from the uncapped model window when `agents.defaults.contextTokens` lowers the effective window. It warns below 20% with an **8k** floor. Hard blocks use the 10% threshold with a **4k** floor, capped to the effective context window so oversized model metadata cannot reject an otherwise valid user cap. If you hit that preflight, raise the server/model context limit or choose a larger model.
334
- - Context errors? Lower `contextWindow` or raise your server limit.
335
- - OpenAI-compatible server returns `messages[].content ... expected a string`?
336
- Add `compat.requiresStringContent: true` on that model entry.
337
- - OpenAI-compatible server returns `validation.keys` or says message entries only allow `role` and `content`?
338
- Add `compat.strictMessageKeys: true` on that model entry.
339
- - Direct tiny `/v1/chat/completions` calls work, but `fengming infer model run --local`
340
- fails on Gemma or another local model? Check the provider URL, model ref, auth
341
- marker, and server logs first; local `model run` does not include agent tools.
342
- If local `model run` succeeds but larger agent turns fail, reduce the agent
343
- tool surface with `localModelLean` or `compat.supportsTools: false`.
344
- - Tool calls show up as raw JSON/XML/ReAct text, or the provider returns an
345
- empty `tool_calls` array? Do not add a proxy that blindly converts assistant
346
- text into tool execution. Fix the server chat template/parser first. If the
347
- model only works when tool use is forced, add the per-model
348
- `params.extra_body.tool_choice: "required"` override above and use that model
349
- entry only for sessions where a tool call is expected on every turn.
350
- - Safety: local models skip provider-side filters; keep agents narrow and compaction on to limit prompt injection blast radius.
351
-
352
- ## Related
353
-
354
- - [Configuration reference](/gateway/configuration-reference)
355
- - [Model failover](/concepts/model-failover)
@@ -1,149 +0,0 @@
1
- ---
2
- summary: "Logging surfaces, file logs, WS log styles, and console formatting"
3
- read_when:
4
- - Changing logging output or formats
5
- - Debugging CLI or gateway output
6
- title: "Gateway logging"
7
- ---
8
-
9
- # Logging
10
-
11
- For a user-facing overview (CLI + Control UI + config), see [/logging](/logging).
12
-
13
- FengMing has two log "surfaces":
14
-
15
- - **Console output** (what you see in the terminal / Debug UI).
16
- - **File logs** (JSON lines) written by the gateway logger.
17
-
18
- At startup, the Gateway logs the resolved default agent model together with the
19
- mode defaults that affect new sessions, for example:
20
-
21
- ```text
22
- agent model: openai/gpt-5.5 (thinking=medium, fast=on)
23
- ```
24
-
25
- `thinking` comes from the default agent, model params, or global agent default;
26
- when it is unset, the startup summary shows `medium`. `fast` comes from the
27
- default agent or model `fastMode` params.
28
-
29
- ## File-based logger
30
-
31
- - Default rolling log file is under `/tmp/fengming/` (one file per day): `fengming-YYYY-MM-DD.log`
32
- - Date uses the gateway host's local timezone.
33
- - Active log files rotate at `logging.maxFileBytes` (default: 100 MB), keeping
34
- up to five numbered archives and continuing to write a fresh active file.
35
- - The log file path and level can be configured via `~/.fengming/fengming.json`:
36
- - `logging.file`
37
- - `logging.level`
38
-
39
- The file format is one JSON object per line.
40
-
41
- Talk, realtime voice, and managed-room code paths use the shared file logger for
42
- bounded lifecycle records. These records are intended for operational debugging
43
- and OTLP log export; transcript text, audio payloads, turn ids, call ids, and
44
- provider item ids are not copied into the log record.
45
-
46
- The Control UI Logs tab tails this file via the gateway (`logs.tail`).
47
- CLI can do the same:
48
-
49
- ```bash
50
- fengming logs --follow
51
- ```
52
-
53
- **Verbose vs. log levels**
54
-
55
- - **File logs** are controlled exclusively by `logging.level`.
56
- - `--verbose` only affects **console verbosity** (and WS log style); it does **not**
57
- raise the file log level.
58
- - To capture verbose-only details in file logs, set `logging.level` to `debug` or
59
- `trace`.
60
- - Trace logging also includes diagnostic timing summaries for selected hot paths,
61
- such as plugin tool factory preparation. See
62
- [/tools/plugin#slow-plugin-tool-setup](/tools/plugin#slow-plugin-tool-setup).
63
-
64
- ## Console capture
65
-
66
- The CLI captures `console.log/info/warn/error/debug/trace` and writes them to file logs,
67
- while still printing to stdout/stderr.
68
-
69
- You can tune console verbosity independently via:
70
-
71
- - `logging.consoleLevel` (default `info`)
72
- - `logging.consoleStyle` (`pretty` | `compact` | `json`)
73
-
74
- ## Redaction
75
-
76
- FengMing can mask sensitive tokens before log or transcript output leaves the
77
- process. This logging redaction policy is applied at console, file-log, OTLP
78
- log-record, and session transcript text sinks, so matching secret values are
79
- masked before JSONL lines or messages are written to disk.
80
-
81
- - `logging.redactSensitive`: `off` | `tools` (default: `tools`)
82
- - `logging.redactPatterns`: array of regex strings (overrides defaults)
83
- - Use raw regex strings (auto `gi`), or `/pattern/flags` if you need custom flags.
84
- - Matches are masked by keeping the first 6 + last 4 chars (length >= 18), otherwise `***`.
85
- - Defaults cover common key assignments, CLI flags, JSON fields, bearer headers, PEM blocks, popular token prefixes, and payment credential field names such as card number, CVC/CVV, shared payment token, and payment credential.
86
-
87
- Some safety boundaries always redact regardless of `logging.redactSensitive`.
88
- That includes Control UI tool-call events, `sessions_history` tool output,
89
- diagnostics support exports, provider error observations, exec approval command
90
- display, and Gateway WebSocket protocol logs. These surfaces may still use
91
- `logging.redactPatterns` as additional patterns, but `redactSensitive: "off"`
92
- does not make them emit raw secrets.
93
-
94
- ## Gateway WebSocket logs
95
-
96
- The gateway prints WebSocket protocol logs in two modes:
97
-
98
- - **Normal mode (no `--verbose`)**: only "interesting" RPC results are printed:
99
- - errors (`ok=false`)
100
- - slow calls (default threshold: `>= 50ms`)
101
- - parse errors
102
- - **Verbose mode (`--verbose`)**: prints all WS request/response traffic.
103
-
104
- ### WS log style
105
-
106
- `fengming gateway` supports a per-gateway style switch:
107
-
108
- - `--ws-log auto` (default): normal mode is optimized; verbose mode uses compact output
109
- - `--ws-log compact`: compact output (paired request/response) when verbose
110
- - `--ws-log full`: full per-frame output when verbose
111
- - `--compact`: alias for `--ws-log compact`
112
-
113
- Examples:
114
-
115
- ```bash
116
- # optimized (only errors/slow)
117
- fengming gateway
118
-
119
- # show all WS traffic (paired)
120
- fengming gateway --verbose --ws-log compact
121
-
122
- # show all WS traffic (full meta)
123
- fengming gateway --verbose --ws-log full
124
- ```
125
-
126
- ## Console formatting (subsystem logging)
127
-
128
- The console formatter is **TTY-aware** and prints consistent, prefixed lines.
129
- Subsystem loggers keep output grouped and scannable.
130
-
131
- Behavior:
132
-
133
- - **Subsystem prefixes** on every line (e.g. `[gateway]`, `[canvas]`, `[tailscale]`)
134
- - **Subsystem colors** (stable per subsystem) plus level coloring
135
- - **Color when output is a TTY or the environment looks like a rich terminal** (`TERM`/`COLORTERM`/`TERM_PROGRAM`), respects `NO_COLOR`
136
- - **Shortened subsystem prefixes**: drops leading `gateway/` + `channels/`, keeps last 2 segments (e.g. `whatsapp/outbound`)
137
- - **Sub-loggers by subsystem** (auto prefix + structured field `{ subsystem }`)
138
- - **`logRaw()`** for QR/UX output (no prefix, no formatting)
139
- - **Console styles** (e.g. `pretty | compact | json`)
140
- - **Console log level** separate from file log level (file keeps full detail when `logging.level` is set to `debug`/`trace`)
141
- - **WhatsApp message bodies** are logged at `debug` (use `--verbose` to see them)
142
-
143
- This keeps existing file logs stable while making interactive output scannable.
144
-
145
- ## Related
146
-
147
- - [Logging](/logging)
148
- - [OpenTelemetry export](/gateway/opentelemetry)
149
- - [Diagnostics export](/gateway/diagnostics)
@@ -1,178 +0,0 @@
1
- ---
2
- summary: "Run multiple FengMing Gateways on one host (isolation, ports, and profiles)"
3
- read_when:
4
- - Running more than one Gateway on the same machine
5
- - You need isolated config/state/ports per Gateway
6
- title: "Multiple gateways"
7
- ---
8
-
9
- Most setups should use one Gateway because a single Gateway can handle multiple messaging connections and agents. If you need stronger isolation or redundancy (e.g., a rescue bot), run separate Gateways with isolated profiles/ports.
10
-
11
- ## Best recommended setup
12
-
13
- For most users, the simplest rescue-bot setup is:
14
-
15
- - keep the main bot on the default profile
16
- - run the rescue bot on `--profile rescue`
17
- - use a completely separate Telegram bot for the rescue account
18
- - keep the rescue bot on a different base port such as `19789`
19
-
20
- This keeps the rescue bot isolated from the main bot so it can debug or apply
21
- config changes if the primary bot is down. Leave at least 20 ports between
22
- base ports so the derived browser/canvas/CDP ports never collide.
23
-
24
- ## Rescue-Bot Quickstart
25
-
26
- Use this as the default path unless you have a strong reason to do something
27
- else:
28
-
29
- ```bash
30
- # Rescue bot (separate Telegram bot, separate profile, port 19789)
31
- fengming --profile rescue onboard
32
- fengming --profile rescue gateway install --port 19789
33
- ```
34
-
35
- If your main bot is already running, that is usually all you need.
36
-
37
- During `fengming --profile rescue onboard`:
38
-
39
- - use the separate Telegram bot token
40
- - keep the `rescue` profile
41
- - use a base port at least 20 higher than the main bot
42
- - accept the default rescue workspace unless you already manage one yourself
43
-
44
- If onboarding already installed the rescue service for you, the final
45
- `gateway install` is not needed.
46
-
47
- ## Why this works
48
-
49
- The rescue bot stays independent because it has its own:
50
-
51
- - profile/config
52
- - state directory
53
- - workspace
54
- - base port (plus derived ports)
55
- - Telegram bot token
56
-
57
- For most setups, use a completely separate Telegram bot for the rescue profile:
58
-
59
- - easy to keep operator-only
60
- - separate bot token and identity
61
- - independent from the main bot's channel/app install
62
- - simple DM-based recovery path when the main bot is broken
63
-
64
- ## What `--profile rescue onboard` Changes
65
-
66
- `fengming --profile rescue onboard` uses the normal onboarding flow, but it
67
- writes everything into a separate profile.
68
-
69
- In practice, that means the rescue bot gets its own:
70
-
71
- - config file
72
- - state directory
73
- - workspace (by default `~/.fengming/workspace-rescue`)
74
- - managed service name
75
-
76
- The prompts are otherwise the same as normal onboarding.
77
-
78
- ## General multi-gateway setup
79
-
80
- The rescue-bot layout above is the easiest default, but the same isolation
81
- pattern works for any pair or group of Gateways on one host.
82
-
83
- For a more general setup, give each extra Gateway its own named profile and its
84
- own base port:
85
-
86
- ```bash
87
- # main (default profile)
88
- fengming setup
89
- fengming gateway --port 18789
90
-
91
- # extra gateway
92
- fengming --profile ops setup
93
- fengming --profile ops gateway --port 19789
94
- ```
95
-
96
- If you want both Gateways to use named profiles, that also works:
97
-
98
- ```bash
99
- fengming --profile main setup
100
- fengming --profile main gateway --port 18789
101
-
102
- fengming --profile ops setup
103
- fengming --profile ops gateway --port 19789
104
- ```
105
-
106
- Services follow the same pattern:
107
-
108
- ```bash
109
- fengming gateway install
110
- fengming --profile ops gateway install --port 19789
111
- ```
112
-
113
- Use the rescue-bot quickstart when you want a fallback operator lane. Use the
114
- general profile pattern when you want multiple long-lived Gateways for
115
- different channels, tenants, workspaces, or operational roles.
116
-
117
- ## Isolation checklist
118
-
119
- Keep these unique per Gateway instance:
120
-
121
- - `FENGMING_CONFIG_PATH` — per-instance config file
122
- - `FENGMING_STATE_DIR` — per-instance sessions, creds, caches
123
- - `agents.defaults.workspace` — per-instance workspace root
124
- - `gateway.port` (or `--port`) — unique per instance
125
- - derived browser/canvas/CDP ports
126
-
127
- If these are shared, you will hit config races and port conflicts.
128
-
129
- ## Port mapping (derived)
130
-
131
- Base port = `gateway.port` (or `FENGMING_GATEWAY_PORT` / `--port`).
132
-
133
- - browser control service port = base + 2 (loopback only)
134
- - canvas host is served on the Gateway HTTP server (same port as `gateway.port`)
135
- - Browser profile CDP ports auto-allocate from `browser.controlPort + 9 .. + 108`
136
-
137
- If you override any of these in config or env, you must keep them unique per instance.
138
-
139
- ## Browser/CDP notes (common footgun)
140
-
141
- - Do **not** pin `browser.cdpUrl` to the same values on multiple instances.
142
- - Each instance needs its own browser control port and CDP range (derived from its gateway port).
143
- - If you need explicit CDP ports, set `browser.profiles.<name>.cdpPort` per instance.
144
- - Remote Chrome: use `browser.profiles.<name>.cdpUrl` (per profile, per instance).
145
-
146
- ## Manual env example
147
-
148
- ```bash
149
- FENGMING_CONFIG_PATH=~/.fengming/main.json \
150
- FENGMING_STATE_DIR=~/.fengming \
151
- fengming gateway --port 18789
152
-
153
- FENGMING_CONFIG_PATH=~/.fengming/rescue.json \
154
- FENGMING_STATE_DIR=~/.fengming-rescue \
155
- fengming gateway --port 19789
156
- ```
157
-
158
- ## Quick checks
159
-
160
- ```bash
161
- fengming gateway status --deep
162
- fengming --profile rescue gateway status --deep
163
- fengming --profile rescue gateway probe
164
- fengming status
165
- fengming --profile rescue status
166
- fengming --profile rescue browser status
167
- ```
168
-
169
- Interpretation:
170
-
171
- - `gateway status --deep` helps catch stale launchd/systemd/schtasks services from older installs.
172
- - `gateway probe` warning text such as `multiple reachable gateways detected` is expected only when you intentionally run more than one isolated gateway.
173
-
174
- ## Related
175
-
176
- - [Gateway runbook](/gateway)
177
- - [Gateway lock](/gateway/gateway-lock)
178
- - [Configuration](/gateway/configuration)