Oda profiles and launchers

DataMind Oda is the desktop app that works with your company's DataMind OS, and it can also run from a command line in named profiles. A profile selects how that run works; this page covers the profiles Oda ships, how a profile is built, and how to add bundles to one.

The shipped profiles

A command-line start names exactly one profile: oda --profile <name>. Oda ships five profiles:

ProfileWhat it serves
webThe Oda interface in a browser on this computer.
headlessAnswers one task and exits.
acpAutomation clients that speak the Agent Client Protocol.
sdkOda SDK clients, over standard input and output.
sdk-minimalA small standalone runtime for SDK clients.

Naming a profile, its flags and its templates is on Command line and flags. The web mode has its own reference on The Oda web interface, one-shot runs are on Headless runs, and the serving profiles are described below.

How a profile is built

Add a bundle to a profile

  1. Install the package into the profile from a command line:

    sh
    oda plugin --profile <name> add <package>
  2. Start the profile again. After the command succeeds, Oda updates the profile's bundle list: a package that carries a patch document joins the profile's layers, and a package that carries none stays an ordinary dependency.

Help without starting

Every shipped profile answers --help the same way: it prints the profile's help and exits with code 0, before its transport starts, and it does not claim standard input or output.

The automation profile

The acp profile serves automation clients that speak the Agent Client Protocol, over standard input and output. It serves one client per process and runs until that client disconnects; closing its standard input shuts it down cleanly. Its help describes it: Serve automation clients over Agent Client Protocol stdio.

The SDK profile

The sdk profile serves Oda SDK clients over newline-delimited JSON-RPC, on standard input and output. One runtime serves one client and runs until that client disconnects; closing its standard input shuts it down cleanly. Its help describes it: Serve DataMind Oda SDK clients over stdio JSON-RPC.

How a client starts and drives a runtime, and the messages it sends, are on Oda SDK overview.

Settings for SDK deployments

The minimal runtime

sdk-minimal is a small standalone runtime for SDK clients: JSON-RPC, one model adapter, a single persistent shell tool, and sessions kept as plain JSON lines under the Oda home folder. It does not layer over Oda's shared core.

Warning

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.

Questions, answered

Which profiles does Oda ship?

web serves the interface in a browser, headless answers one task and exits, acp serves automation clients that speak the Agent Client Protocol, sdk serves Oda SDK clients over standard input and output, and sdk-minimal is a small standalone runtime for SDK clients. Each command-line start names exactly one of them.

What wins when two layers change the same setting?

The last write wins. Layers and your own settings file write the same entries, and a patch replaces the whole setting of the entry it targets, not only the values it names. The profile settings file covers the file your changes live in.

How do I add a package to a profile?

From a command line: oda plugin --profile <name> add <package>. Managing packages from outside Oda needs pnpm on your PATH, and a package that carries a patch document joins the profile's layers once the command succeeds. A running profile keeps the bundle set it started with, so restart it afterwards.

Does --help start the mode?

No. --help prints the profile's help and exits with code 0, before the profile's transport starts, and it does not claim standard input or output.

Can one serving runtime work with more than one client?

No. A serving runtime works with one client and runs until that client disconnects; give each client its own process. Closing standard input shuts the runtime down cleanly.

What must my own profile keep to serve clients?

For automation clients, keep the automation bundle, or another automation bridge, or no client gets an answer. For SDK clients, keep the SDK bundle, or another SDK server, or client initialization fails. Either way, configuration changes need a restart.

Which shell does the minimal runtime use?

A persistent shell: bash on macOS and Linux, pwsh on Windows. It is the runtime's only tool.

Where does the minimal runtime keep its sessions?

As plain JSON lines under the Oda home folder.

What can a deployment change for the SDK profile?

Two settings: whether a run that stops at its token limit counts as accepted or as an error, and the bundled Python runtime for Office document features, which a deployment setting can replace or turn off with an empty value.