DataMind Oda can serve a program of yours instead of a person: an Oda process speaks JSON-RPC over its standard input and output, and your program drives the sessions through it. Use it when a script or another tool of yours should drive Oda without the chat window.
acp). It serves automation clients that speak the Agent Client Protocol: your client initializes the connection, drives sessions, and closes them. The process runs until the client disconnects.sdk). It serves Oda SDK clients. An SDK client starts a runtime of its own and talks to it over standard input and output; the SDK pages start at Oda SDK overview.sdk-minimal). A small standalone runtime with one model adapter and a single shell tool; it is described below.How a serving profile is started, with its flags and one-off tasks, is in Command line. To run the Oda interface in a browser instead, see Oda in the browser.
session/ close.session/ list and session/ resume against the same stored sessions. A resume reconnects the MCP servers its request declares; it does not replay the earlier conversation.--help starts no server. The --help flag prints a profile's help and exits, and leaves standard input and output untouched.The minimal runtime (sdk-minimal) is a small standalone runtime, meant for an SDK client that needs exactly that: one model adapter and a single tool, a persistent shell (bash on macOS and Linux, pwsh on Windows). It deliberately leaves out the shared services of the other modes: there are no settings pages, no managed credentials, no telemetry, no compaction, no filesystem tools, no workspace instructions, no skills, no jobs and no subagents. It stores sessions as plain JSON lines under the Oda home folder.
The minimal runtime runs with full access to the computer: its shell can change any path the process can reach, with no sandbox limits and no approval prompts. Use it only with an isolated workspace.
Both drive Oda over standard input and output. An automation client speaks the Agent Client Protocol to the automation profile; an SDK client uses the Oda SDK, which starts a runtime of its own and speaks the SDK messages. Pick the one your tool already speaks.
Closing standard input shuts the process down cleanly. The sessions are kept, and another process can use session/ and session/ against them; a resume reconnects the MCP servers its request declares, and it does not replay the earlier conversation.
No. A running connection never observes a replaced server, so configuration changes need a restart: stop the process, change the configuration, and start it again.
Keep it off standard output. That stream carries only protocol messages, and your client reads every byte of it; a patch or plugin that prints there breaks the connection. Write your own output to a file, or log on the client's side.
No. It runs with full access, with no sandbox limits and no approval prompts, so its shell can change any path the process can reach. Use it only with an isolated workspace.
The one your client asks for in its initialization request. That request is the only model selection, and it overrides environment defaults.
The context window, about 1,000,000 tokens by default, and the system prompt. The SDK profile's own settings, such as token-limit handling and the bundled Python runtime, are for deployments.
No. It is deliberately small: one model adapter and a single shell tool, with no skills, no filesystem tools, no workspace instructions, no subagents and no settings pages. Choose the SDK profile when you need the usual tool set.