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.
- package/dist/build-info.json +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/cli-startup-metadata.json +8 -8
- package/dist/control-ui/assets/{activity-D-mnRThU.js → activity-wgT0-JR0.js} +2 -2
- package/dist/control-ui/assets/{agents-U_KSP5I_.js → agents-DG5PobrT.js} +2 -2
- package/dist/control-ui/assets/{channels-ohK9_G1O.js → channels-CX28oM42.js} +2 -2
- package/dist/control-ui/assets/{cron-6ZCzfU29.js → cron-B8ixwBqU.js} +2 -2
- package/dist/control-ui/assets/{debug-CSsDLg_s.js → debug-CnkYZUXy.js} +2 -2
- package/dist/control-ui/assets/{index-jUDczxhd.js → index-DQRZJKbO.js} +4 -4
- package/dist/control-ui/assets/{instances-782ZoDT4.js → instances-BE3mV1JC.js} +2 -2
- package/dist/control-ui/assets/{nodes-BMX16BKM.js → nodes-Cou4PWRX.js} +2 -2
- package/dist/control-ui/assets/{sessions-jLGSApYa.js → sessions-DpAaBT21.js} +2 -2
- package/dist/control-ui/assets/{skills-DweBwUhs.js → skills-DjA_j_20.js} +2 -2
- package/dist/control-ui/assets/{workboard-BsU-FXIo.js → workboard-BFnvbS0k.js} +2 -2
- package/dist/control-ui/index.html +1 -1
- package/dist/control-ui/sw.js +1 -1
- package/dist/gateway/protocol/index.d.ts +1 -1
- package/dist/{index-AZzJCgph.d.ts → index-DuDY3bCZ.d.ts} +2 -2
- package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
- package/dist/plugin-sdk/agent-config-primitives.d.ts +1 -1
- package/dist/plugin-sdk/{bundled-channel-config-schema-Dfn3b8sF.d.ts → bundled-channel-config-schema-BPFNnbwu.d.ts} +23 -23
- package/dist/plugin-sdk/bundled-channel-config-schema.d.ts +3 -3
- package/dist/plugin-sdk/channel-config-primitives.d.ts +2 -2
- package/dist/plugin-sdk/channel-config-schema-legacy.d.ts +3 -3
- package/dist/plugin-sdk/channel-config-schema.d.ts +2 -2
- package/dist/plugin-sdk/channel-core.d.ts +1 -1
- package/dist/plugin-sdk/channel-plugin-common.d.ts +1 -1
- package/dist/plugin-sdk/compat.d.ts +2 -2
- package/dist/plugin-sdk/{config-schema-DUddICQM.d.ts → config-schema-D7cABQ6o.d.ts} +1 -1
- package/dist/plugin-sdk/config-schema.d.ts +2 -2
- package/dist/plugin-sdk/core.d.ts +1 -1
- package/dist/plugin-sdk/discord.d.ts +2 -2
- package/dist/plugin-sdk/tts-runtime.d.ts +1 -1
- package/dist/plugin-sdk/{zod-schema.core-B4_b2R5K.d.ts → zod-schema.core-CwBNqcXp.d.ts} +1 -1
- package/package.json +4 -409
- package/CHANGELOG.md +0 -42
- package/THIRD_PARTY_NOTICES.md +0 -37
- package/docs/.i18n/README.md +0 -81
- package/docs/.i18n/ar-navigation.json +0 -18
- package/docs/.i18n/de-navigation.json +0 -18
- package/docs/.i18n/es-navigation.json +0 -18
- package/docs/.i18n/fr-navigation.json +0 -18
- package/docs/.i18n/glossary.ar.json +0 -78
- package/docs/.i18n/glossary.de.json +0 -78
- package/docs/.i18n/glossary.es.json +0 -78
- package/docs/.i18n/glossary.fa.json +0 -78
- package/docs/.i18n/glossary.fr.json +0 -78
- package/docs/.i18n/glossary.id.json +0 -78
- package/docs/.i18n/glossary.it.json +0 -78
- package/docs/.i18n/glossary.ja-JP.json +0 -98
- package/docs/.i18n/glossary.ko.json +0 -78
- package/docs/.i18n/glossary.nl.json +0 -78
- package/docs/.i18n/glossary.pl.json +0 -78
- package/docs/.i18n/glossary.pt-BR.json +0 -78
- package/docs/.i18n/glossary.th.json +0 -78
- package/docs/.i18n/glossary.tr.json +0 -78
- package/docs/.i18n/glossary.uk.json +0 -78
- package/docs/.i18n/glossary.vi.json +0 -78
- package/docs/.i18n/glossary.zh-CN.json +0 -1122
- package/docs/.i18n/glossary.zh-TW.json +0 -78
- package/docs/.i18n/id-navigation.json +0 -18
- package/docs/.i18n/it-navigation.json +0 -18
- package/docs/.i18n/ja-navigation.json +0 -18
- package/docs/.i18n/ko-navigation.json +0 -18
- package/docs/.i18n/pl-navigation.json +0 -18
- package/docs/.i18n/pt-BR-navigation.json +0 -18
- package/docs/.i18n/tr-navigation.json +0 -18
- package/docs/.i18n/translation-workflow.md +0 -111
- package/docs/.i18n/zh-Hans-navigation.json +0 -552
- package/docs/AGENTS.md +0 -36
- package/docs/CLAUDE.md +0 -1
- package/docs/agent-runtime-architecture.md +0 -48
- package/docs/announcements/bluebubbles-imessage.md +0 -79
- package/docs/auth-credential-semantics.md +0 -124
- package/docs/automation/auth-monitoring.md +0 -11
- package/docs/automation/clawflow.md +0 -12
- package/docs/automation/cron-jobs.md +0 -534
- package/docs/automation/cron-vs-heartbeat.md +0 -11
- package/docs/automation/gmail-pubsub.md +0 -11
- package/docs/automation/hooks.md +0 -387
- package/docs/automation/index.md +0 -135
- package/docs/automation/poll.md +0 -12
- package/docs/automation/standing-orders.md +0 -250
- package/docs/automation/taskflow.md +0 -155
- package/docs/automation/tasks.md +0 -374
- package/docs/automation/troubleshooting.md +0 -12
- package/docs/automation/webhook.md +0 -12
- package/docs/brave-search.md +0 -11
- package/docs/channels/access-groups.md +0 -201
- package/docs/channels/ambient-room-events.md +0 -214
- package/docs/channels/bot-loop-protection.md +0 -131
- package/docs/channels/broadcast-groups.md +0 -472
- package/docs/channels/channel-routing.md +0 -162
- package/docs/channels/clickclack.md +0 -138
- package/docs/channels/discord.md +0 -1758
- package/docs/channels/feishu.md +0 -650
- package/docs/channels/googlechat.md +0 -284
- package/docs/channels/group-messages.md +0 -95
- package/docs/channels/groups.md +0 -524
- package/docs/channels/imessage-from-bluebubbles.md +0 -259
- package/docs/channels/imessage.md +0 -839
- package/docs/channels/index.md +0 -64
- package/docs/channels/irc.md +0 -253
- package/docs/channels/line.md +0 -243
- package/docs/channels/location.md +0 -71
- package/docs/channels/matrix-migration.md +0 -370
- package/docs/channels/matrix-presentation.md +0 -77
- package/docs/channels/matrix-push-rules.md +0 -150
- package/docs/channels/matrix.md +0 -921
- package/docs/channels/mattermost.md +0 -542
- package/docs/channels/msteams.md +0 -1096
- package/docs/channels/nextcloud-talk.md +0 -176
- package/docs/channels/nostr.md +0 -253
- package/docs/channels/pairing.md +0 -214
- package/docs/channels/qqbot.md +0 -314
- package/docs/channels/signal.md +0 -417
- package/docs/channels/slack.md +0 -1623
- package/docs/channels/synology-chat.md +0 -187
- package/docs/channels/telegram.md +0 -1124
- package/docs/channels/tlon.md +0 -296
- package/docs/channels/troubleshooting.md +0 -162
- package/docs/channels/twitch.md +0 -431
- package/docs/channels/wechat.md +0 -171
- package/docs/channels/whatsapp.md +0 -796
- package/docs/channels/yuanbao.md +0 -416
- package/docs/channels/zalo.md +0 -253
- package/docs/channels/zalouser.md +0 -217
- package/docs/ci.md +0 -657
- package/docs/clawhub/publishing.md +0 -96
- package/docs/cli/acp.md +0 -370
- package/docs/cli/agent.md +0 -109
- package/docs/cli/agents.md +0 -253
- package/docs/cli/approvals.md +0 -190
- package/docs/cli/backup.md +0 -98
- package/docs/cli/browser.md +0 -307
- package/docs/cli/channels.md +0 -154
- package/docs/cli/clawbot.md +0 -25
- package/docs/cli/commitments.md +0 -90
- package/docs/cli/completion.md +0 -39
- package/docs/cli/config.md +0 -504
- package/docs/cli/configure.md +0 -77
- package/docs/cli/crestodian.md +0 -337
- package/docs/cli/cron.md +0 -304
- package/docs/cli/daemon.md +0 -67
- package/docs/cli/dashboard.md +0 -33
- package/docs/cli/devices.md +0 -240
- package/docs/cli/directory.md +0 -68
- package/docs/cli/dns.md +0 -53
- package/docs/cli/docs.md +0 -63
- package/docs/cli/doctor.md +0 -241
- package/docs/cli/flows.md +0 -52
- package/docs/cli/gateway.md +0 -572
- package/docs/cli/health.md +0 -43
- package/docs/cli/hooks.md +0 -345
- package/docs/cli/index.md +0 -400
- package/docs/cli/infer.md +0 -364
- package/docs/cli/logs.md +0 -68
- package/docs/cli/mcp.md +0 -529
- package/docs/cli/memory.md +0 -183
- package/docs/cli/message.md +0 -317
- package/docs/cli/migrate.md +0 -334
- package/docs/cli/models.md +0 -239
- package/docs/cli/node.md +0 -177
- package/docs/cli/nodes.md +0 -76
- package/docs/cli/onboard.md +0 -250
- package/docs/cli/pairing.md +0 -77
- package/docs/cli/path.md +0 -511
- package/docs/cli/plugins.md +0 -459
- package/docs/cli/policy.md +0 -886
- package/docs/cli/proxy.md +0 -89
- package/docs/cli/qr.md +0 -56
- package/docs/cli/reset.md +0 -39
- package/docs/cli/sandbox.md +0 -208
- package/docs/cli/secrets.md +0 -202
- package/docs/cli/security.md +0 -136
- package/docs/cli/sessions.md +0 -164
- package/docs/cli/setup.md +0 -59
- package/docs/cli/skills.md +0 -122
- package/docs/cli/status.md +0 -45
- package/docs/cli/system.md +0 -89
- package/docs/cli/tasks.md +0 -111
- package/docs/cli/transcripts.md +0 -151
- package/docs/cli/tui.md +0 -91
- package/docs/cli/uninstall.md +0 -44
- package/docs/cli/update.md +0 -243
- package/docs/cli/voicecall.md +0 -204
- package/docs/cli/webhooks.md +0 -117
- package/docs/cli/wiki.md +0 -256
- package/docs/concepts/active-memory.md +0 -856
- package/docs/concepts/agent-loop.md +0 -185
- package/docs/concepts/agent-runtimes.md +0 -276
- package/docs/concepts/agent-workspace.md +0 -230
- package/docs/concepts/agent.md +0 -140
- package/docs/concepts/architecture.md +0 -154
- package/docs/concepts/channel-docking.md +0 -145
- package/docs/concepts/commitments.md +0 -150
- package/docs/concepts/compaction.md +0 -203
- package/docs/concepts/context-engine.md +0 -347
- package/docs/concepts/context.md +0 -199
- package/docs/concepts/delegate-architecture.md +0 -319
- package/docs/concepts/dreaming.md +0 -264
- package/docs/concepts/experimental-features.md +0 -109
- package/docs/concepts/features.md +0 -91
- package/docs/concepts/fengming-sdk.md +0 -323
- package/docs/concepts/mantis-slack-desktop-runbook.md +0 -231
- package/docs/concepts/mantis.md +0 -744
- package/docs/concepts/markdown-formatting.md +0 -139
- package/docs/concepts/memory-builtin.md +0 -148
- package/docs/concepts/memory-honcho.md +0 -144
- package/docs/concepts/memory-qmd.md +0 -271
- package/docs/concepts/memory-search.md +0 -167
- package/docs/concepts/memory.md +0 -299
- package/docs/concepts/message-lifecycle-refactor.md +0 -1126
- package/docs/concepts/messages.md +0 -214
- package/docs/concepts/model-failover.md +0 -384
- package/docs/concepts/model-providers.md +0 -719
- package/docs/concepts/models.md +0 -371
- package/docs/concepts/multi-agent.md +0 -625
- package/docs/concepts/oauth.md +0 -198
- package/docs/concepts/parallel-specialist-lanes.md +0 -127
- package/docs/concepts/personal-agent-benchmark-pack.md +0 -74
- package/docs/concepts/presence.md +0 -117
- package/docs/concepts/progress-drafts.md +0 -406
- package/docs/concepts/qa-e2e-automation.md +0 -947
- package/docs/concepts/qa-matrix.md +0 -139
- package/docs/concepts/queue-steering.md +0 -90
- package/docs/concepts/queue.md +0 -136
- package/docs/concepts/retry.md +0 -86
- package/docs/concepts/session-pruning.md +0 -104
- package/docs/concepts/session-tool.md +0 -188
- package/docs/concepts/session.md +0 -164
- package/docs/concepts/soul.md +0 -116
- package/docs/concepts/streaming.md +0 -257
- package/docs/concepts/system-prompt.md +0 -328
- package/docs/concepts/timezone.md +0 -47
- package/docs/concepts/typebox.md +0 -309
- package/docs/concepts/typing-indicators.md +0 -88
- package/docs/concepts/usage-tracking.md +0 -66
- package/docs/date-time.md +0 -126
- package/docs/debug/node-issue.md +0 -90
- package/docs/diagnostics/flags.md +0 -182
- package/docs/docs.json +0 -1862
- package/docs/fengming-agent-runtime.md +0 -82
- package/docs/gateway/authentication.md +0 -256
- package/docs/gateway/background-process.md +0 -147
- package/docs/gateway/bonjour.md +0 -303
- package/docs/gateway/bridge-protocol.md +0 -97
- package/docs/gateway/cli-backends.md +0 -439
- package/docs/gateway/config-agents.md +0 -1525
- package/docs/gateway/config-channels.md +0 -945
- package/docs/gateway/config-tools.md +0 -774
- package/docs/gateway/configuration-examples.md +0 -704
- package/docs/gateway/configuration-reference.md +0 -1391
- package/docs/gateway/configuration.md +0 -739
- package/docs/gateway/diagnostics.md +0 -213
- package/docs/gateway/discovery.md +0 -154
- package/docs/gateway/doctor.md +0 -575
- package/docs/gateway/gateway-lock.md +0 -37
- package/docs/gateway/health.md +0 -73
- package/docs/gateway/heartbeat.md +0 -498
- package/docs/gateway/index.md +0 -383
- package/docs/gateway/local-model-services.md +0 -205
- package/docs/gateway/local-models.md +0 -355
- package/docs/gateway/logging.md +0 -149
- package/docs/gateway/multiple-gateways.md +0 -178
- package/docs/gateway/network-model.md +0 -15
- package/docs/gateway/openai-http-api.md +0 -378
- package/docs/gateway/openresponses-http-api.md +0 -347
- package/docs/gateway/openshell.md +0 -316
- package/docs/gateway/opentelemetry.md +0 -433
- package/docs/gateway/operator-scopes.md +0 -119
- package/docs/gateway/pairing.md +0 -207
- package/docs/gateway/prometheus.md +0 -249
- package/docs/gateway/protocol.md +0 -826
- package/docs/gateway/remote-gateway-readme.md +0 -169
- package/docs/gateway/remote.md +0 -280
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -148
- package/docs/gateway/sandboxing.md +0 -546
- package/docs/gateway/secrets-plan-contract.md +0 -159
- package/docs/gateway/secrets.md +0 -805
- package/docs/gateway/security/audit-checks.md +0 -127
- package/docs/gateway/security/exposure-runbook.md +0 -212
- package/docs/gateway/security/index.md +0 -1343
- package/docs/gateway/security/secure-file-operations.md +0 -76
- package/docs/gateway/security/shrinkwrap.md +0 -111
- package/docs/gateway/tailscale.md +0 -156
- package/docs/gateway/tools-invoke-http-api.md +0 -169
- package/docs/gateway/troubleshooting.md +0 -877
- package/docs/gateway/trusted-proxy-auth.md +0 -483
- package/docs/help/debugging.md +0 -341
- package/docs/help/environment.md +0 -233
- package/docs/help/faq-first-run.md +0 -870
- package/docs/help/faq-models.md +0 -556
- package/docs/help/faq.md +0 -2041
- package/docs/help/index.md +0 -39
- package/docs/help/scripts.md +0 -56
- package/docs/help/testing-live.md +0 -587
- package/docs/help/testing-updates-plugins.md +0 -299
- package/docs/help/testing.md +0 -977
- package/docs/help/troubleshooting.md +0 -449
- package/docs/index.md +0 -196
- package/docs/install/ansible.md +0 -233
- package/docs/install/azure.md +0 -315
- package/docs/install/bun.md +0 -59
- package/docs/install/clawdock.md +0 -112
- package/docs/install/development-channels.md +0 -148
- package/docs/install/digitalocean.md +0 -174
- package/docs/install/docker-vm-runtime.md +0 -154
- package/docs/install/docker.md +0 -564
- package/docs/install/exe-dev.md +0 -201
- package/docs/install/fly.md +0 -524
- package/docs/install/gcp.md +0 -418
- package/docs/install/hetzner.md +0 -285
- package/docs/install/hostinger.md +0 -98
- package/docs/install/index.md +0 -232
- package/docs/install/installer.md +0 -447
- package/docs/install/kubernetes.md +0 -196
- package/docs/install/macos-vm.md +0 -281
- package/docs/install/migrating-claude.md +0 -165
- package/docs/install/migrating-hermes.md +0 -178
- package/docs/install/migrating.md +0 -137
- package/docs/install/nix.md +0 -112
- package/docs/install/node.md +0 -142
- package/docs/install/northflank.mdx +0 -44
- package/docs/install/oracle.md +0 -218
- package/docs/install/podman.md +0 -216
- package/docs/install/railway.mdx +0 -92
- package/docs/install/raspberry-pi.md +0 -234
- package/docs/install/render.mdx +0 -167
- package/docs/install/uninstall.md +0 -131
- package/docs/install/updating.md +0 -284
- package/docs/install/upstash.md +0 -96
- package/docs/logging.md +0 -320
- package/docs/nav-tabs-underline.js +0 -100
- package/docs/network.md +0 -72
- package/docs/nodes/audio.md +0 -216
- package/docs/nodes/camera.md +0 -166
- package/docs/nodes/images.md +0 -77
- package/docs/nodes/index.md +0 -439
- package/docs/nodes/location-command.md +0 -102
- package/docs/nodes/media-understanding.md +0 -495
- package/docs/nodes/talk.md +0 -160
- package/docs/nodes/troubleshooting.md +0 -123
- package/docs/nodes/voicewake.md +0 -93
- package/docs/perplexity.md +0 -11
- package/docs/plan/codex-context-engine-harness.md +0 -624
- package/docs/plan/ui-channels.md +0 -284
- package/docs/platforms/digitalocean.md +0 -12
- package/docs/platforms/easyrunner.md +0 -109
- package/docs/platforms/index.md +0 -51
- package/docs/platforms/linux.md +0 -141
- package/docs/platforms/mac/bundled-gateway.md +0 -79
- package/docs/platforms/mac/canvas.md +0 -128
- package/docs/platforms/mac/child-process.md +0 -72
- package/docs/platforms/mac/dev-setup.md +0 -112
- package/docs/platforms/mac/health.md +0 -39
- package/docs/platforms/mac/icon.md +0 -36
- package/docs/platforms/mac/logging.md +0 -62
- package/docs/platforms/mac/menu-bar.md +0 -93
- package/docs/platforms/mac/peekaboo.md +0 -96
- package/docs/platforms/mac/permissions.md +0 -73
- package/docs/platforms/mac/remote.md +0 -123
- package/docs/platforms/mac/signing.md +0 -52
- package/docs/platforms/mac/skills.md +0 -43
- package/docs/platforms/mac/voice-overlay.md +0 -66
- package/docs/platforms/mac/voicewake.md +0 -73
- package/docs/platforms/mac/webchat.md +0 -54
- package/docs/platforms/mac/xpc.md +0 -66
- package/docs/platforms/oracle.md +0 -12
- package/docs/platforms/raspberry-pi.md +0 -13
- package/docs/platforms/windows.md +0 -286
- package/docs/plugins/adding-capabilities.md +0 -146
- package/docs/plugins/admin-http-rpc.md +0 -216
- package/docs/plugins/agent-tools.md +0 -13
- package/docs/plugins/architecture-internals.md +0 -1196
- package/docs/plugins/architecture.md +0 -483
- package/docs/plugins/building-extensions.md +0 -13
- package/docs/plugins/building-plugins.md +0 -335
- package/docs/plugins/bundles.md +0 -310
- package/docs/plugins/cli-backend-plugins.md +0 -310
- package/docs/plugins/codex-computer-use.md +0 -297
- package/docs/plugins/codex-harness-reference.md +0 -470
- package/docs/plugins/codex-harness-runtime.md +0 -268
- package/docs/plugins/codex-harness.md +0 -780
- package/docs/plugins/codex-native-plugins.md +0 -276
- package/docs/plugins/community.md +0 -77
- package/docs/plugins/compatibility.md +0 -167
- package/docs/plugins/copilot.md +0 -356
- package/docs/plugins/dependency-resolution.md +0 -176
- package/docs/plugins/google-meet.md +0 -1737
- package/docs/plugins/hooks.md +0 -484
- package/docs/plugins/install-overrides.md +0 -80
- package/docs/plugins/manage-plugins.md +0 -210
- package/docs/plugins/manifest.md +0 -1457
- package/docs/plugins/memory-lancedb.md +0 -385
- package/docs/plugins/memory-wiki.md +0 -529
- package/docs/plugins/message-presentation.md +0 -473
- package/docs/plugins/oc-path.md +0 -166
- package/docs/plugins/plugin-inventory.md +0 -189
- package/docs/plugins/plugin-permission-requests.md +0 -193
- package/docs/plugins/reference/acpx.md +0 -23
- package/docs/plugins/reference/admin-http-rpc.md +0 -23
- package/docs/plugins/reference/alibaba.md +0 -23
- package/docs/plugins/reference/amazon-bedrock-mantle.md +0 -23
- package/docs/plugins/reference/amazon-bedrock.md +0 -23
- package/docs/plugins/reference/anthropic-vertex.md +0 -19
- package/docs/plugins/reference/anthropic.md +0 -23
- package/docs/plugins/reference/arcee.md +0 -23
- package/docs/plugins/reference/azure-speech.md +0 -23
- package/docs/plugins/reference/bonjour.md +0 -19
- package/docs/plugins/reference/brave.md +0 -23
- package/docs/plugins/reference/browser.md +0 -23
- package/docs/plugins/reference/byteplus.md +0 -19
- package/docs/plugins/reference/canvas.md +0 -19
- package/docs/plugins/reference/cerebras.md +0 -23
- package/docs/plugins/reference/chutes.md +0 -23
- package/docs/plugins/reference/clickclack.md +0 -23
- package/docs/plugins/reference/cloudflare-ai-gateway.md +0 -23
- package/docs/plugins/reference/codex-supervisor.md +0 -27
- package/docs/plugins/reference/codex.md +0 -23
- package/docs/plugins/reference/comfy.md +0 -23
- package/docs/plugins/reference/copilot-proxy.md +0 -19
- package/docs/plugins/reference/copilot.md +0 -23
- package/docs/plugins/reference/deepgram.md +0 -23
- package/docs/plugins/reference/deepinfra.md +0 -23
- package/docs/plugins/reference/deepseek.md +0 -23
- package/docs/plugins/reference/diagnostics-otel.md +0 -19
- package/docs/plugins/reference/diagnostics-prometheus.md +0 -19
- package/docs/plugins/reference/diffs-language-pack.md +0 -19
- package/docs/plugins/reference/diffs.md +0 -19
- package/docs/plugins/reference/discord.md +0 -23
- package/docs/plugins/reference/document-extract.md +0 -23
- package/docs/plugins/reference/duckduckgo.md +0 -23
- package/docs/plugins/reference/elevenlabs.md +0 -23
- package/docs/plugins/reference/exa.md +0 -23
- package/docs/plugins/reference/fal.md +0 -23
- package/docs/plugins/reference/feishu.md +0 -23
- package/docs/plugins/reference/file-transfer.md +0 -19
- package/docs/plugins/reference/firecrawl.md +0 -23
- package/docs/plugins/reference/fireworks.md +0 -23
- package/docs/plugins/reference/github-copilot.md +0 -23
- package/docs/plugins/reference/gmi.md +0 -23
- package/docs/plugins/reference/google-meet.md +0 -23
- package/docs/plugins/reference/google.md +0 -23
- package/docs/plugins/reference/googlechat.md +0 -23
- package/docs/plugins/reference/gradium.md +0 -23
- package/docs/plugins/reference/groq.md +0 -23
- package/docs/plugins/reference/huggingface.md +0 -23
- package/docs/plugins/reference/imessage.md +0 -23
- package/docs/plugins/reference/inworld.md +0 -23
- package/docs/plugins/reference/irc.md +0 -23
- package/docs/plugins/reference/kilocode.md +0 -23
- package/docs/plugins/reference/kimi.md +0 -23
- package/docs/plugins/reference/line.md +0 -23
- package/docs/plugins/reference/litellm.md +0 -23
- package/docs/plugins/reference/llm-task.md +0 -19
- package/docs/plugins/reference/lmstudio.md +0 -23
- package/docs/plugins/reference/lobster.md +0 -19
- package/docs/plugins/reference/matrix.md +0 -23
- package/docs/plugins/reference/mattermost.md +0 -23
- package/docs/plugins/reference/memory-core.md +0 -19
- package/docs/plugins/reference/memory-lancedb.md +0 -23
- package/docs/plugins/reference/memory-wiki.md +0 -23
- package/docs/plugins/reference/microsoft-foundry.md +0 -19
- package/docs/plugins/reference/microsoft.md +0 -19
- package/docs/plugins/reference/migrate-claude.md +0 -19
- package/docs/plugins/reference/migrate-hermes.md +0 -19
- package/docs/plugins/reference/minimax.md +0 -23
- package/docs/plugins/reference/mistral.md +0 -23
- package/docs/plugins/reference/moonshot.md +0 -23
- package/docs/plugins/reference/msteams.md +0 -23
- package/docs/plugins/reference/nextcloud-talk.md +0 -23
- package/docs/plugins/reference/nostr.md +0 -23
- package/docs/plugins/reference/novita.md +0 -23
- package/docs/plugins/reference/nvidia.md +0 -23
- package/docs/plugins/reference/oc-path.md +0 -23
- package/docs/plugins/reference/ollama.md +0 -23
- package/docs/plugins/reference/open-prose.md +0 -19
- package/docs/plugins/reference/openai.md +0 -23
- package/docs/plugins/reference/opencode-go.md +0 -23
- package/docs/plugins/reference/opencode.md +0 -23
- package/docs/plugins/reference/openrouter.md +0 -23
- package/docs/plugins/reference/openshell.md +0 -19
- package/docs/plugins/reference/perplexity.md +0 -23
- package/docs/plugins/reference/pixverse.md +0 -23
- package/docs/plugins/reference/policy.md +0 -72
- package/docs/plugins/reference/qa-channel.md +0 -23
- package/docs/plugins/reference/qa-lab.md +0 -19
- package/docs/plugins/reference/qa-matrix.md +0 -19
- package/docs/plugins/reference/qianfan.md +0 -23
- package/docs/plugins/reference/qqbot.md +0 -23
- package/docs/plugins/reference/qwen.md +0 -23
- package/docs/plugins/reference/runway.md +0 -23
- package/docs/plugins/reference/searxng.md +0 -19
- package/docs/plugins/reference/senseaudio.md +0 -23
- package/docs/plugins/reference/sglang.md +0 -23
- package/docs/plugins/reference/signal.md +0 -23
- package/docs/plugins/reference/skill-workshop.md +0 -23
- package/docs/plugins/reference/slack.md +0 -23
- package/docs/plugins/reference/stepfun.md +0 -23
- package/docs/plugins/reference/synology-chat.md +0 -23
- package/docs/plugins/reference/synthetic.md +0 -23
- package/docs/plugins/reference/tavily.md +0 -23
- package/docs/plugins/reference/telegram.md +0 -23
- package/docs/plugins/reference/tencent.md +0 -23
- package/docs/plugins/reference/tlon.md +0 -23
- package/docs/plugins/reference/together.md +0 -23
- package/docs/plugins/reference/tokenjuice.md +0 -23
- package/docs/plugins/reference/tts-local-cli.md +0 -19
- package/docs/plugins/reference/twitch.md +0 -23
- package/docs/plugins/reference/venice.md +0 -23
- package/docs/plugins/reference/vercel-ai-gateway.md +0 -23
- package/docs/plugins/reference/vllm.md +0 -23
- package/docs/plugins/reference/voice-call.md +0 -23
- package/docs/plugins/reference/volcengine.md +0 -23
- package/docs/plugins/reference/voyage.md +0 -19
- package/docs/plugins/reference/vydra.md +0 -23
- package/docs/plugins/reference/web-readability.md +0 -19
- package/docs/plugins/reference/webhooks.md +0 -23
- package/docs/plugins/reference/whatsapp.md +0 -23
- package/docs/plugins/reference/workboard.md +0 -23
- package/docs/plugins/reference/xai.md +0 -23
- package/docs/plugins/reference/xiaomi.md +0 -23
- package/docs/plugins/reference/zai.md +0 -23
- package/docs/plugins/reference/zalo.md +0 -23
- package/docs/plugins/reference/zalouser.md +0 -24
- package/docs/plugins/reference.md +0 -145
- package/docs/plugins/sdk-agent-harness.md +0 -338
- package/docs/plugins/sdk-channel-inbound.md +0 -70
- package/docs/plugins/sdk-channel-ingress.md +0 -137
- package/docs/plugins/sdk-channel-message.md +0 -18
- package/docs/plugins/sdk-channel-outbound.md +0 -113
- package/docs/plugins/sdk-channel-plugins.md +0 -765
- package/docs/plugins/sdk-channel-turn.md +0 -9
- package/docs/plugins/sdk-entrypoints.md +0 -344
- package/docs/plugins/sdk-migration.md +0 -979
- package/docs/plugins/sdk-overview.md +0 -511
- package/docs/plugins/sdk-provider-plugins.md +0 -846
- package/docs/plugins/sdk-runtime.md +0 -676
- package/docs/plugins/sdk-setup.md +0 -550
- package/docs/plugins/sdk-subpaths.md +0 -391
- package/docs/plugins/sdk-testing.md +0 -403
- package/docs/plugins/skill-workshop.md +0 -713
- package/docs/plugins/tool-plugins.md +0 -411
- package/docs/plugins/voice-call.md +0 -942
- package/docs/plugins/webhooks.md +0 -192
- package/docs/plugins/workboard.md +0 -252
- package/docs/plugins/zalouser.md +0 -86
- package/docs/prose.md +0 -137
- package/docs/providers/alibaba.md +0 -158
- package/docs/providers/anthropic.md +0 -381
- package/docs/providers/arcee.md +0 -144
- package/docs/providers/azure-speech.md +0 -119
- package/docs/providers/bedrock-mantle.md +0 -211
- package/docs/providers/bedrock.md +0 -414
- package/docs/providers/cerebras.md +0 -130
- package/docs/providers/chutes.md +0 -153
- package/docs/providers/claude-max-api-proxy.md +0 -191
- package/docs/providers/cloudflare-ai-gateway.md +0 -119
- package/docs/providers/comfy.md +0 -362
- package/docs/providers/deepgram.md +0 -184
- package/docs/providers/deepinfra.md +0 -92
- package/docs/providers/deepseek.md +0 -146
- package/docs/providers/ds4.md +0 -309
- package/docs/providers/elevenlabs.md +0 -130
- package/docs/providers/fal.md +0 -240
- package/docs/providers/fireworks.md +0 -144
- package/docs/providers/github-copilot.md +0 -257
- package/docs/providers/gmi.md +0 -92
- package/docs/providers/google.md +0 -472
- package/docs/providers/gradium.md +0 -123
- package/docs/providers/groq.md +0 -171
- package/docs/providers/huggingface.md +0 -235
- package/docs/providers/index.md +0 -105
- package/docs/providers/inferrs.md +0 -272
- package/docs/providers/inworld.md +0 -120
- package/docs/providers/kilocode.md +0 -135
- package/docs/providers/litellm.md +0 -234
- package/docs/providers/lmstudio.md +0 -224
- package/docs/providers/minimax.md +0 -505
- package/docs/providers/mistral.md +0 -235
- package/docs/providers/models.md +0 -64
- package/docs/providers/moonshot.md +0 -413
- package/docs/providers/novita.md +0 -92
- package/docs/providers/nvidia.md +0 -158
- package/docs/providers/ollama-cloud.md +0 -115
- package/docs/providers/ollama.md +0 -1225
- package/docs/providers/openai.md +0 -1093
- package/docs/providers/opencode-go.md +0 -123
- package/docs/providers/opencode.md +0 -149
- package/docs/providers/openrouter.md +0 -349
- package/docs/providers/perplexity-provider.md +0 -123
- package/docs/providers/pixverse.md +0 -165
- package/docs/providers/qianfan.md +0 -132
- package/docs/providers/qwen-oauth.md +0 -115
- package/docs/providers/qwen.md +0 -364
- package/docs/providers/runway.md +0 -103
- package/docs/providers/senseaudio.md +0 -68
- package/docs/providers/sglang.md +0 -161
- package/docs/providers/stepfun.md +0 -229
- package/docs/providers/synthetic.md +0 -154
- package/docs/providers/tencent.md +0 -130
- package/docs/providers/together.md +0 -140
- package/docs/providers/venice.md +0 -312
- package/docs/providers/vercel-ai-gateway.md +0 -128
- package/docs/providers/vllm.md +0 -407
- package/docs/providers/volcengine.md +0 -199
- package/docs/providers/vydra.md +0 -180
- package/docs/providers/xai.md +0 -571
- package/docs/providers/xiaomi.md +0 -262
- package/docs/providers/zai.md +0 -224
- package/docs/refactor/access.md +0 -9
- package/docs/refactor/acp.md +0 -298
- package/docs/refactor/canvas.md +0 -131
- package/docs/refactor/database-first.md +0 -2256
- package/docs/refactor/ingress-core.md +0 -341
- package/docs/reference/AGENTS.default.md +0 -131
- package/docs/reference/RELEASING.md +0 -799
- package/docs/reference/api-usage-costs.md +0 -208
- package/docs/reference/application-modernization-plan.md +0 -208
- package/docs/reference/code-mode.md +0 -773
- package/docs/reference/credits.md +0 -33
- package/docs/reference/device-models.md +0 -50
- package/docs/reference/fengming-sdk-api-design.md +0 -390
- package/docs/reference/full-release-validation.md +0 -202
- package/docs/reference/memory-config.md +0 -604
- package/docs/reference/prompt-caching.md +0 -358
- package/docs/reference/release-performance-sweep.md +0 -360
- package/docs/reference/rich-output-protocol.md +0 -101
- package/docs/reference/rpc.md +0 -43
- package/docs/reference/secret-placeholder-conventions.md +0 -33
- package/docs/reference/secretref-credential-surface.md +0 -159
- package/docs/reference/secretref-user-supplied-credentials-matrix.json +0 -663
- package/docs/reference/session-management-compaction.md +0 -474
- package/docs/reference/templates/AGENTS.dev.md +0 -90
- package/docs/reference/templates/AGENTS.md +0 -227
- package/docs/reference/templates/BOOT.md +0 -16
- package/docs/reference/templates/BOOTSTRAP.md +0 -66
- package/docs/reference/templates/CLAUDE.md +0 -1
- package/docs/reference/templates/HEARTBEAT.md +0 -24
- package/docs/reference/templates/IDENTITY.dev.md +0 -52
- package/docs/reference/templates/IDENTITY.md +0 -34
- package/docs/reference/templates/SOUL.dev.md +0 -82
- package/docs/reference/templates/SOUL.md +0 -49
- package/docs/reference/templates/TOOLS.dev.md +0 -29
- package/docs/reference/templates/TOOLS.md +0 -51
- package/docs/reference/templates/USER.dev.md +0 -23
- package/docs/reference/templates/USER.md +0 -28
- package/docs/reference/test.md +0 -247
- package/docs/reference/token-use.md +0 -246
- package/docs/reference/transcript-hygiene.md +0 -214
- package/docs/reference/wizard.md +0 -252
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -101
- package/docs/security/THREAT-MODEL-ATLAS.md +0 -611
- package/docs/security/formal-verification.md +0 -170
- package/docs/security/incident-response.md +0 -59
- package/docs/security/network-proxy.md +0 -268
- package/docs/snippets/plugin-publish/minimal-fengming.plugin.json +0 -12
- package/docs/snippets/plugin-publish/minimal-package.json +0 -16
- package/docs/specs/claw-supervisor.md +0 -247
- package/docs/start/bootstrapping.md +0 -49
- package/docs/start/docs-directory.md +0 -69
- package/docs/start/fengming.md +0 -252
- package/docs/start/getting-started.md +0 -152
- package/docs/start/hubs.md +0 -201
- package/docs/start/lore.md +0 -223
- package/docs/start/onboarding-overview.md +0 -72
- package/docs/start/onboarding.md +0 -98
- package/docs/start/quickstart.md +0 -25
- package/docs/start/setup.md +0 -178
- package/docs/start/showcase.md +0 -363
- package/docs/start/wizard-cli-automation.md +0 -232
- package/docs/start/wizard-cli-reference.md +0 -331
- package/docs/start/wizard.md +0 -141
- package/docs/style.css +0 -137
- package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +0 -316
- package/docs/tools/acp-agents-setup.md +0 -351
- package/docs/tools/acp-agents.md +0 -854
- package/docs/tools/agent-send.md +0 -130
- package/docs/tools/apply-patch.md +0 -64
- package/docs/tools/brave-search.md +0 -139
- package/docs/tools/browser-control.md +0 -391
- package/docs/tools/browser-linux-troubleshooting.md +0 -173
- package/docs/tools/browser-login.md +0 -77
- package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +0 -219
- package/docs/tools/browser.md +0 -810
- package/docs/tools/btw.md +0 -159
- package/docs/tools/capability-cookbook.md +0 -12
- package/docs/tools/clawhub.md +0 -5
- package/docs/tools/code-execution.md +0 -173
- package/docs/tools/creating-skills.md +0 -158
- package/docs/tools/diffs.md +0 -525
- package/docs/tools/duckduckgo-search.md +0 -109
- package/docs/tools/elevated.md +0 -128
- package/docs/tools/exa-search.md +0 -152
- package/docs/tools/exec-approvals-advanced.md +0 -444
- package/docs/tools/exec-approvals.md +0 -494
- package/docs/tools/exec.md +0 -285
- package/docs/tools/firecrawl.md +0 -155
- package/docs/tools/gemini-search.md +0 -114
- package/docs/tools/goal.md +0 -217
- package/docs/tools/grok-search.md +0 -129
- package/docs/tools/image-generation.md +0 -493
- package/docs/tools/index.md +0 -178
- package/docs/tools/kimi-search.md +0 -105
- package/docs/tools/llm-task.md +0 -137
- package/docs/tools/lobster.md +0 -365
- package/docs/tools/loop-detection.md +0 -154
- package/docs/tools/media-overview.md +0 -160
- package/docs/tools/minimax-search.md +0 -102
- package/docs/tools/multi-agent-sandbox-tools.md +0 -409
- package/docs/tools/music-generation.md +0 -372
- package/docs/tools/ollama-search.md +0 -153
- package/docs/tools/pdf.md +0 -213
- package/docs/tools/perplexity-search.md +0 -220
- package/docs/tools/plugin.md +0 -363
- package/docs/tools/reactions.md +0 -100
- package/docs/tools/searxng-search.md +0 -141
- package/docs/tools/skills-config.md +0 -195
- package/docs/tools/skills.md +0 -569
- package/docs/tools/slash-commands.md +0 -487
- package/docs/tools/steer.md +0 -77
- package/docs/tools/subagents.md +0 -651
- package/docs/tools/tavily.md +0 -162
- package/docs/tools/thinking.md +0 -142
- package/docs/tools/tokenjuice.md +0 -84
- package/docs/tools/tool-search.md +0 -269
- package/docs/tools/trajectory.md +0 -229
- package/docs/tools/tts.md +0 -1009
- package/docs/tools/video-generation.md +0 -555
- package/docs/tools/web-fetch.md +0 -210
- package/docs/tools/web.md +0 -461
- package/docs/tts.md +0 -11
- package/docs/vps.md +0 -139
- package/docs/web/control-ui.md +0 -512
- package/docs/web/dashboard.md +0 -107
- package/docs/web/index.md +0 -133
- package/docs/web/tui.md +0 -250
- package/docs/web/webchat.md +0 -102
- package/npm-shrinkwrap.json +0 -12861
- package/patches/.gitkeep +0 -0
- package/patches/@agentclientprotocol__claude-agent-acp@0.37.0.patch +0 -41
- package/pnpm-workspace.yaml +0 -120
- package/scripts/crabbox-wrapper.mjs +0 -2004
- package/scripts/lib/official-external-channel-catalog.json +0 -560
- package/scripts/lib/official-external-plugin-catalog.json +0 -264
- package/scripts/lib/official-external-provider-catalog.json +0 -158
- package/scripts/lib/package-dist-imports.mjs +0 -171
- package/scripts/npm-runner.mjs +0 -91
- package/scripts/postinstall-bundled-plugins.mjs +0 -978
- package/scripts/preinstall-package-manager-warning.mjs +0 -64
- package/scripts/prepare-git-hooks.mjs +0 -72
- package/scripts/windows-cmd-helpers.mjs +0 -22
- package/skills/batch/SKILL.md +0 -118
- package/skills/code-review/SKILL.md +0 -107
- package/skills/debug/SKILL.md +0 -83
- package/skills/loop/SKILL.md +0 -118
- package/skills/run/SKILL.md +0 -79
- package/skills/run-skill-generator/SKILL.md +0 -179
- package/skills/verify/SKILL.md +0 -103
- package/src/agents/templates/HEARTBEAT.md +0 -3
|
@@ -1,780 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Run FengMing embedded agent turns through the bundled Codex app-server harness"
|
|
3
|
-
title: "Codex harness"
|
|
4
|
-
read_when:
|
|
5
|
-
- You want to use the bundled Codex app-server harness
|
|
6
|
-
- You need Codex harness config examples
|
|
7
|
-
- You want Codex-only deployments to fail instead of falling back to FengMing
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
The bundled `codex` plugin lets FengMing run embedded OpenAI agent turns
|
|
11
|
-
through Codex app-server instead of the built-in FengMing harness.
|
|
12
|
-
|
|
13
|
-
Use the Codex harness when you want Codex to own the low-level agent session:
|
|
14
|
-
native thread resume, native tool continuation, native compaction, and
|
|
15
|
-
app-server execution. FengMing still owns chat channels, session files, model
|
|
16
|
-
selection, FengMing dynamic tools, approvals, media delivery, and the visible
|
|
17
|
-
transcript mirror.
|
|
18
|
-
|
|
19
|
-
The normal setup uses canonical OpenAI model refs such as `openai/gpt-5.5`.
|
|
20
|
-
Do not configure `openai-codex/gpt-*` model refs. Put OpenAI agent auth order
|
|
21
|
-
under `auth.order.openai`; older `openai-codex:*` profiles and
|
|
22
|
-
`auth.order.openai-codex` entries remain supported for existing installs.
|
|
23
|
-
|
|
24
|
-
When no FengMing sandbox is active, FengMing starts Codex app-server threads
|
|
25
|
-
with Codex native code mode enabled while leaving code-mode-only off by default.
|
|
26
|
-
That keeps Codex native workspace and code capabilities available while
|
|
27
|
-
FengMing dynamic tools continue through the app-server `item/tool/call` bridge.
|
|
28
|
-
Active FengMing sandboxing and restricted tool policies disable native code mode
|
|
29
|
-
entirely unless you opt into the experimental sandbox exec-server path.
|
|
30
|
-
|
|
31
|
-
This Codex-native feature is separate from
|
|
32
|
-
[FengMing code mode](/reference/code-mode), which is an opt-in QuickJS-WASI
|
|
33
|
-
runtime for generic FengMing runs with a different `exec` input shape.
|
|
34
|
-
|
|
35
|
-
For the broader model/provider/runtime split, start with
|
|
36
|
-
[Agent runtimes](/concepts/agent-runtimes). The short version is:
|
|
37
|
-
`openai/gpt-5.5` is the model ref, `codex` is the runtime, and Telegram,
|
|
38
|
-
Discord, Slack, or another channel remains the communication surface.
|
|
39
|
-
|
|
40
|
-
## Requirements
|
|
41
|
-
|
|
42
|
-
- FengMing with the bundled `codex` plugin available.
|
|
43
|
-
- If your config uses `plugins.allow`, include `codex`.
|
|
44
|
-
- Codex app-server `0.125.0` or newer. The bundled plugin manages a compatible
|
|
45
|
-
Codex app-server binary by default, so local `codex` commands on `PATH` do not
|
|
46
|
-
affect normal harness startup.
|
|
47
|
-
- Codex auth available through `fengming models auth login --provider openai`,
|
|
48
|
-
an app-server account in the agent's Codex home, or an explicit Codex API-key
|
|
49
|
-
auth profile.
|
|
50
|
-
|
|
51
|
-
For auth precedence, environment isolation, custom app-server commands, model
|
|
52
|
-
discovery, and all config fields, see
|
|
53
|
-
[Codex harness reference](/plugins/codex-harness-reference).
|
|
54
|
-
|
|
55
|
-
## Quickstart
|
|
56
|
-
|
|
57
|
-
Most users who want Codex in FengMing want this path: sign in with a
|
|
58
|
-
ChatGPT/Codex subscription, enable the bundled `codex` plugin, and use a
|
|
59
|
-
canonical `openai/gpt-*` model ref.
|
|
60
|
-
|
|
61
|
-
Sign in with Codex OAuth:
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
fengming models auth login --provider openai
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
Enable the bundled `codex` plugin and select an OpenAI agent model:
|
|
68
|
-
|
|
69
|
-
```json5
|
|
70
|
-
{
|
|
71
|
-
plugins: {
|
|
72
|
-
entries: {
|
|
73
|
-
codex: {
|
|
74
|
-
enabled: true,
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
agents: {
|
|
79
|
-
defaults: {
|
|
80
|
-
model: "openai/gpt-5.5",
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
If your config uses `plugins.allow`, add `codex` there too:
|
|
87
|
-
|
|
88
|
-
```json5
|
|
89
|
-
{
|
|
90
|
-
plugins: {
|
|
91
|
-
allow: ["codex"],
|
|
92
|
-
entries: {
|
|
93
|
-
codex: {
|
|
94
|
-
enabled: true,
|
|
95
|
-
},
|
|
96
|
-
},
|
|
97
|
-
},
|
|
98
|
-
}
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
Restart the gateway after changing plugin config. If an existing chat already
|
|
102
|
-
has a session, use `/new` or `/reset` before testing runtime changes so the next
|
|
103
|
-
turn resolves the harness from current config.
|
|
104
|
-
|
|
105
|
-
## Configuration
|
|
106
|
-
|
|
107
|
-
The quickstart config is the minimum viable Codex harness config. Set Codex
|
|
108
|
-
harness options in FengMing config, and use the CLI only for Codex auth:
|
|
109
|
-
|
|
110
|
-
| Need | Set | Where |
|
|
111
|
-
| -------------------------------------- | -------------------------------------------------------------------------------- | ---------------------------------- |
|
|
112
|
-
| Enable the harness | `plugins.entries.codex.enabled: true` | FengMing config |
|
|
113
|
-
| Keep an allowlisted plugin install | Include `codex` in `plugins.allow` | FengMing config |
|
|
114
|
-
| Route OpenAI agent turns through Codex | `agents.defaults.model` or `agents.list[].model` as `openai/gpt-*` | FengMing agent config |
|
|
115
|
-
| Sign in with ChatGPT/Codex OAuth | `fengming models auth login --provider openai` | CLI auth profile |
|
|
116
|
-
| Add API-key backup for Codex runs | `openai:*` API-key profile listed after subscription auth in `auth.order.openai` | CLI auth profile + FengMing config |
|
|
117
|
-
| Fail closed when Codex is unavailable | Provider or model `agentRuntime.id: "codex"` | FengMing model/provider config |
|
|
118
|
-
| Use direct OpenAI API traffic | Provider or model `agentRuntime.id: "fengming"` with normal OpenAI auth | FengMing model/provider config |
|
|
119
|
-
| Tune app-server behavior | `plugins.entries.codex.config.appServer.*` | Codex plugin config |
|
|
120
|
-
| Enable native Codex plugin apps | `plugins.entries.codex.config.codexPlugins.*` | Codex plugin config |
|
|
121
|
-
| Enable Codex Computer Use | `plugins.entries.codex.config.computerUse.*` | Codex plugin config |
|
|
122
|
-
|
|
123
|
-
Use `openai/gpt-*` model refs for Codex-backed OpenAI agent turns. Prefer
|
|
124
|
-
`auth.order.openai` for subscription-first/API-key-backup ordering. Existing
|
|
125
|
-
`openai-codex:*` auth profiles and `auth.order.openai-codex` remain valid, but
|
|
126
|
-
do not write new `openai-codex/gpt-*` model refs.
|
|
127
|
-
|
|
128
|
-
Do not set `compaction.model` or `compaction.provider` on Codex-backed agents.
|
|
129
|
-
Codex compacts through its native app-server thread state, so FengMing ignores
|
|
130
|
-
those local summarizer overrides at runtime and `fengming doctor --fix` removes
|
|
131
|
-
them when the agent uses Codex.
|
|
132
|
-
|
|
133
|
-
Lossless remains supported as a context engine for assembly, ingestion, and
|
|
134
|
-
maintenance around Codex turns. Configure it through
|
|
135
|
-
`plugins.slots.contextEngine: "lossless-claw"` and
|
|
136
|
-
`plugins.entries.lossless-claw.config.summaryModel`, not through
|
|
137
|
-
`agents.defaults.compaction.provider`. `fengming doctor --fix` migrates the old
|
|
138
|
-
`compaction.provider: "lossless-claw"` shape to the Lossless context-engine slot
|
|
139
|
-
when Codex is the active runtime, but native Codex still owns compaction.
|
|
140
|
-
|
|
141
|
-
The native Codex app-server harness supports context engines that require
|
|
142
|
-
pre-prompt assembly. Generic CLI backends, including `codex-cli`, do not provide
|
|
143
|
-
that host capability.
|
|
144
|
-
|
|
145
|
-
For Codex-backed agents, `/compact` starts native Codex app-server compaction on
|
|
146
|
-
the bound thread. FengMing does not wait for completion, impose an FengMing
|
|
147
|
-
timeout, restart the shared app-server, or fall back to a context-engine or
|
|
148
|
-
public OpenAI summarizer. If the native Codex thread binding is missing or
|
|
149
|
-
stale, the command fails closed so the operator sees the real runtime boundary
|
|
150
|
-
instead of silently switching compaction backends.
|
|
151
|
-
|
|
152
|
-
```json5
|
|
153
|
-
{
|
|
154
|
-
auth: {
|
|
155
|
-
order: {
|
|
156
|
-
openai: ["openai:user@example.com", "openai:api-key-backup"],
|
|
157
|
-
},
|
|
158
|
-
},
|
|
159
|
-
}
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
In that shape, both profiles still run through Codex for `openai/gpt-*` agent
|
|
163
|
-
turns. The API key is only an auth fallback, not a request to switch to FengMing or
|
|
164
|
-
plain OpenAI Responses.
|
|
165
|
-
|
|
166
|
-
The rest of this page covers common variants users must choose between:
|
|
167
|
-
deployment shape, fail-closed routing, guardian approval policy, native Codex
|
|
168
|
-
plugins, and Computer Use. For full option lists, defaults, enums, discovery,
|
|
169
|
-
environment isolation, timeouts, and app-server transport fields, see
|
|
170
|
-
[Codex harness reference](/plugins/codex-harness-reference).
|
|
171
|
-
|
|
172
|
-
## Verify Codex runtime
|
|
173
|
-
|
|
174
|
-
Use `/status` in the chat where you expect Codex. A Codex-backed OpenAI agent
|
|
175
|
-
turn shows:
|
|
176
|
-
|
|
177
|
-
```text
|
|
178
|
-
Runtime: OpenAI Codex
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
Then check Codex app-server state:
|
|
182
|
-
|
|
183
|
-
```text
|
|
184
|
-
/codex status
|
|
185
|
-
/codex models
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
`/codex status` reports app-server connectivity, account, rate limits, MCP
|
|
189
|
-
servers, and skills. `/codex models` lists the live Codex app-server catalog for
|
|
190
|
-
the harness and account. If `/status` is surprising, see
|
|
191
|
-
[Troubleshooting](#troubleshooting).
|
|
192
|
-
|
|
193
|
-
## Routing and model selection
|
|
194
|
-
|
|
195
|
-
Keep provider refs and runtime policy separate:
|
|
196
|
-
|
|
197
|
-
- Use `openai/gpt-*` for OpenAI agent turns through Codex.
|
|
198
|
-
- Do not use `openai-codex/gpt-*` in config. Run `fengming doctor --fix` to
|
|
199
|
-
repair legacy refs and stale session route pins.
|
|
200
|
-
- `agentRuntime.id: "codex"` is optional for normal OpenAI auto mode, but useful
|
|
201
|
-
when a deployment should fail closed if Codex is unavailable.
|
|
202
|
-
- `agentRuntime.id: "fengming"` opts a provider or model into the FengMing
|
|
203
|
-
embedded runtime when that is intentional.
|
|
204
|
-
- `/codex ...` controls native Codex app-server conversations from chat.
|
|
205
|
-
- ACP/acpx is a separate external harness path. Use it only when the user asks
|
|
206
|
-
for ACP/acpx or an external harness adapter.
|
|
207
|
-
|
|
208
|
-
Common command routing:
|
|
209
|
-
|
|
210
|
-
| User intent | Use |
|
|
211
|
-
| ----------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
|
212
|
-
| Attach the current chat | `/codex bind [--cwd <path>]` |
|
|
213
|
-
| Resume an existing Codex thread | `/codex resume <thread-id>` |
|
|
214
|
-
| List or filter Codex threads | `/codex threads [filter]` |
|
|
215
|
-
| List native Codex plugins | `/codex plugins list` |
|
|
216
|
-
| Enable or disable a configured native Codex plugin | `/codex plugins enable <name>`, `/codex plugins disable <name>` |
|
|
217
|
-
| Attach an existing Codex CLI session on a paired node | `/codex sessions --host <node> [filter]`, then `/codex resume <session-id> --host <node> --bind here` |
|
|
218
|
-
| Send Codex feedback only | `/codex diagnostics [note]` |
|
|
219
|
-
| Start an ACP/acpx task | ACP/acpx session commands, not `/codex` |
|
|
220
|
-
|
|
221
|
-
| Use case | Configure | Verify | Notes |
|
|
222
|
-
| ---------------------------------------------------- | ---------------------------------------------------------------------- | --------------------------------------- | ------------------------------------- |
|
|
223
|
-
| ChatGPT/Codex subscription with native Codex runtime | `openai/gpt-*` plus enabled `codex` plugin | `/status` shows `Runtime: OpenAI Codex` | Recommended path |
|
|
224
|
-
| Fail closed if Codex is unavailable | Provider or model `agentRuntime.id: "codex"` | Turn fails instead of embedded fallback | Use for Codex-only deployments |
|
|
225
|
-
| Direct OpenAI API-key traffic through FengMing | Provider or model `agentRuntime.id: "fengming"` and normal OpenAI auth | `/status` shows FengMing runtime | Use only when FengMing is intentional |
|
|
226
|
-
| Legacy config | `openai-codex/gpt-*` | `fengming doctor --fix` rewrites it | Do not write new config this way |
|
|
227
|
-
| ACP/acpx Codex adapter | ACP `sessions_spawn({ runtime: "acp" })` | ACP task/session status | Separate from native Codex harness |
|
|
228
|
-
|
|
229
|
-
`agents.defaults.imageModel` follows the same prefix split. Use `openai/gpt-*`
|
|
230
|
-
for the normal OpenAI route and `codex/gpt-*` only when image understanding
|
|
231
|
-
should run through a bounded Codex app-server turn. Do not use
|
|
232
|
-
`openai-codex/gpt-*`; doctor rewrites that legacy prefix to `openai/gpt-*`.
|
|
233
|
-
|
|
234
|
-
## Deployment patterns
|
|
235
|
-
|
|
236
|
-
### Basic Codex deployment
|
|
237
|
-
|
|
238
|
-
Use the quickstart config when all OpenAI agent turns should use Codex by
|
|
239
|
-
default.
|
|
240
|
-
|
|
241
|
-
```json5
|
|
242
|
-
{
|
|
243
|
-
plugins: {
|
|
244
|
-
entries: {
|
|
245
|
-
codex: {
|
|
246
|
-
enabled: true,
|
|
247
|
-
},
|
|
248
|
-
},
|
|
249
|
-
},
|
|
250
|
-
agents: {
|
|
251
|
-
defaults: {
|
|
252
|
-
model: "openai/gpt-5.5",
|
|
253
|
-
},
|
|
254
|
-
},
|
|
255
|
-
}
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
### Mixed provider deployment
|
|
259
|
-
|
|
260
|
-
This shape keeps Claude as the default agent and adds a named Codex agent:
|
|
261
|
-
|
|
262
|
-
```json5
|
|
263
|
-
{
|
|
264
|
-
plugins: {
|
|
265
|
-
entries: {
|
|
266
|
-
codex: {
|
|
267
|
-
enabled: true,
|
|
268
|
-
},
|
|
269
|
-
},
|
|
270
|
-
},
|
|
271
|
-
agents: {
|
|
272
|
-
defaults: {
|
|
273
|
-
model: "anthropic/claude-opus-4-6",
|
|
274
|
-
},
|
|
275
|
-
list: [
|
|
276
|
-
{
|
|
277
|
-
id: "main",
|
|
278
|
-
default: true,
|
|
279
|
-
model: "anthropic/claude-opus-4-6",
|
|
280
|
-
},
|
|
281
|
-
{
|
|
282
|
-
id: "codex",
|
|
283
|
-
name: "Codex",
|
|
284
|
-
model: "openai/gpt-5.5",
|
|
285
|
-
},
|
|
286
|
-
],
|
|
287
|
-
},
|
|
288
|
-
}
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
With this config, the `main` agent uses its normal provider path and the
|
|
292
|
-
`codex` agent uses Codex app-server.
|
|
293
|
-
|
|
294
|
-
### Fail-closed Codex deployment
|
|
295
|
-
|
|
296
|
-
For OpenAI agent turns, `openai/gpt-*` already resolves to Codex when the
|
|
297
|
-
bundled plugin is available. Add explicit runtime policy when you want a written
|
|
298
|
-
fail-closed rule:
|
|
299
|
-
|
|
300
|
-
```json5
|
|
301
|
-
{
|
|
302
|
-
models: {
|
|
303
|
-
providers: {
|
|
304
|
-
openai: {
|
|
305
|
-
agentRuntime: {
|
|
306
|
-
id: "codex",
|
|
307
|
-
},
|
|
308
|
-
},
|
|
309
|
-
},
|
|
310
|
-
},
|
|
311
|
-
agents: {
|
|
312
|
-
defaults: {
|
|
313
|
-
model: "openai/gpt-5.5",
|
|
314
|
-
},
|
|
315
|
-
},
|
|
316
|
-
plugins: {
|
|
317
|
-
entries: {
|
|
318
|
-
codex: {
|
|
319
|
-
enabled: true,
|
|
320
|
-
},
|
|
321
|
-
},
|
|
322
|
-
},
|
|
323
|
-
}
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
With Codex forced, FengMing fails early if the Codex plugin is disabled, the
|
|
327
|
-
app-server is too old, or the app-server cannot start.
|
|
328
|
-
|
|
329
|
-
## App-server policy
|
|
330
|
-
|
|
331
|
-
By default, the plugin starts FengMing's managed Codex binary locally with stdio
|
|
332
|
-
transport. Set `appServer.command` only when you intentionally want to run a
|
|
333
|
-
different executable. Use WebSocket transport only when an app-server is already
|
|
334
|
-
running elsewhere:
|
|
335
|
-
|
|
336
|
-
```json5
|
|
337
|
-
{
|
|
338
|
-
plugins: {
|
|
339
|
-
entries: {
|
|
340
|
-
codex: {
|
|
341
|
-
enabled: true,
|
|
342
|
-
config: {
|
|
343
|
-
appServer: {
|
|
344
|
-
transport: "websocket",
|
|
345
|
-
url: "ws://gateway-host:39175",
|
|
346
|
-
authToken: "${CODEX_APP_SERVER_TOKEN}",
|
|
347
|
-
},
|
|
348
|
-
},
|
|
349
|
-
},
|
|
350
|
-
},
|
|
351
|
-
},
|
|
352
|
-
}
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
Local stdio app-server sessions default to the trusted local operator posture:
|
|
356
|
-
`approvalPolicy: "never"`, `approvalsReviewer: "user"`, and
|
|
357
|
-
`sandbox: "danger-full-access"`. If local Codex requirements disallow that
|
|
358
|
-
implicit YOLO posture, FengMing selects allowed guardian permissions instead.
|
|
359
|
-
When an FengMing sandbox is active for the session, FengMing disables Codex
|
|
360
|
-
native Code Mode, user MCP servers, and app-backed plugin execution for that
|
|
361
|
-
turn instead of relying on Codex host-side sandboxing. Shell access is exposed
|
|
362
|
-
through FengMing sandbox-backed dynamic tools such as `sandbox_exec` and
|
|
363
|
-
`sandbox_process` when the normal exec/process tools are available.
|
|
364
|
-
|
|
365
|
-
Use normalized FengMing exec mode when you want Codex native auto-review before
|
|
366
|
-
sandbox escapes or extra permissions:
|
|
367
|
-
|
|
368
|
-
```json5
|
|
369
|
-
{
|
|
370
|
-
tools: {
|
|
371
|
-
exec: {
|
|
372
|
-
mode: "auto",
|
|
373
|
-
},
|
|
374
|
-
},
|
|
375
|
-
plugins: {
|
|
376
|
-
entries: {
|
|
377
|
-
codex: {
|
|
378
|
-
enabled: true,
|
|
379
|
-
},
|
|
380
|
-
},
|
|
381
|
-
},
|
|
382
|
-
}
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
For Codex app-server sessions, FengMing maps `tools.exec.mode: "auto"` to Codex
|
|
386
|
-
Guardian-reviewed approvals, usually
|
|
387
|
-
`approvalPolicy: "on-request"`, `approvalsReviewer: "auto_review"`, and
|
|
388
|
-
`sandbox: "workspace-write"` when the local requirements allow those values.
|
|
389
|
-
In `tools.exec.mode: "auto"`, FengMing does not preserve legacy unsafe Codex
|
|
390
|
-
`approvalPolicy: "never"` or `sandbox: "danger-full-access"` overrides; use
|
|
391
|
-
`tools.exec.mode: "full"` for an intentional no-approval Codex posture. The
|
|
392
|
-
legacy `plugins.entries.codex.config.appServer.mode: "guardian"` preset still
|
|
393
|
-
works, but `tools.exec.mode: "auto"` is the normalized FengMing surface.
|
|
394
|
-
|
|
395
|
-
For every app-server field, auth order, environment isolation, discovery, and
|
|
396
|
-
timeout behavior, see [Codex harness reference](/plugins/codex-harness-reference).
|
|
397
|
-
|
|
398
|
-
## Commands and diagnostics
|
|
399
|
-
|
|
400
|
-
The bundled plugin registers `/codex` as a slash command on any channel that
|
|
401
|
-
supports FengMing text commands.
|
|
402
|
-
|
|
403
|
-
Common forms:
|
|
404
|
-
|
|
405
|
-
- `/codex status` checks app-server connectivity, models, account, rate limits,
|
|
406
|
-
MCP servers, and skills.
|
|
407
|
-
- `/codex models` lists live Codex app-server models.
|
|
408
|
-
- `/codex threads [filter]` lists recent Codex app-server threads.
|
|
409
|
-
- `/codex resume <thread-id>` attaches the current FengMing session to an
|
|
410
|
-
existing Codex thread.
|
|
411
|
-
- `/codex compact` asks Codex app-server to compact the attached thread.
|
|
412
|
-
- `/codex review` starts Codex native review for the attached thread.
|
|
413
|
-
- `/codex diagnostics [note]` asks before sending Codex feedback for the
|
|
414
|
-
attached thread.
|
|
415
|
-
- `/codex account` shows account and rate-limit status.
|
|
416
|
-
- `/codex mcp` lists Codex app-server MCP server status.
|
|
417
|
-
- `/codex skills` lists Codex app-server skills.
|
|
418
|
-
|
|
419
|
-
For most support reports, start with `/diagnostics [note]` in the conversation
|
|
420
|
-
where the bug happened. It creates one Gateway diagnostics report and, for Codex
|
|
421
|
-
harness sessions, asks for approval to send the relevant Codex feedback bundle.
|
|
422
|
-
See [Diagnostics export](/gateway/diagnostics) for the privacy model and group
|
|
423
|
-
chat behavior.
|
|
424
|
-
|
|
425
|
-
Use `/codex diagnostics [note]` only when you specifically want the Codex
|
|
426
|
-
feedback upload for the currently attached thread without the full Gateway
|
|
427
|
-
diagnostics bundle.
|
|
428
|
-
|
|
429
|
-
### Inspect Codex threads locally
|
|
430
|
-
|
|
431
|
-
The fastest way to inspect a bad Codex run is often to open the native Codex
|
|
432
|
-
thread directly:
|
|
433
|
-
|
|
434
|
-
```bash
|
|
435
|
-
codex resume <thread-id>
|
|
436
|
-
```
|
|
437
|
-
|
|
438
|
-
Get the thread id from the completed `/diagnostics` reply, `/codex binding`, or
|
|
439
|
-
`/codex threads [filter]`.
|
|
440
|
-
|
|
441
|
-
For upload mechanics and runtime-level diagnostics boundaries, see
|
|
442
|
-
[Codex harness runtime](/plugins/codex-harness-runtime#codex-feedback-upload).
|
|
443
|
-
|
|
444
|
-
Auth is selected in this order:
|
|
445
|
-
|
|
446
|
-
1. Ordered OpenAI auth profiles for the agent, preferably under
|
|
447
|
-
`auth.order.openai`. Run `fengming doctor --fix` to migrate older
|
|
448
|
-
`openai-codex:*` profile ids and `auth.order.openai-codex`.
|
|
449
|
-
2. The app-server's existing account in that agent's Codex home.
|
|
450
|
-
3. For local stdio app-server launches only, `CODEX_API_KEY`, then
|
|
451
|
-
`OPENAI_API_KEY`, when no app-server account is present and OpenAI auth is
|
|
452
|
-
still required.
|
|
453
|
-
|
|
454
|
-
When FengMing sees a ChatGPT subscription-style Codex auth profile, it removes
|
|
455
|
-
`CODEX_API_KEY` and `OPENAI_API_KEY` from the spawned Codex child process. That
|
|
456
|
-
keeps Gateway-level API keys available for embeddings or direct OpenAI models
|
|
457
|
-
without making native Codex app-server turns bill through the API by accident.
|
|
458
|
-
Explicit Codex API-key profiles and local stdio env-key fallback use app-server
|
|
459
|
-
login instead of inherited child-process env. WebSocket app-server connections
|
|
460
|
-
do not receive Gateway env API-key fallback; use an explicit auth profile or the
|
|
461
|
-
remote app-server's own account.
|
|
462
|
-
|
|
463
|
-
If a subscription profile hits a Codex usage limit, FengMing records the reset
|
|
464
|
-
time when Codex reports one and tries the next ordered auth profile for the same
|
|
465
|
-
Codex run. When the reset time passes, the subscription profile becomes eligible
|
|
466
|
-
again without changing the selected `openai/gpt-*` model or Codex runtime.
|
|
467
|
-
|
|
468
|
-
For local stdio app-server launches, FengMing sets `CODEX_HOME` to a per-agent
|
|
469
|
-
directory so Codex config, auth/account files, plugin cache/data, and native
|
|
470
|
-
thread state do not read or write the operator's personal `~/.codex` by
|
|
471
|
-
default. FengMing preserves the normal process `HOME`; Codex-run subprocesses
|
|
472
|
-
can still find user-home config and tokens, and Codex may discover shared
|
|
473
|
-
`$HOME/.agents/skills` and `$HOME/.agents/plugins/marketplace.json` entries.
|
|
474
|
-
|
|
475
|
-
If a deployment needs additional environment isolation, add those variables to
|
|
476
|
-
`appServer.clearEnv`:
|
|
477
|
-
|
|
478
|
-
```json5
|
|
479
|
-
{
|
|
480
|
-
plugins: {
|
|
481
|
-
entries: {
|
|
482
|
-
codex: {
|
|
483
|
-
enabled: true,
|
|
484
|
-
config: {
|
|
485
|
-
appServer: {
|
|
486
|
-
clearEnv: ["CODEX_API_KEY", "OPENAI_API_KEY"],
|
|
487
|
-
},
|
|
488
|
-
},
|
|
489
|
-
},
|
|
490
|
-
},
|
|
491
|
-
},
|
|
492
|
-
}
|
|
493
|
-
```
|
|
494
|
-
|
|
495
|
-
`appServer.clearEnv` only affects the spawned Codex app-server child process.
|
|
496
|
-
FengMing removes `CODEX_HOME` and `HOME` from this list during local launch
|
|
497
|
-
normalization: `CODEX_HOME` stays per-agent, and `HOME` stays inherited so
|
|
498
|
-
subprocesses can use normal user-home state.
|
|
499
|
-
|
|
500
|
-
Codex dynamic tools default to `searchable` loading. FengMing does not expose
|
|
501
|
-
dynamic tools that duplicate Codex-native workspace operations: `read`, `write`,
|
|
502
|
-
`edit`, `apply_patch`, `exec`, `process`, and `update_plan`. Most remaining
|
|
503
|
-
FengMing integration tools such as messaging, media, cron, browser, nodes,
|
|
504
|
-
gateway, `heartbeat_respond`, and `web_search` are available through Codex tool
|
|
505
|
-
search under the `fengming` namespace, keeping the initial model context
|
|
506
|
-
smaller.
|
|
507
|
-
`sessions_yield` and message-tool-only source replies stay direct because
|
|
508
|
-
those are turn-control contracts. `sessions_spawn` stays searchable so Codex's
|
|
509
|
-
native `spawn_agent` remains the primary Codex subagent surface, while explicit
|
|
510
|
-
FengMing or ACP delegation is still available through the `fengming` dynamic
|
|
511
|
-
tool namespace. Heartbeat collaboration instructions tell Codex to search for
|
|
512
|
-
`heartbeat_respond` before ending a heartbeat turn when the tool is not already
|
|
513
|
-
loaded.
|
|
514
|
-
|
|
515
|
-
Set `codexDynamicToolsLoading: "direct"` only when connecting to a custom Codex
|
|
516
|
-
app-server that cannot search deferred dynamic tools or when debugging the full
|
|
517
|
-
tool payload.
|
|
518
|
-
|
|
519
|
-
Supported top-level Codex plugin fields:
|
|
520
|
-
|
|
521
|
-
| Field | Default | Meaning |
|
|
522
|
-
| -------------------------- | -------------- | ---------------------------------------------------------------------------------------- |
|
|
523
|
-
| `codexDynamicToolsLoading` | `"searchable"` | Use `"direct"` to put FengMing dynamic tools directly in the initial Codex tool context. |
|
|
524
|
-
| `codexDynamicToolsExclude` | `[]` | Additional FengMing dynamic tool names to omit from Codex app-server turns. |
|
|
525
|
-
| `codexPlugins` | disabled | Native Codex plugin/app support for migrated source-installed curated plugins. |
|
|
526
|
-
|
|
527
|
-
Supported `appServer` fields:
|
|
528
|
-
|
|
529
|
-
| Field | Default | Meaning |
|
|
530
|
-
| --------------------------------------------- | ------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
531
|
-
| `transport` | `"stdio"` | `"stdio"` spawns Codex; `"websocket"` connects to `url`. |
|
|
532
|
-
| `command` | managed Codex binary | Executable for stdio transport. Leave unset to use the managed binary; set it only for an explicit override. |
|
|
533
|
-
| `args` | `["app-server", "--listen", "stdio://"]` | Arguments for stdio transport. |
|
|
534
|
-
| `url` | unset | WebSocket app-server URL. |
|
|
535
|
-
| `authToken` | unset | Bearer token for WebSocket transport. |
|
|
536
|
-
| `headers` | `{}` | Extra WebSocket headers. |
|
|
537
|
-
| `clearEnv` | `[]` | Extra environment variable names removed from the spawned stdio app-server process after FengMing builds its inherited environment. FengMing keeps per-agent `CODEX_HOME` and inherited `HOME` for local launches. |
|
|
538
|
-
| `codeModeOnly` | `false` | Opt into Codex's code-mode-only tool surface. FengMing dynamic tools remain registered with Codex so nested `tools.*` calls return through the app-server `item/tool/call` bridge. |
|
|
539
|
-
| `requestTimeoutMs` | `60000` | Timeout for app-server control-plane calls. |
|
|
540
|
-
| `turnCompletionIdleTimeoutMs` | `60000` | Quiet window after Codex accepts a turn or after a turn-scoped app-server request while FengMing waits for `turn/completed`. Raise this for slow post-tool or status-only synthesis phases. |
|
|
541
|
-
| `postToolRawAssistantCompletionIdleTimeoutMs` | `300000` | Completion-idle guard used after a tool handoff when Codex emits raw assistant completion or progress but does not send `turn/completed`. Use this for trusted or heavy workloads where post-tool synthesis can legitimately stay quiet longer than the final assistant release budget. |
|
|
542
|
-
| `mode` | `"yolo"` unless local Codex requirements disallow YOLO | Preset for YOLO or guardian-reviewed execution. Local stdio requirements that omit `danger-full-access`, `never` approval, or the `user` reviewer make the implicit default guardian. |
|
|
543
|
-
| `approvalPolicy` | `"never"` or an allowed guardian approval policy | Native Codex approval policy sent to thread start/resume/turn. Guardian defaults prefer `"on-request"` when allowed. |
|
|
544
|
-
| `sandbox` | `"danger-full-access"` or an allowed guardian sandbox | Native Codex sandbox mode sent to thread start/resume. Guardian defaults prefer `"workspace-write"` when allowed, otherwise `"read-only"`. When an FengMing sandbox is active, `danger-full-access` turns use Codex `workspace-write` with network access derived from the FengMing sandbox egress setting. |
|
|
545
|
-
| `approvalsReviewer` | `"user"` or an allowed guardian reviewer | Use `"auto_review"` to let Codex review native approval prompts when allowed, otherwise `guardian_subagent` or `user`. `guardian_subagent` remains a legacy alias. |
|
|
546
|
-
| `serviceTier` | unset | Optional Codex app-server service tier. `"priority"` enables fast-mode routing, `"flex"` requests flex processing, `null` clears the override, and legacy `"fast"` is accepted as `"priority"`. |
|
|
547
|
-
| `experimental.sandboxExecServer` | `false` | Preview opt-in that registers an FengMing sandbox-backed Codex environment with Codex app-server 0.132.0 or newer so native Codex execution can run inside the active FengMing sandbox. |
|
|
548
|
-
|
|
549
|
-
FengMing-owned dynamic tool calls are bounded independently from
|
|
550
|
-
`appServer.requestTimeoutMs`: Codex `item/tool/call` requests use a 90 second
|
|
551
|
-
FengMing watchdog by default. A positive per-call `timeoutMs` argument extends
|
|
552
|
-
or shortens that specific tool budget. The `image_generate` tool uses
|
|
553
|
-
`agents.defaults.imageGenerationModel.timeoutMs` when the tool call does not
|
|
554
|
-
provide its own timeout, or a 120 second image-generation default otherwise.
|
|
555
|
-
The media-understanding `image` tool uses
|
|
556
|
-
`tools.media.image.timeoutSeconds` or its 60 second media default. Dynamic tool
|
|
557
|
-
budgets are capped at 600000 ms. On timeout, FengMing aborts the tool signal
|
|
558
|
-
where supported and returns a failed dynamic-tool response to Codex so the turn
|
|
559
|
-
can continue instead of leaving the session in `processing`.
|
|
560
|
-
|
|
561
|
-
After Codex accepts a turn, and after FengMing responds to a turn-scoped
|
|
562
|
-
app-server request, the harness expects Codex to make current-turn progress and
|
|
563
|
-
eventually finish the native turn with `turn/completed`. If the app-server goes
|
|
564
|
-
quiet for `appServer.turnCompletionIdleTimeoutMs`, FengMing best-effort
|
|
565
|
-
interrupts the Codex turn, records a diagnostic timeout, and releases the
|
|
566
|
-
FengMing session lane so follow-up chat messages are not queued behind a stale
|
|
567
|
-
native turn. Most non-terminal notifications for the same turn disarm that short
|
|
568
|
-
watchdog because Codex has proven the turn is still alive; raw
|
|
569
|
-
`custom_tool_call_output` completions keep the short post-tool watchdog armed
|
|
570
|
-
because they are the turn-scoped tool-result handoff. Global app-server
|
|
571
|
-
notifications, such as rate-limit updates, do not reset turn-idle progress.
|
|
572
|
-
Completed `agentMessage` items and pre-tool raw assistant
|
|
573
|
-
`rawResponseItem/completed` items arm the assistant-output release: if Codex then
|
|
574
|
-
goes quiet without `turn/completed`, FengMing best-effort interrupts the native
|
|
575
|
-
turn and releases the session lane. Post-tool raw assistant progress keeps
|
|
576
|
-
waiting for `turn/completed` while a completion-idle guard stays armed; the guard
|
|
577
|
-
uses `appServer.postToolRawAssistantCompletionIdleTimeoutMs` when configured and
|
|
578
|
-
defaults to five minutes otherwise. Replay-safe stdio app-server failures,
|
|
579
|
-
including turn-completion idle timeouts without assistant, tool, active-item, or
|
|
580
|
-
side-effect evidence, are retried once on a fresh app-server attempt. Unsafe
|
|
581
|
-
timeouts still retire the stuck app-server client and release the FengMing
|
|
582
|
-
session lane. They also clear the stale native thread binding and surface a
|
|
583
|
-
recoverable timeout message for user or maintainer judgment instead of being
|
|
584
|
-
replayed automatically. Timeout diagnostics include the last app-server
|
|
585
|
-
notification method and, for raw assistant response items, the item type, role,
|
|
586
|
-
id, and a bounded assistant text preview.
|
|
587
|
-
|
|
588
|
-
Environment overrides remain available for local testing:
|
|
589
|
-
|
|
590
|
-
- `FENGMING_CODEX_APP_SERVER_BIN`
|
|
591
|
-
- `FENGMING_CODEX_APP_SERVER_ARGS`
|
|
592
|
-
- `FENGMING_CODEX_APP_SERVER_MODE=yolo|guardian`
|
|
593
|
-
- `FENGMING_CODEX_APP_SERVER_APPROVAL_POLICY`
|
|
594
|
-
- `FENGMING_CODEX_APP_SERVER_SANDBOX`
|
|
595
|
-
|
|
596
|
-
`FENGMING_CODEX_APP_SERVER_BIN` bypasses the managed binary when
|
|
597
|
-
`appServer.command` is unset.
|
|
598
|
-
|
|
599
|
-
`FENGMING_CODEX_APP_SERVER_GUARDIAN=1` was removed. Use
|
|
600
|
-
`plugins.entries.codex.config.appServer.mode: "guardian"` instead, or
|
|
601
|
-
`FENGMING_CODEX_APP_SERVER_MODE=guardian` for one-off local testing. Config is
|
|
602
|
-
preferred for repeatable deployments because it keeps the plugin behavior in the
|
|
603
|
-
same reviewed file as the rest of the Codex harness setup.
|
|
604
|
-
|
|
605
|
-
## Native Codex plugins
|
|
606
|
-
|
|
607
|
-
Native Codex plugin support uses Codex app-server's own app and plugin
|
|
608
|
-
capabilities in the same Codex thread as the FengMing harness turn. FengMing
|
|
609
|
-
does not translate Codex plugins into synthetic `codex_plugin_*` FengMing
|
|
610
|
-
dynamic tools.
|
|
611
|
-
|
|
612
|
-
`codexPlugins` affects only sessions that select the native Codex harness. It
|
|
613
|
-
has no effect on built-in harness runs, normal OpenAI provider runs, ACP conversation
|
|
614
|
-
bindings, or other harnesses.
|
|
615
|
-
|
|
616
|
-
Minimal migrated config:
|
|
617
|
-
|
|
618
|
-
```json5
|
|
619
|
-
{
|
|
620
|
-
plugins: {
|
|
621
|
-
entries: {
|
|
622
|
-
codex: {
|
|
623
|
-
enabled: true,
|
|
624
|
-
config: {
|
|
625
|
-
codexPlugins: {
|
|
626
|
-
enabled: true,
|
|
627
|
-
allow_destructive_actions: true,
|
|
628
|
-
plugins: {
|
|
629
|
-
"google-calendar": {
|
|
630
|
-
enabled: true,
|
|
631
|
-
marketplaceName: "openai-curated",
|
|
632
|
-
pluginName: "google-calendar",
|
|
633
|
-
},
|
|
634
|
-
},
|
|
635
|
-
},
|
|
636
|
-
},
|
|
637
|
-
},
|
|
638
|
-
},
|
|
639
|
-
},
|
|
640
|
-
}
|
|
641
|
-
```
|
|
642
|
-
|
|
643
|
-
Thread app config is computed when FengMing establishes a Codex harness session
|
|
644
|
-
or replaces a stale Codex thread binding. It is not recomputed on every turn.
|
|
645
|
-
After changing `codexPlugins`, use `/new`, `/reset`, or restart the gateway so
|
|
646
|
-
future Codex harness sessions start with the updated app set.
|
|
647
|
-
|
|
648
|
-
For migration eligibility, app inventory, destructive action policy,
|
|
649
|
-
elicitations, and native plugin diagnostics, see
|
|
650
|
-
[Native Codex plugins](/plugins/codex-native-plugins).
|
|
651
|
-
|
|
652
|
-
## Computer Use
|
|
653
|
-
|
|
654
|
-
Computer Use is covered in its own setup guide:
|
|
655
|
-
[Codex Computer Use](/plugins/codex-computer-use).
|
|
656
|
-
|
|
657
|
-
The short version: FengMing does not vendor the desktop-control app or execute
|
|
658
|
-
desktop actions itself. It prepares Codex app-server, verifies that the
|
|
659
|
-
`computer-use` MCP server is available, and then lets Codex own the native MCP
|
|
660
|
-
tool calls during Codex-mode turns.
|
|
661
|
-
|
|
662
|
-
## Runtime boundaries
|
|
663
|
-
|
|
664
|
-
The Codex harness changes the low-level embedded agent executor only.
|
|
665
|
-
|
|
666
|
-
- FengMing dynamic tools are supported. Codex asks FengMing to execute those
|
|
667
|
-
tools, so FengMing remains in the execution path.
|
|
668
|
-
- Codex-native shell, patch, MCP, and native app tools are owned by Codex.
|
|
669
|
-
FengMing can observe or block selected native events through the supported
|
|
670
|
-
relay, but it does not rewrite native tool arguments.
|
|
671
|
-
- Codex owns native compaction. FengMing keeps a transcript mirror for channel
|
|
672
|
-
history, search, `/new`, `/reset`, and future model or harness switching, but
|
|
673
|
-
it does not replace Codex compaction with an FengMing or context-engine
|
|
674
|
-
summarizer.
|
|
675
|
-
- Media generation, media understanding, TTS, approvals, and messaging-tool
|
|
676
|
-
output continue through the matching FengMing provider/model settings.
|
|
677
|
-
- `tool_result_persist` applies to FengMing-owned transcript tool results, not
|
|
678
|
-
Codex-native tool result records.
|
|
679
|
-
|
|
680
|
-
For hook layers, supported V1 surfaces, native permission handling, queue
|
|
681
|
-
steering, Codex feedback upload mechanics, and compaction details, see
|
|
682
|
-
[Codex harness runtime](/plugins/codex-harness-runtime).
|
|
683
|
-
|
|
684
|
-
## Troubleshooting
|
|
685
|
-
|
|
686
|
-
**Codex does not appear as a normal `/model` provider:** that is expected for
|
|
687
|
-
new configs. Select an `openai/gpt-*` model, enable
|
|
688
|
-
`plugins.entries.codex.enabled`, and check whether `plugins.allow` excludes
|
|
689
|
-
`codex`.
|
|
690
|
-
|
|
691
|
-
**FengMing uses the built-in harness instead of Codex:** make sure the model ref is
|
|
692
|
-
`openai/gpt-*` on the official OpenAI provider and that the Codex plugin is
|
|
693
|
-
installed and enabled. If you need strict proof while testing, set provider or
|
|
694
|
-
model `agentRuntime.id: "codex"`. A forced Codex runtime fails instead of
|
|
695
|
-
falling back to FengMing.
|
|
696
|
-
|
|
697
|
-
**OpenAI Codex runtime falls back to the API-key path:** collect a redacted
|
|
698
|
-
gateway excerpt that shows the model, runtime, selected provider, and failure.
|
|
699
|
-
Ask affected collaborators to run this read-only command on their FengMing host:
|
|
700
|
-
|
|
701
|
-
```bash
|
|
702
|
-
(
|
|
703
|
-
pattern='openai/gpt-5\.[45]|agentRuntime(\.id)?|harnessRuntime|Runtime: OpenAI Codex|openai-codex|resolveSelectedOpenAIRuntimeProvider|candidateProvider[": ]+openai|status[": ]+401|Incorrect API key|No API key|api-key path|API-key path|OAuth'
|
|
704
|
-
|
|
705
|
-
if ls /tmp/fengming/fengming-*.log >/dev/null 2>&1; then
|
|
706
|
-
grep -E -i -n "$pattern" /tmp/fengming/fengming-*.log 2>/dev/null || true
|
|
707
|
-
else
|
|
708
|
-
journalctl --user -u fengming-gateway --since today --no-pager 2>/dev/null \
|
|
709
|
-
| grep -E -i "$pattern" || true
|
|
710
|
-
fi
|
|
711
|
-
) | sed -E \
|
|
712
|
-
-e 's/(Authorization: Bearer )[A-Za-z0-9._~+\/-]+/\1[REDACTED]/Ig' \
|
|
713
|
-
-e 's/(Bearer )[A-Za-z0-9._~+\/-]+/\1[REDACTED]/Ig' \
|
|
714
|
-
-e 's/(api[_ -]?key[=: ]+)[^ ,}"]+/\1[REDACTED]/Ig' \
|
|
715
|
-
-e 's/(OPENAI_API_KEY[=: ]+)[^ ,}"]+/\1[REDACTED]/Ig' \
|
|
716
|
-
-e 's/sk-[A-Za-z0-9_-]{12,}/sk-[REDACTED]/g' \
|
|
717
|
-
-e 's/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/[EMAIL-REDACTED]/g' \
|
|
718
|
-
| tail -200
|
|
719
|
-
```
|
|
720
|
-
|
|
721
|
-
Useful excerpts usually include `openai/gpt-5.5` or `openai/gpt-5.4`,
|
|
722
|
-
`Runtime: OpenAI Codex`, `agentRuntime.id` or `harnessRuntime`,
|
|
723
|
-
`candidateProvider: "openai"`, and a `401`, `Incorrect API key`, or
|
|
724
|
-
`No API key` result. A corrected run should show the OpenAI OAuth
|
|
725
|
-
path instead of a plain OpenAI API-key failure.
|
|
726
|
-
|
|
727
|
-
**Legacy `openai-codex/*` config remains:** run `fengming doctor --fix`.
|
|
728
|
-
Doctor rewrites legacy model refs to `openai/*`, removes stale session and
|
|
729
|
-
whole-agent runtime pins, and preserves existing auth-profile overrides.
|
|
730
|
-
|
|
731
|
-
**The app-server is rejected:** use Codex app-server `0.125.0` or newer.
|
|
732
|
-
Same-version prereleases or build-suffixed versions such as
|
|
733
|
-
`0.125.0-alpha.2` or `0.125.0+custom` are rejected because FengMing tests the
|
|
734
|
-
stable `0.125.0` protocol floor.
|
|
735
|
-
|
|
736
|
-
**`/codex status` cannot connect:** check that the bundled `codex` plugin is
|
|
737
|
-
enabled, that `plugins.allow` includes it when an allowlist is configured, and
|
|
738
|
-
that any custom `appServer.command`, `url`, `authToken`, or headers are valid.
|
|
739
|
-
|
|
740
|
-
**Model discovery is slow:** lower
|
|
741
|
-
`plugins.entries.codex.config.discovery.timeoutMs` or disable discovery. See
|
|
742
|
-
[Codex harness reference](/plugins/codex-harness-reference#model-discovery).
|
|
743
|
-
|
|
744
|
-
**WebSocket transport fails immediately:** check `appServer.url`, `authToken`,
|
|
745
|
-
headers, and that the remote app-server speaks the same Codex app-server
|
|
746
|
-
protocol version.
|
|
747
|
-
|
|
748
|
-
**Native shell or patch tools are blocked with `Native hook relay unavailable`:**
|
|
749
|
-
the Codex thread is still trying to use a native hook relay id that FengMing no
|
|
750
|
-
longer has registered. This is a native Codex hook transport problem, not an ACP
|
|
751
|
-
backend, provider, GitHub, or shell-command failure. Start a fresh session in
|
|
752
|
-
the affected chat with `/new` or `/reset`, then retry a harmless command. If that
|
|
753
|
-
works once but the next native tool call fails again, treat `/new` as a temporary
|
|
754
|
-
workaround only: copy the prompt into a fresh session after restarting the Codex
|
|
755
|
-
app-server or FengMing Gateway so old threads are dropped and native hook
|
|
756
|
-
registrations are recreated.
|
|
757
|
-
|
|
758
|
-
**A non-Codex model uses the built-in harness:** that is expected unless
|
|
759
|
-
provider or model runtime policy routes it to another harness. Plain non-OpenAI
|
|
760
|
-
provider refs stay on their normal provider path in `auto` mode.
|
|
761
|
-
|
|
762
|
-
**Computer Use is installed but tools do not run:** check
|
|
763
|
-
`/codex computer-use status` from a fresh session. If a tool reports
|
|
764
|
-
`Native hook relay unavailable`, use the native hook relay recovery above. See
|
|
765
|
-
[Codex Computer Use](/plugins/codex-computer-use#troubleshooting).
|
|
766
|
-
|
|
767
|
-
## Related
|
|
768
|
-
|
|
769
|
-
- [Codex harness reference](/plugins/codex-harness-reference)
|
|
770
|
-
- [Codex harness runtime](/plugins/codex-harness-runtime)
|
|
771
|
-
- [Native Codex plugins](/plugins/codex-native-plugins)
|
|
772
|
-
- [Codex Computer Use](/plugins/codex-computer-use)
|
|
773
|
-
- [Agent runtimes](/concepts/agent-runtimes)
|
|
774
|
-
- [Model providers](/concepts/model-providers)
|
|
775
|
-
- [OpenAI provider](/providers/openai)
|
|
776
|
-
- [Agent harness plugins](/plugins/sdk-agent-harness)
|
|
777
|
-
- [Plugin hooks](/plugins/hooks)
|
|
778
|
-
- [Diagnostics export](/gateway/diagnostics)
|
|
779
|
-
- [Status](/cli/status)
|
|
780
|
-
- [Testing](/help/testing-live#live-codex-app-server-harness-smoke)
|