| title | Harness capabilities |
|---|
This page lists what each Harness supports on each placement. Core decides admission from the Harness's declaration in internal/harnessconfig/<package>/declaration.go, and the Runtime that runs the Session must also advertise the operation. The linked contracts define each operation; Harness onboarding describes how a Harness is qualified.
Anything this page does not list follows the Harness's native behavior with the selected model, as in a local run. Each adapter guide lists the native defaults it overrides for unattended cloud execution (design rule).
| Status | Meaning |
|---|---|
| Verified | Core admits it, and real-model acceptance through the pinned official client passed on that placement |
| Admitted | Core admits it through the same Runtime path, but no real-model acceptance has run on that placement |
| Rejected | Core rejects the request before execution |
Placements are none (no Environment), hosted (openai_hosted) and self-hosted (self_hosted). microsandbox, E2B and OpenSandbox run the same Runtime and adapters, and every Verified hosted cell counts as Admitted on each. Self-hosted acceptance ran on Linux machines; the self-hosted guide lists the supported platforms. A verified operation is verified on its own, not in every combination with other options; combinations that a profile rejects are listed in the operation's contract.
| Operation | Codex | Claude Code | MiniMax Code |
|---|---|---|---|
| Text Turns, active input, cancellation, restart and continuation | Verified on all placements | Verified on all placements | Verified on all placements |
| Files and Artifacts | Verified: hosted, self-hosted | Verified: hosted, self-hosted | Verified: hosted, self-hosted |
Agent instructions |
Admitted | Admitted | At most 32 KiB; longer instructions are rejected |
| Whitespace-only message text | Admitted; delivered unchanged | Admitted; native drops it, and an all-blank message becomes (no content) |
Rejected |
| Message images | PNG and JPEG data URLs: verified on all placements; other data URLs: admitted; remote URLs: rejected | PNG and JPEG data URLs: verified on all placements; remote URLs and GIF and WebP data URLs: admitted | Rejected |
reasoning.effort |
none, minimal, low, medium, high, xhigh, max: admitted |
low, medium, high, xhigh, max: admitted |
none, minimal, low, medium, high, xhigh, max: admitted |
reasoning.summary |
concise, detailed, auto: admitted |
auto: admitted |
Rejected |
service_tier other than auto |
default, flex, priority, fast: admitted; ultrafast rejected |
Rejected | Rejected |
text.verbosity other than medium |
Admitted; the native model decides | Rejected | Rejected |
Session update of agent.model, reasoning.effort (including null), service_tier and review: auto_review |
Applied on the next root Turn; reasoning.effort cannot be reset to null |
Applied on the next root Turn, except service_tier, which is rejected |
Rejected |
Session update of agent.tools |
Rejected | Rejected | Rejected |
compaction.async: true, experimental.time_awareness: true and the automations and computer_use tools |
Rejected | Rejected | Rejected |
| Public token usage | Measured counters | Null | Null |
Native model parameters and provider protocols per Harness are in model execution.
| Operation | Codex | Claude Code | MiniMax Code |
|---|---|---|---|
| Public functions with text results | Verified: none, hosted; admitted: self-hosted |
Verified on all placements; object-root schemas only | Verified: none; admitted: hosted, self-hosted; object-root schemas only; a result must arrive within 120 s (difference) |
| Function results with images | Verified: none, hosted; admitted: self-hosted; remote URLs: rejected |
Successful results only; PNG and JPEG data URLs: verified on all placements; GIF and WebP: admitted | Rejected |
| Structured output | Admitted on all placements | Verified on all placements | Rejected |
| Deferred function discovery | Rejected | Verified: none, self-hosted; admitted: hosted |
Rejected |
| Disabled web search and programmatic tool calling | Verified: none; admitted: hosted, self-hosted |
Verified: none; admitted: hosted, self-hosted |
Verified: none; admitted: hosted, self-hosted |
Web search cached or live and programmatic tool calling enabled |
Admitted on all placements; enabled is rejected together with multi_agent |
live admitted on all placements; cached and enabled rejected |
Rejected |
| Service-origin HTTP MCP | Verified: none; rejected elsewhere |
Verified: none; rejected elsewhere |
Verified: none, with allowed_tools null and required false only; rejected elsewhere |
| Environment-origin HTTP MCP | Verified: hosted, self-hosted | Verified: hosted, self-hosted | Verified: hosted, self-hosted; allowed_tools null and required false only |
| Stdio MCP | Admitted: hosted, self-hosted | Admitted: hosted, self-hosted; cwd must be the workspace directory and allowed_tools null |
Rejected |
| HTTP MCP bearer credentials | Verified | Verified | Verified |
| Required MCP initialization | Verified | Verified | Rejected |
| Subagents | Verified: hosted; admitted: none, self-hosted |
Verified: hosted; admitted: none, self-hosted |
Verified: hosted; admitted: none, self-hosted |
| Subagents together with functions or HTTP MCP | Verified: none; admitted: hosted, self-hosted |
Verified: functions on none; admitted: HTTP MCP, hosted, self-hosted |
Admitted; children get none of the Session's functions or MCP servers |
Claude structured output requires medium verbosity and combines with multi_agent, Skills, Plugins, capability directories, MCP and tool_search. Claude deferred discovery combines with MCP, Skills, Plugins, capability directories and structured output. Claude Subagents inherit the parent's tools, including deferred functions. Claude Code decides whether tool_search takes effect for the configured model, provider and beta settings. Claude on a workspace placement needs the packaged bridge features for each operation (workspace_functions, workspace_structured_output, workspace_tool_search, workspace_mcp_http).
These operations need a workspace, so they apply to hosted and self-hosted placements only.
| Operation | Codex | Claude Code | MiniMax Code |
|---|---|---|---|
| Initial files, setup commands, Skills and Plugins | Verified: hosted, self-hosted | Verified: self-hosted; admitted: hosted | Verified: self-hosted; admitted: hosted |
| Capability directories | Admitted | Admitted | Admitted |
| npm and Python packages | Admitted | Admitted | Admitted |
packages.system other than null or [] |
Rejected | Rejected | Rejected |
Network disabled or restricted |
Admitted: hosted; rejected: self-hosted | Admitted: hosted; rejected: self-hosted | Admitted: hosted; rejected: self-hosted |
| Plugin MCP over stdio | Verified: hosted, self-hosted | Verified: self-hosted; admitted: hosted | Verified: self-hosted; admitted: hosted |
| Plugin MCP over HTTP | Admitted, with literal headers or HTTPS bearer | Admitted, with literal headers or HTTPS bearer | Verified: self-hosted; admitted: hosted; literal headers or HTTPS bearer |
External workspace storage additionally requires the selected Harness declaration and Runtime to support retained_native_history; E2B and OpenSandbox, which keep their own disks, do not. microsandbox always uses external storage, so MiniMax Code, which does not declare the capability, cannot run on it. The Workspace filesystem protocol owns storage combination admission.