Run a MeshAgent process agent whose turns are handled by Codex.
Use the Codex backend when you want Codex to run the turns for a room-connected process agent. MeshAgent owns the room-facing runtime: the agent participant, channels, deployment, routing, and stored thread history. Codex handles each turn behind that process agent.This is different from using MeshAgent with Codex CLI or Codex Desktop. If you want to run Codex normally and route model traffic through the MeshAgent LLM Proxy, use meshagent setup or meshagent launch codex; see Use Codex and Claude with MeshAgent. A Codex-backed process agent creates an agent participant in a room and sends that participant’s turns to Codex app-server.
Open the same room in MeshAgent Studio and chat with codex-agent.While the command is running, the agent is connected to the room. You can test it in Studio like any other process agent because the room, participant, and chat channel are still managed by MeshAgent. Stop the local process when you are done testing.
Use --backend codex for the default Codex-backed process agent. Use --model codex/gpt-5.5 when you need to pin a specific Codex model.
If you pass a normal model name such as --model gpt-5.5, the process agent uses the standard LLM backend. That path sends turns through MeshAgent’s LLM adapters. If you pass a Codex model path such as --model codex/gpt-5.5, the process agent uses the Codex backend.--model can be repeated when you want to choose the exact models the agent can switch between. --backend is broader: it makes a backend’s default model set available. --backend codex currently adds codex/gpt-5.5. --backend llm currently adds llm/openai/gpt-5.2 and llm/anthropic/claude-3-5-sonnet-latest. If you omit both --backend and --model, the process command defaults to --model gpt-5.5, which is a standard LLM-backed agent.You can also make both backends available from the same agent by passing both models:
This uses the default dataset-backed process-agent thread storage, so the room thread remains the durable history while the selected model can change. In chat, use /models to list available models, then use /model codex/gpt-5.5 to switch to Codex or /model gpt-5.5 to switch back to the standard LLM backend. Do not use --thread-storage codex for a mixed-backend agent; Codex thread storage only supports Codex backends.
The process agent still runs through MeshAgent, but turn execution moves to Codex:
meshagent process joins the room as codex-agent.
The chat channel turns room chat into process-agent turns.
The process supervisor routes each turn to the selected backend.
The Codex backend starts the local Codex app-server and sends the turn to it.
Codex app-server runs the Codex thread with Codex’s native coding-agent runtime.
MeshAgent records the thread history using the default dataset-backed process-agent storage.
Codex app-server is the local Codex runtime used by the Codex SDK. OpenAI describes it as a local app-server controlled over JSON-RPC. MeshAgent uses that runtime so the room participant can use Codex behavior while still using MeshAgent rooms, channels, deployment, and thread storage. See the OpenAI Codex SDK docs for the app-server client model.Use this instead of --model gpt-5.5 when you specifically want Codex’s coding-agent runtime behind the MeshAgent room participant. Use a normal model name when you need a standard LLM-backed process agent.
Codex-backed process agents use Codex app-server’s native runtime, not MeshAgent’s LLM tool pipeline.That means Codex app-server owns coding-agent behavior such as command execution, file changes, plans, sandboxing, approvals, and any MCP tools configured for Codex itself. MeshAgent receives those Codex events and records them in the process thread. MeshAgent also surfaces Codex diff updates as codex tool events in the turn stream so Studio can show code changes as part of the work.Use the standard LLM backend when the agent needs MeshAgent tool flags such as --require-toolkit, --tool-search, --web-search, --storage, --mcp, --shell, or --advanced-shell. Those flags add tools to LLM turns. Custom MeshAgent room toolkits are not exposed to Codex turns through --tool-search or --require-toolkit.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"MeshAgent","colors":{"primary":"#16A34A","light":"#07C983","dark":"#15803D"},"footer":{"socials":{"github":"https://github.com/meshagent/meshagent-docs"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"meshagent","hasAudioNarration":false,"actualSubdomain":"meshagent","customDomains":["docs.meshagent.com"],"gitSource":{"type":"github","owner":"meshagent","repo":"meshagent-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae3f60b2b466c0b95dcef8a","collectionId":"a08bb0cf-78fd-4ae1-9bf5-31119632ed5d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae3f60b2b466c0b95dcef8a"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae57de23badfbce406ba07e","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"MeshAgent","count":90},{"language":"default","tag":"Agents \u0026 Tools","count":29},{"language":"default","tag":"Deploy \u0026 Manage","count":17},{"language":"default","tag":"Rooms","count":14},{"language":"default","tag":"Projects","count":13},{"language":"default","tag":"Room APIs","count":12},{"language":"default","tag":"Developer Reference","count":10},{"language":"default","tag":"Tools \u0026 MCP","count":8},{"language":"default","tag":"Secrets \u0026 Credentials","count":7},{"language":"default","tag":"LLM Adapters","count":5}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"agents/process/codex_backend","slug":"/agents/process/codex_backend","pageMetadata":{"title":"Codex Process Backend","description":"Run a MeshAgent process agent whose turns are handled by Codex.","href":"/agents/process/codex_backend"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Run a MeshAgent process agent whose turns are handled by Codex.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Use the Codex backend when you want Codex to run the turns for a room-connected process agent. MeshAgent owns the room-facing runtime: the agent participant, channels, deployment, routing, and stored thread history. Codex handles each turn behind that process agent.`}),`\n`,_jsxs(_components.p,{children:[`This is different from using MeshAgent with Codex CLI or Codex Desktop. If you want to run Codex normally and route model traffic through the MeshAgent LLM Proxy, use `,_jsx(_components.code,{children:`meshagent setup`}),` or `,_jsx(_components.code,{children:`meshagent launch codex`}),`; see `,_jsx(_components.a,{href:`/agents/routing/use_codex_claude`,children:`Use Codex and Claude with MeshAgent`}),`. A Codex-backed process agent creates an agent participant in a room and sends that participant’s turns to Codex app-server.`]}),`\n`,_jsx(Heading,{level:`2`,id:`run-locally`,children:`Run locally`}),`\n`,_jsxs(_components.p,{children:[`Start a chat agent in the `,_jsx(_components.code,{children:`gettingstarted`}),` room:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`meshagent`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` process`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` join`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --room`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` gettingstarted`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --agent-name`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` codex-agent`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --channel`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` chat`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --backend`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` codex`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Open the same room in `,_jsx(_components.a,{href:`https://studio.meshagent.com`,children:`MeshAgent Studio`}),` and chat with `,_jsx(_components.code,{children:`codex-agent`}),`.`]}),`\n`,_jsx(_components.p,{children:`While the command is running, the agent is connected to the room. You can test it in Studio like any other process agent because the room, participant, and chat channel are still managed by MeshAgent. Stop the local process when you are done testing.`}),`\n`,_jsx(Heading,{level:`2`,id:`select-the-codex-backend`,children:`Select the Codex backend`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`--backend codex`}),` for the default Codex-backed process agent. Use `,_jsx(_components.code,{children:`--model codex/gpt-5.5`}),` when you need to pin a specific Codex model.`]})}),`\n`,_jsxs(_components.p,{children:[`If you pass a normal model name such as `,_jsx(_components.code,{children:`--model gpt-5.5`}),`, the process agent uses the standard LLM backend. That path sends turns through MeshAgent’s LLM adapters. If you pass a Codex model path such as `,_jsx(_components.code,{children:`--model codex/gpt-5.5`}),`, the process agent uses the Codex backend.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`--model`}),` can be repeated when you want to choose the exact models the agent can switch between. `,_jsx(_components.code,{children:`--backend`}),` is broader: it makes a backend’s default model set available. `,_jsx(_components.code,{children:`--backend codex`}),` currently adds `,_jsx(_components.code,{children:`codex/gpt-5.5`}),`. `,_jsx(_components.code,{children:`--backend llm`}),` currently adds `,_jsx(_components.code,{children:`llm/openai/gpt-5.2`}),` and `,_jsx(_components.code,{children:`llm/anthropic/claude-3-5-sonnet-latest`}),`. If you omit both `,_jsx(_components.code,{children:`--backend`}),` and `,_jsx(_components.code,{children:`--model`}),`, the process command defaults to `,_jsx(_components.code,{children:`--model gpt-5.5`}),`, which is a standard LLM-backed agent.`]}),`\n`,_jsx(_components.p,{children:`You can also make both backends available from the same agent by passing both models:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`meshagent`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` process`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` join`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --room`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` gettingstarted`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --agent-name`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` codex-agent`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --channel`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` chat`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --model`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` gpt-5.5`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --model`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` codex/gpt-5.5`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This uses the default dataset-backed process-agent thread storage, so the room thread remains the durable history while the selected model can change. In chat, use `,_jsx(_components.code,{children:`/models`}),` to list available models, then use `,_jsx(_components.code,{children:`/model codex/gpt-5.5`}),` to switch to Codex or `,_jsx(_components.code,{children:`/model gpt-5.5`}),` to switch back to the standard LLM backend. Do not use `,_jsx(_components.code,{children:`--thread-storage codex`}),` for a mixed-backend agent; Codex thread storage only supports Codex backends.`]}),`\n`,_jsx(Heading,{level:`2`,id:`deploy-the-agent`,children:`Deploy the agent`}),`\n`,_jsx(_components.p,{children:`When the local version works, deploy the same agent so it stays available without your terminal open:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`meshagent`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` process`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` deploy`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --service-name`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` codex-agent`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --room`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` gettingstarted`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --agent-name`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` codex-agent`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --channel`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` chat`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --backend`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` codex`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This creates or updates a room service for `,_jsx(_components.code,{children:`codex-agent`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`pin-a-codex-model`,children:`Pin a Codex model`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`meshagent`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` process`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` join`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --room`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` gettingstarted`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --agent-name`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` codex-agent`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --channel`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` chat`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --model`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` codex/gpt-5.5`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Use this form when you need to choose an exact Codex model. Otherwise, prefer `,_jsx(_components.code,{children:`--backend codex`}),` so the process agent uses the default Codex model.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-it-works`,children:`How it works`}),`\n`,_jsx(_components.p,{children:`The process agent still runs through MeshAgent, but turn execution moves to Codex:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`meshagent process`}),` joins the room as `,_jsx(_components.code,{children:`codex-agent`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`chat`}),` channel turns room chat into process-agent turns.`]}),`\n`,_jsx(_components.li,{children:`The process supervisor routes each turn to the selected backend.`}),`\n`,_jsx(_components.li,{children:`The Codex backend starts the local Codex app-server and sends the turn to it.`}),`\n`,_jsx(_components.li,{children:`Codex app-server runs the Codex thread with Codex’s native coding-agent runtime.`}),`\n`,_jsx(_components.li,{children:`MeshAgent records the thread history using the default dataset-backed process-agent storage.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Codex app-server is the local Codex runtime used by the Codex SDK. OpenAI describes it as a local app-server controlled over JSON-RPC. MeshAgent uses that runtime so the room participant can use Codex behavior while still using MeshAgent rooms, channels, deployment, and thread storage. See the `,_jsx(_components.a,{href:`https://developers.openai.com/codex/sdk#python-library`,children:`OpenAI Codex SDK docs`}),` for the app-server client model.`]}),`\n`,_jsxs(_components.p,{children:[`Use this instead of `,_jsx(_components.code,{children:`--model gpt-5.5`}),` when you specifically want Codex’s coding-agent runtime behind the MeshAgent room participant. Use a normal model name when you need a standard LLM-backed process agent.`]}),`\n`,_jsx(Heading,{level:`2`,id:`tool-support`,children:`Tool support`}),`\n`,_jsx(_components.p,{children:`Codex-backed process agents use Codex app-server’s native runtime, not MeshAgent’s LLM tool pipeline.`}),`\n`,_jsxs(_components.p,{children:[`That means Codex app-server owns coding-agent behavior such as command execution, file changes, plans, sandboxing, approvals, and any MCP tools configured for Codex itself. MeshAgent receives those Codex events and records them in the process thread. MeshAgent also surfaces Codex diff updates as `,_jsx(_components.code,{children:`codex`}),` tool events in the turn stream so Studio can show code changes as part of the work.`]}),`\n`,_jsxs(_components.p,{children:[`Use the standard LLM backend when the agent needs MeshAgent tool flags such as `,_jsx(_components.code,{children:`--require-toolkit`}),`, `,_jsx(_components.code,{children:`--tool-search`}),`, `,_jsx(_components.code,{children:`--web-search`}),`, `,_jsx(_components.code,{children:`--storage`}),`, `,_jsx(_components.code,{children:`--mcp`}),`, `,_jsx(_components.code,{children:`--shell`}),`, or `,_jsx(_components.code,{children:`--advanced-shell`}),`. Those flags add tools to LLM turns. Custom MeshAgent room toolkits are not exposed to Codex turns through `,_jsx(_components.code,{children:`--tool-search`}),` or `,_jsx(_components.code,{children:`--require-toolkit`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`where-to-go-next`,children:`Where to go next`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/agents/process/overview`,children:`Process Agents`}),`: learn the standard process-agent pattern`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/agents/routing/use_codex_claude`,children:`Use Codex and Claude with MeshAgent`}),`: route Codex CLI or Codex Desktop through the MeshAgent LLM Proxy`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Codex Process Backend","description":"Run a MeshAgent process agent whose turns are handled by Codex.","href":"/agents/process/codex_backend"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Run locally","slug":"run-locally","depth":2,"children":[]},{"title":"Select the Codex backend","slug":"select-the-codex-backend","depth":2,"children":[]},{"title":"Deploy the agent","slug":"deploy-the-agent","depth":2,"children":[]},{"title":"Pin a Codex model","slug":"pin-a-codex-model","depth":2,"children":[]},{"title":"How it works","slug":"how-it-works","depth":2,"children":[]},{"title":"Tool support","slug":"tool-support","depth":2,"children":[]},{"title":"Where to go next","slug":"where-to-go-next","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/meshagent/479c8b21cc281976/examples/javascript/agent-server.js","/_mintlify/custom/meshagent/6e8182e27b504bd1/examples/javascript/documents-writing.js","/_mintlify/custom/meshagent/d4cf543b8a91f318/examples/javascript/quickstart-agent.js","/_mintlify/custom/meshagent/c2c00a0dd20d105a/examples/javascript/quickstart-document.js","/_mintlify/custom/meshagent/bf4658d0b94f680f/examples/javascript/room-connect.js","/_mintlify/custom/meshagent/1f20e29fde6db945/examples/javascript/schemas-html.js","/_mintlify/custom/meshagent/2b09b90d0e79ba2a/examples/javascript/storage-download.js","/_mintlify/custom/meshagent/7d41a6a483b5a4c5/examples/integration/plain-nodejs.js","/_mintlify/custom/meshagent/b4891660841fc5b7/build-examples.js"],"subdomain":"meshagent","siteName":"MeshAgent","title":"Codex Process Backend - MeshAgent","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-06-17T17:46:18.577Z","originalFileLocation":"agents/process/codex_backend.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Run a MeshAgent process agent whose turns are handled by Codex.\">\u003cmeta data-mint-head name=\"application-name\" content=\"MeshAgent\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/meshagent/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/meshagent/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/meshagent/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/meshagent/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"Codex Process Backend - MeshAgent\">\u003cmeta data-mint-head property=\"og:description\" content=\"Run a MeshAgent process agent whose turns are handled by Codex.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"MeshAgent\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.meshagent.com/agents/process/codex_backend\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://meshagent.mintlify.app/_mintlify/api/og/v2?division=Process+Agents\u0026amp;title=Codex+Process+Backend\u0026amp;description=Run+a+MeshAgent+process+agent+whose+turns+are+handled+by+Codex.\u0026amp;theme=df44427d4ddbca4dea795833\u0026amp;signature=8b42c6b8e192906c8e849f5b6e3fdfe80a3880c56dd49f3da0d369400a9bf99e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Codex Process Backend - MeshAgent\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Run a MeshAgent process agent whose turns are handled by Codex.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://meshagent.mintlify.app/_mintlify/api/og/v2?division=Process+Agents\u0026amp;title=Codex+Process+Backend\u0026amp;description=Run+a+MeshAgent+process+agent+whose+turns+are+handled+by+Codex.\u0026amp;theme=df44427d4ddbca4dea795833\u0026amp;signature=8b42c6b8e192906c8e849f5b6e3fdfe80a3880c56dd49f3da0d369400a9bf99e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/meshagent/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"MeshAgent\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.meshagent.com/agents/process/codex_backend\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/agents/process/codex_backend.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.meshagent.com/#organization\",\"name\":\"MeshAgent\",\"url\":\"https://docs.meshagent.com\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.meshagent.com#website\",\"name\":\"MeshAgent\",\"url\":\"https://docs.meshagent.com\",\"publisher\":{\"@id\":\"https://docs.meshagent.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.meshagent.com/agents/process/codex_backend#webpage\",\"url\":\"https://docs.meshagent.com/agents/process/codex_backend\",\"name\":\"Codex Process Backend\",\"description\":\"Run a MeshAgent process agent whose turns are handled by Codex.\",\"dateModified\":\"2026-06-17T17:46:18.577Z\",\"isPartOf\":{\"@id\":\"https://docs.meshagent.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.meshagent.com/agents/process/codex_backend#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.meshagent.com/agents/process/codex_backend#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Agents \u0026 Tools\",\"item\":\"https://docs.meshagent.com/agents/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Process Agents\",\"item\":\"https://docs.meshagent.com/agents/process/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Codex Process Backend\",\"item\":\"https://docs.meshagent.com/agents/process/codex_backend\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.meshagent.com/agents/process/codex_backend#article\",\"headline\":\"Codex Process Backend\",\"name\":\"Codex Process Backend\",\"description\":\"Run a MeshAgent process agent whose turns are handled by Codex.\",\"url\":\"https://docs.meshagent.com/agents/process/codex_backend\",\"mainEntityOfPage\":{\"@id\":\"https://docs.meshagent.com/agents/process/codex_backend#webpage\"},\"dateModified\":\"2026-06-17T17:46:18.577Z\",\"publisher\":{\"@id\":\"https://docs.meshagent.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.meshagent.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"MeshAgent\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"MeshAgent","nav":{"global":null,"tabs":[{"tab":"MeshAgent","pages":[{"group":"Introduction","pages":[{"title":"Quickstart","href":"/introduction/cli_quickstart"},{"title":"Key Concepts","href":"/introduction/introduction"}]},{"group":"Rooms","pages":[{"title":null,"href":"/room_api/overview"},{"title":"Sessions","href":"/room_api/sessions"},{"group":"Room APIs","pages":[{"title":null,"href":"/room_api/agents"},{"title":null,"href":"/room_api/messaging"},{"title":null,"href":"/room_api/datasets"},{"title":"SQLite","href":"/room_api/sqlite"},{"title":"SQLite backup, restore, and recovery","href":"/room_api/sqlite-recovery"},{"title":null,"href":"/room_api/memory"},{"title":null,"href":"/room_api/storage"},{"title":null,"href":"/room_api/queue"},{"title":null,"href":"/room_api/containers"},{"title":null,"href":"/room_api/sync"},{"title":"Services","href":"/room_api/services"},{"title":null,"href":"/room_api/developer"}]}]},{"group":"Agents \u0026 Tools","pages":[{"title":"Agents Overview","href":"/agents/overview"},{"title":"Managed Agents","href":"/agents/managed_agents"},{"group":"Process Agents","pages":[{"title":"Process Agents","description":null,"href":"/agents/process/overview"},{"title":"Codex Process Backend","href":"/agents/process/codex_backend"},{"title":"Process Agent Architecture","description":null,"href":"/agents/process/architecture"},{"title":"Agent Turns","href":"/agents/process/agent_turns"},{"title":"Threads Overview","href":"/agents/threads_overview"}]},{"title":"VoiceBot","href":"/agents/standard/voicebot"},{"group":"Tools \u0026 MCP","pages":[{"title":"Built-in MeshAgent Toolkits","href":"/agents/tools/built_in_toolkits"},{"title":"How Tools and Toolkits Work","href":"/agents/tools/tools_and_toolkits"},{"title":"Python tools for managed agents","href":"/agents/tools/managed_python_tools"},{"title":"Create Custom Tools","href":"/agents/tools/quickstart"},{"title":"Dynamic Tool Discovery","href":"/agents/tools/dynamic_tool_discovery"},{"title":"Dynamic UI Tools","href":"/agents/tools/dynamic_ui_tools"},{"title":"MCP Servers \u0026 OpenAI Connectors","href":"/agents/tools/mcp_servers"},{"title":"Supabase MCP Guide","href":"/agents/tools/supabase_mcp"}]},{"group":"Skills","pages":[{"title":"Skills Overview","href":"/agent_skills/overview"},{"title":"Authoring Skills","href":"/agent_skills/authoring"},{"title":"Bundle Private Skills with a Custom Service","href":"/agent_skills/packaging_and_deploying"}]},{"group":"LLM Proxy","pages":[{"title":"MeshAgent LLM Proxy","href":"/agents/routing/llm_proxy"},{"title":"Use Codex and Claude with MeshAgent","href":"/agents/routing/use_codex_claude"},{"title":"Local CLI Proxy","href":"/agents/routing/local_cli_proxy"},{"title":"Ask MeshAgent from the CLI","href":"/agents/routing/ask_meshagent_cli"}]},{"group":"LLM Adapters","pages":[{"title":"Adapters Overview","href":"/agents/adapters/index"},{"title":"OpenAI Responses Adapter","href":"/agents/adapters/openai_responses_adapter"},{"title":"OpenAI Tool Response Adapter","href":"/agents/adapters/openai_tool_response_adapter"},{"title":"Anthropic Messages Adapter","href":"/agents/adapters/anthropic_messages_adapter"},{"title":"Anthropic Tool Response Adapter","href":"/agents/adapters/anthropic_tool_response_adapter"}]},{"title":"Queues and Scheduled Tasks","href":"/agents/queues_and_scheduled_tasks"}]},{"group":"Deploy \u0026 Manage","pages":[{"title":"Intro to Services","href":"/services/intro"},{"title":"Deploy a built in Agent","href":"/services/deployment/deploy_builtin_agent"},{"title":"Deploy a Web App","href":"/services/deployment/deploy_web_app"},{"title":"Service YAML","href":"/services/deployment/deploy_services"},{"group":"Containers \u0026 Images","pages":[{"title":"Build and Deploy Images","href":"/services/containers/meshagent_image"},{"title":"MeshAgent Base Images","href":"/services/containers/meshagent_base_images"},{"title":"Optimizing Containers","href":"/services/containers/optimizing_containers"}]},{"group":"Observability","pages":[{"title":"Observability","href":"/observability/overview"},{"title":"Custom Logs, Traces, and Metrics","href":"/observability/custom_telemetry"}]},{"group":"Secrets \u0026 Credentials","pages":[{"title":"Secrets and Credentials","href":"/secrets/overview"},{"title":"User Secrets","href":"/secrets/user_secrets"},{"title":"Service Account Secrets","href":"/secrets/service_account_secrets"},{"title":"HTTP Secret Proxy","href":"/secrets/http_proxy"},{"title":"MCP Secret Proxy","href":"/secrets/mcp_proxy"},{"title":"Image Pull Secrets","href":"/secrets/image_pull_secrets"},{"title":"OAuth Credential Secrets","href":"/secrets/oauth_flows"}]},{"title":"Webhook Handoffs","href":"/services/webhooks"}]},{"group":"Projects","pages":[{"title":"Projects","href":"/project_admin/projects"},{"title":"Project Roles and Access","href":"/project_admin/project_roles"},{"title":"IAM Roles and Permissions","href":"/project_admin/iam_roles_and_permissions"},{"title":"API Keys","href":"/project_admin/api_keys"},{"title":"Integrations","href":"/project_admin/integrations"},{"title":"Registries","href":"/project_admin/registries"},{"title":"Custom Domains","href":"/project_admin/custom_domains"},{"title":"Routes","href":"/project_admin/routes"},{"title":"Scheduled Tasks","href":"/project_admin/scheduled_tasks"},{"title":"Mailboxes","href":"/project_admin/mailboxes"},{"title":"Feeds","href":"/project_admin/feeds"},{"title":"OAuth Clients","href":"/project_admin/oauth"},{"title":"Billing and Usage","href":"/project_admin/billing"}]},{"group":"Product Interfaces","pages":[{"title":"Interfaces Overview","href":"/interfaces/overview"},{"title":"Downloads","href":"/interfaces/desktop_apps"},{"title":"MeshAgent Accounts","href":"/interfaces/accounts"},{"title":"MeshAgent Studio","href":"/interfaces/meshagent_studio"},{"title":"Powerboards","href":"/interfaces/powerboards"}]},{"group":"Developer Reference","pages":[{"title":"MeshAgent CLI Commands","href":"/reference/meshagent_cli_help"},{"group":"REST API \u0026 Access","pages":[{"title":"REST API","href":"/rest_api/overview"},{"title":"Participant Tokens","href":"/rest_api/participant_tokens"},{"title":"API Scopes","href":"/rest_api/api_scopes"}]},{"title":"Machine Setup Guide","href":"/reference/machine_setup"},{"group":"Language SDKs","pages":[{"title":"SDK Overview","href":"/reference/sdk_reference"},{"title":"Install the Python SDK","href":"/reference/python_package_overview"}]},{"group":"UI SDKs","pages":[{"title":"UI SDKs","href":"/flutter/ui_overview"},{"title":"Room Connections","href":"/flutter/room_connection_scope"},{"title":"Document Connections","href":"/flutter/document_connection_scope"}]}]}]}]},"basePath":"","title":"Codex Process Backend - MeshAgent","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":[],"chunks":[]}