The chat-agent endpoints manage chat-agent definitions stored under the resolving working directory. They expose list / create / copy / rename / delete lifecycle, read / write of the raw markdown source, and targeted frontmatter edits for the model, tool allow-list, and max-turns. Every read is realm-scoped to the gateway’s own realm; a client-supplied X-Hoody-Realm header is ignored. Mutating endpoints require a mutating posture on the daemon side.
GET /api/v1/agent/agents
Lists the chat-agent definitions resolved for the requesting cwd / config_dir (built-in + custom). Realm-scoped to the gateway’s own realm; a client-supplied realm selector is ignored.
Name In Type Required Description pagequery integer No 1-based page number for pagination. limitquery integer No Maximum items per page (0 = no pagination). X-Hoody-Cwdheader string No Per-request working-directory scope (§6.1): the .hoody project layer / record cwd / tool+workflow cwd. Required by routes that resolve a cwd. X-Hoody-Config-Dirheader string No Per-request --config-dir override (§6.1) selecting which on-disk .hoody install a stateless read/write resolves. X-Hoody-Containerheader string No Per-request bound remote container (§6.1; omitted = local). Rejected (400) on routes with no container dimension. X-Hoody-Realmheader string No Per-request realm selector (§6.1): "global" or a 24-hex id (also accepted as ?realm=). Rejected (400 realm_scope_unsupported) on active-only / no-realm routes. realmquery string No Per-request realm selector (§6.1) — the in:query alias of the X-Hoody-Realm header (read only when the header is absent): "global" or a 24-hex id.
"description" : " Reviews PRs and suggests improvements " ,
"model" : " anthropic/claude-opus-4-8 " ,
"tools" : [ " read_file " , " grep " , " bash " ],
"description" : " Explores a codebase to answer questions " ,
"model" : " anthropic/claude-sonnet-4-5 " ,
"tools" : [ " read_file " , " list_dir " , " grep " ],
"message" : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to an active-only / global-no-realm RPC, which has no realm dimension to scope. Omit the realm header on this route, or open a session to scope by realm.
"message" : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not arrive through hoody-proxy: its source IP is private/local (in-container loopback, the bridge, the host, or a sibling container). The gateway has no service-level auth — authorization is owned by hoody-proxy, which is the only party that can reach it (TPROXY preserves the real public client IP). Kit network-position trust. Reach the agent through hoody-proxy (e.g. hoody agent … → platform → proxy), not by connecting to the container directly.
"message" : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded; the gateway throttled the request before dispatch. Honor the Retry-After header and retry; reduce the request rate.
"code" : " internal_error " ,
"message" : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
const { items , meta } = await client . agent . agents . listAgentsIterator ( { page: 1 , limit: 50 } );
GET /api/v1/agent/agents/{name}/source
Returns the raw markdown source (frontmatter + system prompt) of a chat-agent definition.
Name In Type Required Description namepath string Yes Path identifier (the agent name). X-Hoody-Cwdheader string No Per-request working-directory scope (§6.1). X-Hoody-Config-Dirheader string No Per-request --config-dir override (§6.1). X-Hoody-Containerheader string No Per-request bound remote container (§6.1; omitted = local). X-Hoody-Realmheader string No Per-request realm selector (§6.1). realmquery string No Per-request realm selector (§6.1) — the in:query alias of the X-Hoody-Realm header.
"content" : " --- \n model: anthropic/claude-opus-4-8 \n tools: [read_file, grep, bash] \n turns: 25 \n description: Reviews PRs and suggests improvements \n --- \n\n You are a code reviewer. Read the diff, identify issues, and propose targeted fixes. \n " ,
"message" : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to an active-only / global-no-realm RPC. Omit the realm header on this route, or open a session to scope by realm.
"message" : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not arrive through hoody-proxy. Reach the agent through hoody-proxy, not by connecting to the container directly.
"message" : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
"message" : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded; the gateway throttled the request before dispatch. Honor the Retry-After header and retry; reduce the request rate.
"code" : " internal_error " ,
"message" : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
"code" : " service_unavailable " ,
"message" : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request (too busy, or a per-client stream concurrency cap was hit). Honor Retry-After and retry.
const source = await client . agent . agents . getAgentSource ( { name: " code-reviewer " } );
POST /api/v1/agent/agents
Creates (or overwrites) a custom chat-agent definition file from a name + frontmatter + system prompt.
Name In Type Required Description X-Hoody-Cwdheader string No Per-request working-directory scope (§6.1). X-Hoody-Config-Dirheader string No Per-request --config-dir override (§6.1). X-Hoody-Containerheader string No Per-request bound remote container (§6.1; omitted = local). X-Hoody-Realmheader string No Per-request realm selector (§6.1). realmquery string No Per-request realm selector (§6.1) — the in:query alias of the X-Hoody-Realm header.
Field Type Required Description namestring Yes Agent name (the definition file stem). frontmatterobject No Optional frontmatter keys (model / tools / turns / description). system_promptstring No The agent’s system prompt body.
"model" : " anthropic/claude-opus-4-8 " ,
"tools" : [ " read_file " , " grep " , " bash " ],
"description" : " Reviews PRs and suggests improvements "
"system_prompt" : " You are a code reviewer. Read the diff, identify issues, and propose targeted fixes. "
"path" : " /home/user/project/.hoody/agents/code-reviewer.md " ,
"message" : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to an active-only / global-no-realm RPC. Omit the realm header on this route, or open a session to scope by realm.
"message" : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not arrive through hoody-proxy. Reach the agent through hoody-proxy, not by connecting to the container directly.
"message" : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
"code" : " payload_too_large " ,
"message" : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). The gateway rejects an oversized body at the edge before the handler reads it. Reduce the request body below the configured limit (default 8 MiB); split a large payload into smaller requests.
"message" : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded; the gateway throttled the request before dispatch. Honor the Retry-After header and retry; reduce the request rate.
"code" : " internal_error " ,
"message" : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
"code" : " service_unavailable " ,
"message" : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request (too busy, or a per-client stream concurrency cap was hit). Honor Retry-After and retry.
await client . agent . agents . createAgent ({
model: " anthropic/claude-opus-4-8 " ,
tools: [ " read_file " , " grep " , " bash " ],
description: " Reviews PRs and suggests improvements "
system_prompt: " You are a code reviewer. Read the diff, identify issues, and propose targeted fixes. "
POST /api/v1/agent/agents/{name}/copy
Copies a chat-agent definition to a new name.
Name In Type Required Description namepath string Yes Path identifier (the source agent name). X-Hoody-Cwdheader string No Per-request working-directory scope (§6.1). X-Hoody-Config-Dirheader string No Per-request --config-dir override (§6.1). X-Hoody-Containerheader string No Per-request bound remote container (§6.1; omitted = local). X-Hoody-Realmheader string No Per-request realm selector (§6.1). realmquery string No Per-request realm selector (§6.1) — the in:query alias of the X-Hoody-Realm header.
Field Type Required Description new_namestring Yes Name for the copied agent.
"new_name" : " code-reviewer-strict "
"name" : " code-reviewer-strict " ,
"path" : " /home/user/project/.hoody/agents/code-reviewer-strict.md " ,
"source" : " code-reviewer "
"message" : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to an active-only / global-no-realm RPC. Omit the realm header on this route, or open a session to scope by realm.
"message" : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not arrive through hoody-proxy. Reach the agent through hoody-proxy, not by connecting to the container directly.
"message" : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
"code" : " payload_too_large " ,
"message" : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). Reduce the request body below the configured limit (default 8 MiB); split a large payload into smaller requests.
"message" : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded; the gateway throttled the request before dispatch. Honor the Retry-After header and retry; reduce the request rate.
"code" : " internal_error " ,
"message" : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
"code" : " service_unavailable " ,
"message" : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request (too busy, or a per-client stream concurrency cap was hit). Honor Retry-After and retry.
await client . agent . agents . copyAgent ({
data: { new_name: " code-reviewer-strict " }
POST /api/v1/agent/agents/{name}/rename
Renames a custom chat-agent definition.
Name In Type Required Description namepath string Yes Path identifier (the current agent name). X-Hoody-Cwdheader string No Per-request working-directory scope (§6.1). X-Hoody-Config-Dirheader string No Per-request --config-dir override (§6.1). X-Hoody-Containerheader string No Per-request bound remote container (§6.1; omitted = local). X-Hoody-Realmheader string No Per-request realm selector (§6.1). realmquery string No Per-request realm selector (§6.1) — the in:query alias of the X-Hoody-Realm header.
Field Type Required Description new_namestring Yes New agent name.
"new_name" : " code-reviewer-v2 "
"name" : " code-reviewer-v2 " ,
"old_name" : " code-reviewer "
"message" : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to an active-only / global-no-realm RPC. Omit the realm header on this route, or open a session to scope by realm.
"message" : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not arrive through hoody-proxy. Reach the agent through hoody-proxy, not by connecting to the container directly.
"message" : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
"code" : " payload_too_large " ,
"message" : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). Reduce the request body below the configured limit (default 8 MiB); split a large payload into smaller requests.
"message" : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded; the gateway throttled the request before dispatch. Honor the Retry-After header and retry; reduce the request rate.
"code" : " internal_error " ,
"message" : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
"code" : " service_unavailable " ,
"message" : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request (too busy, or a per-client stream concurrency cap was hit). Honor Retry-After and retry.
await client . agent . agents . renameAgent ({
data: { new_name: " code-reviewer-v2 " }
POST /api/v1/agent/agents/{name}/reset-to-shipped
Restores one agent to its shipped default, discarding local customizations. An agent with no shipped default is refused.
Name In Type Required Description namepath string Yes Path identifier (the agent name). X-Hoody-Cwdheader string No Per-request working-directory scope (§6.1). X-Hoody-Config-Dirheader string No Per-request --config-dir override (§6.1). X-Hoody-Containerheader string No Per-request bound remote container (§6.1; omitted = local). X-Hoody-Realmheader string No Per-request realm selector (§6.1). realmquery string No Per-request realm selector (§6.1) — the in:query alias of the X-Hoody-Realm header.
"output" : " Agent 'code-reviewer' reset to shipped default. " ,
"message" : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. tool_mutation_refusedTool mutation refused A sessionless tool run resolved to a mutating tool with no confirmation posture. Sessionless runs are read-only by default. Open a session and run the tool there, or supply allow_mutations:true / confirm:true on the sessionless run. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to an active-only / global-no-realm RPC. Omit the realm header on this route, or open a session to scope by realm.
"message" : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not arrive through hoody-proxy. Reach the agent through hoody-proxy, not by connecting to the container directly.
"code" : " tool_not_found " ,
"message" : " no tool with that name "
Error Code Title Description Resolution tool_not_foundTool not found No tool with the given name exists in the catalogue or in the session’s effective tool list. List the catalogue (GET /tools) or the session’s tools (GET /sessions/{id}/tools) and use a valid name.
"code" : " payload_too_large " ,
"message" : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). Reduce the request body below the configured limit (default 8 MiB); split a large payload into smaller requests.
"message" : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded; the gateway throttled the request before dispatch. Honor the Retry-After header and retry; reduce the request rate.
"code" : " internal_error " ,
"message" : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
await client . agent . agents . resetAgentToShipped ({ name: " code-reviewer " });
POST /api/v1/agent/agents/{name}/tools/{tool}/toggle
Toggles one tool on/off in an agent’s frontmatter tools line. Omit enabled to flip the current state; supply an explicit enabled to force on/off.
Name In Type Required Description namepath string Yes Path identifier (the agent name). toolpath string Yes Path identifier (the tool name). X-Hoody-Cwdheader string No Per-request working-directory scope (§6.1). X-Hoody-Config-Dirheader string No Per-request --config-dir override (§6.1). X-Hoody-Containerheader string No Per-request bound remote container (§6.1; omitted = local). X-Hoody-Realmheader string No Per-request realm selector (§6.1). realmquery string No Per-request realm selector (§6.1) — the in:query alias of the X-Hoody-Realm header.
The body is a free-form pass-through to the daemon agents.toggle_tool RPC. Accepted fields are exactly those agents.toggle_tool reads; the most common is enabled.
"message" : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to an active-only / global-no-realm RPC. Omit the realm header on this route, or open a session to scope by realm.
"message" : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not arrive through hoody-proxy. Reach the agent through hoody-proxy, not by connecting to the container directly.
"message" : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
"code" : " payload_too_large " ,
"message" : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). Reduce the request body below the configured limit (default 8 MiB); split a large payload into smaller requests.
"message" : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded; the gateway throttled the request before dispatch. Honor the Retry-After header and retry; reduce the request rate.
"code" : " internal_error " ,
"message" : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
"code" : " service_unavailable " ,
"message" : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request (too busy, or a per-client stream concurrency cap was hit). Honor Retry-After and retry.
await client . agent . agents . toggleAgentTool ({
PUT /api/v1/agent/agents/{name}/source
Overwrites the raw markdown source of a chat-agent definition. Supply base_gen from a prior read to opt into conflict detection.
Name In Type Required Description namepath string Yes Path identifier (the agent name). X-Hoody-Cwdheader string No Per-request working-directory scope (§6.1). X-Hoody-Config-Dirheader string No Per-request --config-dir override (§6.1). X-Hoody-Containerheader string No Per-request bound remote container (§6.1; omitted = local). X-Hoody-Realmheader string No Per-request realm selector (§6.1). realmquery string No Per-request realm selector (§6.1) — the in:query alias of the X-Hoody-Realm header.
Field Type Required Description contentstring Yes The full markdown source (frontmatter + system prompt). base_geninteger No The gen returned by agents.read_source, for conflict detection.
"content" : " --- \n model: anthropic/claude-sonnet-4-5 \n tools: [read_file, grep] \n turns: 20 \n description: Reviews PRs with a strict lens \n --- \n\n You are a strict code reviewer. Reject any change that lacks tests. \n " ,
"message" : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to an active-only / global-no-realm RPC. Omit the realm header on this route, or open a session to scope by realm.
"message" : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not arrive through hoody-proxy. Reach the agent through hoody-proxy, not by connecting to the container directly.
"message" : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
"code" : " payload_too_large " ,
"message" : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). Reduce the request body below the configured limit (default 8 MiB); split a large payload into smaller requests.
"message" : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded; the gateway throttled the request before dispatch. Honor the Retry-After header and retry; reduce the request rate.
"code" : " internal_error " ,
"message" : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
"code" : " service_unavailable " ,
"message" : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request (too busy, or a per-client stream concurrency cap was hit). Honor Retry-After and retry.
await client . agent . agents . putAgentSource ({
content: " --- \n model: anthropic/claude-sonnet-4-5 \n tools: [read_file, grep] \n turns: 20 \n description: Reviews PRs with a strict lens \n --- \n\n You are a strict code reviewer. Reject any change that lacks tests. \n " ,
PATCH /api/v1/agent/agents/{name}/model
Sets (or, with model: "", removes) an agent’s frontmatter model line.
Name In Type Required Description namepath string Yes Path identifier (the agent name). X-Hoody-Cwdheader string No Per-request working-directory scope (§6.1). X-Hoody-Config-Dirheader string No Per-request --config-dir override (§6.1). X-Hoody-Containerheader string No Per-request bound remote container (§6.1; omitted = local). X-Hoody-Realmheader string No Per-request realm selector (§6.1). realmquery string No Per-request realm selector (§6.1) — the in:query alias of the X-Hoody-Realm header.
Field Type Required Description modelstring No Model spec (e.g. anthropic/claude-opus-4-8); "" removes the frontmatter model line.
"model" : " anthropic/claude-opus-4-8 "
"model" : " anthropic/claude-opus-4-8 "
"message" : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to an active-only / global-no-realm RPC. Omit the realm header on this route, or open a session to scope by realm.
"message" : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not arrive through hoody-proxy. Reach the agent through hoody-proxy, not by connecting to the container directly.
"message" : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
"code" : " payload_too_large " ,
"message" : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). Reduce the request body below the configured limit (default 8 MiB); split a large payload into smaller requests.
"message" : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded; the gateway throttled the request before dispatch. Honor the Retry-After header and retry; reduce the request rate.
"code" : " internal_error " ,
"message" : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
"code" : " service_unavailable " ,
"message" : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request (too busy, or a per-client stream concurrency cap was hit). Honor Retry-After and retry.
await client . agent . agents . setAgentModel ({
data: { model: " anthropic/claude-opus-4-8 " }
PATCH /api/v1/agent/agents/{name}/tools
Sets (or, with an empty list, removes — “all tools”) an agent’s frontmatter tools line.
Name In Type Required Description namepath string Yes Path identifier (the agent name). X-Hoody-Cwdheader string No Per-request working-directory scope (§6.1). X-Hoody-Config-Dirheader string No Per-request --config-dir override (§6.1). X-Hoody-Containerheader string No Per-request bound remote container (§6.1; omitted = local). X-Hoody-Realmheader string No Per-request realm selector (§6.1). realmquery string No Per-request realm selector (§6.1) — the in:query alias of the X-Hoody-Realm header.
Field Type Required Description toolsarray No Tool names allowed for the agent; an empty list removes the line (= all tools).
"tools" : [ " read_file " , " grep " , " bash " ]
"tools" : [ " read_file " , " grep " , " bash " ]
"message" : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to an active-only / global-no-realm RPC. Omit the realm header on this route, or open a session to scope by realm.
"message" : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not arrive through hoody-proxy. Reach the agent through hoody-proxy, not by connecting to the container directly.
"message" : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
"code" : " payload_too_large " ,
"message" : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). Reduce the request body below the configured limit (default 8 MiB); split a large payload into smaller requests.
"message" : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded; the gateway throttled the request before dispatch. Honor the Retry-After header and retry; reduce the request rate.
"code" : " internal_error " ,
"message" : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
"code" : " service_unavailable " ,
"message" : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request (too busy, or a per-client stream concurrency cap was hit). Honor Retry-After and retry.
await client . agent . agents . setAgentTools ({
data: { tools: [ " read_file " , " grep " , " bash " ] }
PATCH /api/v1/agent/agents/{name}/turns
Sets an agent’s max-turns frontmatter value.
Name In Type Required Description namepath string Yes Path identifier (the agent name). X-Hoody-Cwdheader string No Per-request working-directory scope (§6.1). X-Hoody-Config-Dirheader string No Per-request --config-dir override (§6.1). X-Hoody-Containerheader string No Per-request bound remote container (§6.1; omitted = local). X-Hoody-Realmheader string No Per-request realm selector (§6.1). realmquery string No Per-request realm selector (§6.1) — the in:query alias of the X-Hoody-Realm header.
Field Type Required Description turnsinteger No Max agent turns per dispatch.
"message" : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to an active-only / global-no-realm RPC. Omit the realm header on this route, or open a session to scope by realm.
"message" : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not arrive through hoody-proxy. Reach the agent through hoody-proxy, not by connecting to the container directly.
"message" : " resource not found "
Error Code Title Description Resolution not_foundNot found The requested resource does not exist. Verify the path and identifier.
"code" : " payload_too_large " ,
"message" : " request body exceeds the configured size limit "
Error Code Title Description Resolution payload_too_largePayload too large The request body exceeds the configured size cap (MaxBodyBytes). Reduce the request body below the configured limit (default 8 MiB); split a large payload into smaller requests.
"message" : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded; the gateway throttled the request before dispatch. Honor the Retry-After header and retry; reduce the request rate.
"code" : " internal_error " ,
"message" : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
"code" : " service_unavailable " ,
"message" : " service unavailable "
Error Code Title Description Resolution service_unavailableService unavailable The daemon could not service the request (too busy, or a per-client stream concurrency cap was hit). Honor Retry-After and retry.
await client . agent . agents . setAgentTurns ({
DELETE /api/v1/agent/agents/{name}
Deletes one custom chat-agent definition. Shipped-default agents and the configured default chat agent are refused by the daemon guard rails (use putAgentSource or resetAgentToShipped instead).
Name In Type Required Description namepath string Yes Path identifier (the agent name). X-Hoody-Cwdheader string No Per-request working-directory scope (§6.1). X-Hoody-Config-Dirheader string No Per-request --config-dir override (§6.1). X-Hoody-Containerheader string No Per-request bound remote container (§6.1; omitted = local). X-Hoody-Realmheader string No Per-request realm selector (§6.1). realmquery string No Per-request realm selector (§6.1) — the in:query alias of the X-Hoody-Realm header.
"output" : " Agent 'code-reviewer' deleted. " ,
"message" : " invalid request "
Error Code Title Description Resolution bad_requestBad request The request was malformed or carried invalid parameters. Correct the request body or query parameters. tool_mutation_refusedTool mutation refused A sessionless tool run resolved to a mutating tool with no confirmation posture. Sessionless runs are read-only by default. Open a session and run the tool there, or supply allow_mutations:true / confirm:true on the sessionless run. realm_scope_unsupportedRealm scope unsupported A per-request realm header was supplied to an active-only / global-no-realm RPC. Omit the realm header on this route, or open a session to scope by realm.
"message" : " request must arrive through the Hoody proxy "
Error Code Title Description Resolution forbiddenForbidden (not via the Hoody proxy) The request did not arrive through hoody-proxy. Reach the agent through hoody-proxy, not by connecting to the container directly.
"code" : " tool_not_found " ,
"message" : " no tool with that name "
Error Code Title Description Resolution tool_not_foundTool not found No tool with the given name exists in the catalogue or in the session’s effective tool list. List the catalogue (GET /tools) or the session’s tools (GET /sessions/{id}/tools) and use a valid name.
"message" : " request rate limit exceeded "
Error Code Title Description Resolution rate_limitedToo many requests The per-client request rate limit was exceeded; the gateway throttled the request before dispatch. Honor the Retry-After header and retry; reduce the request rate.
"code" : " internal_error " ,
"message" : " internal server error "
Error Code Title Description Resolution internal_errorInternal error An unexpected error occurred while handling the request. Retry; if persistent, inspect the daemon logs.
await client . agent . agents . deleteAgent ({ name: " code-reviewer " });