Skip to main content

goose ACP Reference

This reference documents goose-specific Agent Client Protocol methods. Standard ACP methods are documented by the Agent Client Protocol specification.

goose version: v1.55.0

This file is generated from crates/goose/acp-schema.json and crates/goose/acp-meta.json. Do not edit it manually.

Client-to-agent requests​

MethodSchemas
_goose/unstable/agent-mentions/list
List user-facing agent mention targets for @ autocomplete.
Request: ListAgentMentionsRequest_unstable
Response: ListAgentMentionsResponse_unstable
_goose/unstable/apps/delete
Delete a goose app by name.
Request: AppsDeleteRequest_unstable
Response: AppsDeleteResponse_unstable
_goose/unstable/apps/export
Export a goose app as HTML.
Request: AppsExportRequest_unstable
Response: AppsExportResponse_unstable
_goose/unstable/apps/import
Import a goose app from HTML.
Request: AppsImportRequest_unstable
Response: AppsImportResponse_unstable
_goose/unstable/apps/list
List available goose apps, optionally scoped to a session.
Request: AppsListRequest_unstable
Response: AppsListResponse_unstable
_goose/unstable/config/extensions/add
Persist a new extension to the user's global goose config.
Request: AddConfigExtensionRequest_unstable
Response: EmptyResponse
_goose/unstable/config/extensions/list
List configured extensions and any warnings.
Request: GetConfigExtensionsRequest_unstable
Response: GetConfigExtensionsResponse_unstable
_goose/unstable/config/extensions/remove
Remove a persisted extension from the user's global goose config.
Request: RemoveConfigExtensionRequest_unstable
Response: EmptyResponse
_goose/unstable/config/extensions/set-enabled
Set the enabled flag for a persisted extension in the user's global goose config.
Request: SetConfigExtensionEnabledRequest_unstable
Response: EmptyResponse
_goose/unstable/config/prompts/get
Read a goose prompt template.
Request: GetPromptRequest_unstable
Response: GetPromptResponse_unstable
_goose/unstable/config/prompts/list
List all available goose prompt templates.
Request: ListPromptsRequest_unstable
Response: ListPromptsResponse_unstable
_goose/unstable/config/prompts/reset
Reset a goose prompt template to its default content.
Request: ResetPromptRequest_unstable
Response: PromptOperationResponse_unstable
_goose/unstable/config/prompts/save
Save a custom goose prompt template.
Request: SavePromptRequest_unstable
Response: PromptOperationResponse_unstable
_goose/unstable/config/read
Read one goose configuration value.
Request: ConfigReadRequest_unstable
Response: ConfigReadResponse_unstable
_goose/unstable/config/read-all
Read all non-secret goose configuration values.
Request: ConfigReadAllRequest_unstable
Response: ConfigReadAllResponse_unstable
_goose/unstable/config/remove
Remove one goose configuration value.
Request: ConfigRemoveRequest_unstable
Response: EmptyResponse
_goose/unstable/config/upsert
Create or replace one goose configuration value.
Request: ConfigUpsertRequest_unstable
Response: EmptyResponse
_goose/unstable/defaults/clear
Clear goose default provider and model configuration.
Request: DefaultsClearRequest_unstable
Response: DefaultsReadResponse_unstable
_goose/unstable/defaults/read
Read goose default provider and model configuration.
Request: DefaultsReadRequest_unstable
Response: DefaultsReadResponse_unstable
_goose/unstable/defaults/save
Save goose default provider and model configuration.
Request: DefaultsSaveRequest_unstable
Response: DefaultsReadResponse_unstable
_goose/unstable/diagnostics/getRequest: DiagnosticsGetRequest_unstable
Response: DiagnosticsGetResponse_unstable
_goose/unstable/dictation/config
Get the configuration status of all dictation providers.
Request: DictationConfigRequest_unstable
Response: DictationConfigResponse_unstable
_goose/unstable/dictation/models/cancel
Cancel an in-flight download.
Request: DictationModelCancelRequest_unstable
Response: EmptyResponse
_goose/unstable/dictation/models/delete
Delete a downloaded local Whisper model from disk.
Request: DictationModelDeleteRequest_unstable
Response: EmptyResponse
_goose/unstable/dictation/models/download
Kick off a background download of a local Whisper model.
Request: DictationModelDownloadRequest_unstable
Response: EmptyResponse
_goose/unstable/dictation/models/download/progress
Poll the progress of an in-flight download.
Request: DictationModelDownloadProgressRequest_unstable
Response: DictationModelDownloadProgressResponse_unstable
_goose/unstable/dictation/models/list
List available local Whisper models with their download status.
Request: DictationModelsListRequest_unstable
Response: DictationModelsListResponse_unstable
_goose/unstable/dictation/transcribe
Transcribe audio via a dictation provider.
Request: DictationTranscribeRequest_unstable
Response: DictationTranscribeResponse_unstable
_goose/unstable/local-inference/chat-templates/builtin/list
List built-in chat templates for local inference.
Request: LocalInferenceBuiltinChatTemplatesListRequest_unstable
Response: LocalInferenceBuiltinChatTemplatesListResponse_unstable
_goose/unstable/local-inference/huggingface/repo/variants
List downloadable variants of a Hugging Face model repository.
Request: LocalInferenceHuggingFaceRepoVariantsRequest_unstable
Response: LocalInferenceHuggingFaceRepoVariantsResponse_unstable
_goose/unstable/local-inference/huggingface/search
Search Hugging Face for local inference models.
Request: LocalInferenceHuggingFaceSearchRequest_unstable
Response: LocalInferenceHuggingFaceSearchResponse_unstable
_goose/unstable/local-inference/models/delete
Delete a downloaded local inference model.
Request: LocalInferenceModelDeleteRequest_unstable
Response: EmptyResponse
_goose/unstable/local-inference/models/download
Download a model for local inference.
Request: LocalInferenceModelDownloadRequest_unstable
Response: LocalInferenceModelDownloadResponse_unstable
_goose/unstable/local-inference/models/download/cancel
Cancel a local model download.
Request: LocalInferenceModelDownloadCancelRequest_unstable
Response: EmptyResponse
_goose/unstable/local-inference/models/download/progress
Get the progress of a local model download.
Request: LocalInferenceModelDownloadProgressRequest_unstable
Response: LocalInferenceModelDownloadProgressResponse_unstable
_goose/unstable/local-inference/models/evict
Evict a local inference model from memory.
Request: LocalInferenceModelEvictRequest_unstable
Response: EmptyResponse
_goose/unstable/local-inference/models/list
List locally available inference models.
Request: LocalInferenceModelsListRequest_unstable
Response: LocalInferenceModelsListResponse_unstable
_goose/unstable/local-inference/models/settings/read
Read the sampling settings for a local inference model.
Request: LocalInferenceModelSettingsReadRequest_unstable
Response: LocalInferenceModelSettingsReadResponse_unstable
_goose/unstable/local-inference/models/settings/update
Update the sampling settings for a local inference model.
Request: LocalInferenceModelSettingsUpdateRequest_unstable
Response: LocalInferenceModelSettingsUpdateResponse_unstable
_goose/unstable/onboarding/import/apply
Import selected onboarding candidates.
Request: OnboardingImportApplyRequest_unstable
Response: OnboardingImportApplyResponse_unstable
_goose/unstable/onboarding/import/scan
Scan for existing goose and compatible app data that onboarding can import.
Request: OnboardingImportScanRequest_unstable
Response: OnboardingImportScanResponse_unstable
_goose/unstable/preferences/read
Read allowlisted user preferences. Empty keys means all supported preferences.
Request: PreferencesReadRequest_unstable
Response: PreferencesReadResponse_unstable
_goose/unstable/preferences/save
Save allowlisted user preferences.
Request: PreferencesSaveRequest_unstable
Response: EmptyResponse
_goose/unstable/providers/canonical-model-info
Look up canonical (bundled-registry) model info for a provider/model pair.
Request: CanonicalModelInfoRequest_unstable
Response: CanonicalModelInfoResponse_unstable
_goose/unstable/providers/catalog/list
List custom-provider catalog entries. Omit format to list all formats.
Request: ProviderCatalogListRequest_unstable
Response: ProviderCatalogListResponse_unstable
_goose/unstable/providers/catalog/template
Return the editable template for one catalog provider.
Request: ProviderCatalogTemplateRequest_unstable
Response: ProviderCatalogTemplateResponse_unstable
_goose/unstable/providers/config/authenticate
Run a provider-owned native authentication flow and start an inventory refresh when supported.
Request: ProviderConfigAuthenticateRequest_unstable
Response: ProviderConfigChangeResponse_unstable
_goose/unstable/providers/config/delete
Delete provider configuration fields and start an inventory refresh when supported.
Request: ProviderConfigDeleteRequest_unstable
Response: ProviderConfigChangeResponse_unstable
_goose/unstable/providers/config/read
Read saved configuration field values for one provider.
Request: ProviderConfigReadRequest_unstable
Response: ProviderConfigReadResponse_unstable
_goose/unstable/providers/config/save
Save provider configuration fields and start an inventory refresh when supported.
Request: ProviderConfigSaveRequest_unstable
Response: ProviderConfigChangeResponse_unstable
_goose/unstable/providers/config/status
Return provider configured statuses. Empty provider_ids means all providers.
Request: ProviderConfigStatusRequest_unstable
Response: ProviderConfigStatusResponse_unstable
_goose/unstable/providers/custom/create
Create a custom provider backed by goose's declarative provider store.
Request: CustomProviderCreateRequest_unstable
Response: CustomProviderCreateResponse_unstable
_goose/unstable/providers/custom/delete
Delete a custom provider from goose's declarative provider store.
Request: CustomProviderDeleteRequest_unstable
Response: CustomProviderDeleteResponse_unstable
_goose/unstable/providers/custom/read
Read a declarative provider config. Custom configs are editable; bundled configs are read-only.
Request: CustomProviderReadRequest_unstable
Response: CustomProviderReadResponse_unstable
_goose/unstable/providers/custom/update
Update a custom provider backed by goose's declarative provider store.
Request: CustomProviderUpdateRequest_unstable
Response: CustomProviderUpdateResponse_unstable
_goose/unstable/providers/inventory/refresh
Trigger a background refresh of provider inventories.
Request: RefreshProviderInventoryRequest_unstable
Response: RefreshProviderInventoryResponse_unstable
_goose/unstable/providers/list
List providers with setup metadata and the current model inventory snapshot.
Request: ListProvidersRequest_unstable
Response: ListProvidersResponse_unstable
_goose/unstable/providers/readiness/check
Check whether an ACP provider can initialize and create a session.
Request: ProviderReadinessCheckRequest_unstable
Response: ProviderReadinessCheckResponse_unstable
_goose/unstable/providers/secrets/delete
Delete a locally stored provider credential by id.
Request: ProviderSecretDeleteRequest_unstable
Response: EmptyResponse
_goose/unstable/providers/secrets/list
List provider credentials stored locally by goose.
Request: ProviderSecretsListRequest_unstable
Response: ProviderSecretsListResponse_unstable
_goose/unstable/providers/setup/catalog/list
List provider setup catalog entries
Request: ProviderSetupCatalogListRequest_unstable
Response: ProviderSetupCatalogListResponse_unstable
_goose/unstable/providers/supported-models/list
List the raw model identifiers returned by a provider's live supported-models API.
Request: ProviderSupportedModelsListRequest_unstable
Response: ProviderSupportedModelsListResponse_unstable
_goose/unstable/recipes/decode
Decode a goose deep link into a recipe.
Request: DecodeRecipeRequest_unstable
Response: DecodeRecipeResponse_unstable
_goose/unstable/recipes/delete
Delete a recipe from the local recipe library.
Request: DeleteRecipeRequest_unstable
Response: EmptyResponse
_goose/unstable/recipes/encode
Encode a recipe as a goose deep link.
Request: EncodeRecipeRequest_unstable
Response: EncodeRecipeResponse_unstable
_goose/unstable/recipes/list
List recipes in the local recipe library.
Request: ListRecipesRequest_unstable
Response: ListRecipesResponse_unstable
_goose/unstable/recipes/parse
Parse serialized recipe content.
Request: ParseRecipeRequest_unstable
Response: ParseRecipeResponse_unstable
_goose/unstable/recipes/save
Save a recipe to the local recipe library.
Request: SaveRecipeRequest_unstable
Response: SaveRecipeResponse_unstable
_goose/unstable/recipes/scan
Scan a recipe for security warnings.
Request: ScanRecipeRequest_unstable
Response: ScanRecipeResponse_unstable
_goose/unstable/recipes/schedule
Set or clear a recipe's cron schedule.
Request: ScheduleRecipeRequest_unstable
Response: EmptyResponse
_goose/unstable/recipes/slash-command
Set or clear a recipe's slash command.
Request: SetRecipeSlashCommandRequest_unstable
Response: EmptyResponse
_goose/unstable/recipes/to-yaml
Serialize a recipe as YAML.
Request: RecipeToYamlRequest_unstable
Response: RecipeToYamlResponse_unstable
_goose/unstable/resources/read
Read a resource from an extension.
Request: ReadResourceRequest_unstable
Response: ReadResourceResponse_unstable
_goose/unstable/schedules/create
Create a scheduled recipe job.
Request: CreateScheduleRequest_unstable
Response: CreateScheduleResponse_unstable
_goose/unstable/schedules/delete
Delete a scheduled recipe job.
Request: DeleteScheduleRequest_unstable
Response: EmptyResponse
_goose/unstable/schedules/list
List scheduled recipe jobs.
Request: ListSchedulesRequest_unstable
Response: ListSchedulesResponse_unstable
_goose/unstable/schedules/pause
Pause a scheduled recipe job.
Request: PauseScheduleRequest_unstable
Response: EmptyResponse
_goose/unstable/schedules/run-now
Run a scheduled recipe job immediately.
Request: RunScheduleNowRequest_unstable
Response: RunScheduleNowResponse_unstable
_goose/unstable/schedules/running-job/inspect
Inspect the current state of a running scheduled job.
Request: InspectRunningJobRequest_unstable
Response: InspectRunningJobResponse_unstable
_goose/unstable/schedules/running-job/kill
Stop a currently running scheduled job.
Request: KillRunningJobRequest_unstable
Response: KillRunningJobResponse_unstable
_goose/unstable/schedules/sessions/list
List recent sessions created by a scheduled recipe job.
Request: ListScheduleSessionsRequest_unstable
Response: ListScheduleSessionsResponse_unstable
_goose/unstable/schedules/unpause
Resume a paused scheduled recipe job.
Request: UnpauseScheduleRequest_unstable
Response: EmptyResponse
_goose/unstable/schedules/update
Update the cron expression for a scheduled recipe job.
Request: UpdateScheduleRequest_unstable
Response: UpdateScheduleResponse_unstable
_goose/unstable/session/archive
Archive a session (soft delete).
Request: ArchiveSessionRequest_unstable
Response: EmptyResponse
_goose/unstable/session/conversation/truncate
Truncate a session conversation from the given message timestamp onward.
Request: TruncateSessionConversationRequest_unstable
Response: EmptyResponse
_goose/unstable/session/export
Export a session as a JSON or markdown string.
Request: ExportSessionRequest_unstable
Response: ExportSessionResponse_unstable
_goose/unstable/session/extensions/add
Add an extension to an active session.
Request: AddSessionExtensionRequest_unstable
Response: EmptyResponse
_goose/unstable/session/extensions/list
List extensions enabled for an active session.
Request: GetSessionExtensionsRequest_unstable
Response: GetSessionExtensionsResponse_unstable
_goose/unstable/session/extensions/remove
Remove an extension from an active session.
Request: RemoveSessionExtensionRequest_unstable
Response: EmptyResponse
_goose/unstable/session/import
Import a session from a serialized session JSON string.
Request: ImportSessionRequest_unstable
Response: ImportSessionResponse_unstable
_goose/unstable/session/info
Return list-style metadata for a single session without loading the conversation.
Request: GetSessionInfoRequest_unstable
Response: GetSessionInfoResponse_unstable
_goose/unstable/session/live-voice/availability
Ask whether a new or existing chat can enter direct Live voice.
Request: LiveVoiceAvailabilityRequest_unstable
Response: LiveVoiceAvailabilityResponse_unstable
_goose/unstable/session/live-voice/start
Get a diagnostic report for a session.
Request: LiveVoiceStartRequest_unstable
Response: LiveVoiceStartResponse_unstable
_goose/unstable/session/live-voice/stopRequest: LiveVoiceStopRequest_unstable
Response: EmptyResponse
_goose/unstable/session/project/update
Update the project association for a session.
Request: UpdateSessionProjectRequest_unstable
Response: EmptyResponse
_goose/unstable/session/rename
Rename a session.
Request: RenameSessionRequest_unstable
Response: EmptyResponse
_goose/unstable/session/steer
Add user input to the currently active prompt without starting a new prompt.
Request: SteerSessionRequest_unstable
Response: SteerSessionResponse_unstable
_goose/unstable/session/system-prompt/set
Set, append, or clear system prompt text for a session.

mode: "set" replaces goose's base system prompt. mode: "append" adds an
instruction under "Additional Instructions". Reusing a key replaces the
previous value for that mode/key; sending empty text clears it.
Request: SetSessionSystemPromptRequest_unstable
Response: EmptyResponse
_goose/unstable/session/unarchive
Unarchive a previously archived session.
Request: UnarchiveSessionRequest_unstable
Response: EmptyResponse
_goose/unstable/session/working-dir/update
Update the working directory for a session.
Request: UpdateWorkingDirRequest_unstable
Response: EmptyResponse
_goose/unstable/slash-commands/list
List slash commands available for / autocomplete.
Request: ListSlashCommandsRequest_unstable
Response: ListSlashCommandsResponse_unstable
_goose/unstable/sources/create
Create a new source in an explicit target scope (global or project-scoped).
Request: CreateSourceRequest_unstable
Response: CreateSourceResponse_unstable
_goose/unstable/sources/delete
Delete a source and its on-disk directory by absolute path.
Request: DeleteSourceRequest_unstable
Response: EmptyResponse
_goose/unstable/sources/export
Export a source at an absolute path as a portable JSON payload.
Request: ExportSourceRequest_unstable
Response: ExportSourceResponse_unstable
_goose/unstable/sources/import
Import a source from a JSON export payload produced by _goose/unstable/sources/export.
The imported source is written into the explicit target scope; on name
collisions a -imported suffix is appended.
Request: ImportSourcesRequest_unstable
Response: ImportSourcesResponse_unstable
_goose/unstable/sources/list
List discovered sources.

If type is omitted or skill, this lists filesystem/plugin skills only.
Both global and project-scoped skills are included when project_dir is
set. If type is builtinSkill, this lists shipped read-only built-in
skills.
Request: ListSourcesRequest_unstable
Response: ListSourcesResponse_unstable
_goose/unstable/sources/update
Update an existing source's name, description, and content by absolute path.
Request: UpdateSourceRequest_unstable
Response: UpdateSourceResponse_unstable
_goose/unstable/tools/call
Call a tool from an extension.
Request: GooseToolCallRequest_unstable
Response: GooseToolCallResponse_unstable
_goose/unstable/tools/list
List all tools available in a session.
Request: GetToolsRequest_unstable
Response: GetToolsResponse_unstable
_goose/unstable/tools/permissions/set
Set permission levels for one or more tools.
Request: SetToolPermissionsRequest_unstable
Response: SetToolPermissionsResponse_unstable

Agent-to-client requests​

MethodSchemas
_goose/unstable/session/recipe/request-params
Ask the client to provide values for a recipe's parameters.
Request: RequestRecipeParams_unstable
Response: RecipeParamsResponse_unstable

Agent-to-client notifications​

MethodSchemas
_goose/unstable/providers/authentication/device-code
Dedicated provider notification for OAuth device-code flow.
Sent during provider authentication when the ACP client supports
goose.customNotifications — avoids a fake empty session ID.
Parameters: ProviderDeviceCodeNotification_unstable
_goose/unstable/session/update
Goose-custom session update notification — a parallel to ACP's
session/update carrying goose-specific update variants.
Parameters: GooseSessionNotification_unstable

Schemas​

AddConfigExtensionRequest_unstable​

Persist a new extension to the user's global goose config.

Type: object

FieldTypeRequiredDescriptionConstraints
extensionGooseExtensionYes——
enabledbooleanNo—Default: false

AddSessionExtensionRequest_unstable​

Add an extension to an active session.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
extensionGooseExtensionYes——

AgentMention​

A user-facing @ mention target backed by an agent, recipe, or subrecipe source.

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes——
descriptionstringYes——
sourceTypeSourceTypeYes——
sourcePathstring | nullNo——
mentionstringYes——

Annotations​

Optional annotations for the client. The client can use annotations to inform how objects are used or displayed

Type: object

FieldTypeRequiredDescriptionConstraints
audienceArray<Role> | nullNoIntended recipients for this content, such as the user or assistant.—
lastModifiedstring | nullNoTimestamp indicating when the underlying resource was last modified.—
prioritynumber | nullNoRelative importance of this content when clients choose what to surface.Format: double
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—

AppsDeleteRequest_unstable​

Delete a goose app by name.

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes——

AppsDeleteResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes——
messagestringYes——

AppsExportRequest_unstable​

Export a goose app as HTML.

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes——

AppsExportResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
htmlstringYes——

AppsImportRequest_unstable​

Import a goose app from HTML.

Type: object

FieldTypeRequiredDescriptionConstraints
htmlstringYes——

AppsImportResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes——
messagestringYes——

AppsListRequest_unstable​

List available goose apps, optionally scoped to a session.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstring | nullNo——

AppsListResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
appsArray<unknown>No—Default: []

ArchiveSessionRequest_unstable​

Archive a session (soft delete).

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——

AudioContent​

Audio provided to or from an LLM.

Type: object

FieldTypeRequiredDescriptionConstraints
annotationsAnnotations | nullNoOptional annotations that help clients decide how to display or route this content.—
datastringYesBase64-encoded media payload.—
mimeTypestringYesMIME type describing the encoded media payload.—
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—

AvailableCommand​

Information about a command.

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYesCommand name (e.g., create_plan, research_codebase).—
descriptionstringYesHuman-readable description of what the command does.—
inputAvailableCommandInput | nullNoInput for the command if required—
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—

AvailableCommandInput​

The input specification for a command.

Type: UnstructuredCommandInput

BlobResourceContents​

Binary resource contents.

Type: object

FieldTypeRequiredDescriptionConstraints
blobstringYesBase64-encoded bytes for a binary resource payload.—
mimeTypestring | nullNoMIME type describing the encoded media payload.—
uristringYesURI associated with this resource or media payload.—
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—

CanonicalModelInfoDto​

Type: object

FieldTypeRequiredDescriptionConstraints
providerstringYes——
modelstringYes——
contextLimitintegerYes—Minimum: 0
maxOutputTokensinteger | nullNo—Minimum: 0
reasoningbooleanYes——
inputTokenCostnumber | nullNo—Format: double
outputTokenCostnumber | nullNo—Format: double
cacheReadTokenCostnumber | nullNo—Format: double
cacheWriteTokenCostnumber | nullNo—Format: double
currencystringYes——

CanonicalModelInfoRequest_unstable​

Look up canonical (bundled-registry) model info for a provider/model pair.

Type: object

FieldTypeRequiredDescriptionConstraints
providerstringYes——
modelstringYes——

CanonicalModelInfoResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
modelInfoCanonicalModelInfoDto | nullNo——

ConfigReadAllRequest_unstable​

Read all non-secret goose configuration values.

Type: object

ConfigReadAllResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
configRecord<string, unknown>Yes——

ConfigReadRequest_unstable​

Read one goose configuration value.

Type: object

FieldTypeRequiredDescriptionConstraints
keystringYes——
isSecretbooleanNo—Default: false

ConfigReadResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
valueunknownNo—Default: null

ConfigRemoveRequest_unstable​

Remove one goose configuration value.

Type: object

FieldTypeRequiredDescriptionConstraints
keystringYes——
isSecretbooleanNo—Default: false

ConfigUpsertRequest_unstable​

Create or replace one goose configuration value.

Type: object

FieldTypeRequiredDescriptionConstraints
keystringYes——
valueunknownYes——
isSecretbooleanNo—Default: false

ContentBlock​

Content blocks represent displayable information in the Agent Client Protocol.

They provide a structured way to handle various types of user-facing content—whether
it's text from language models, images for analysis, or embedded resources for context.

Content blocks appear in:
- User prompts sent via session/prompt
- Language model output streamed through session/update notifications
- Progress updates and results from tool calls

This structure is compatible with the Model Context Protocol (MCP), enabling
agents to seamlessly forward content from MCP tool outputs without transformation.

See protocol docs: Content

Type: TextContent & { type: "text" } | ImageContent & { type: "image" } | AudioContent & { type: "audio" } | ResourceLink & { type: "resource_link" } | EmbeddedResource & { type: "resource" }

CostSourceData​

Wire mirror of the conversation CostSource.

Type: "provider_reported" | "estimated"

CreateScheduleRequest_unstable​

Create a scheduled recipe job.

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes——
recipeRecipeDtoYes——
cronstringYes——

CreateScheduleResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
jobScheduledJobDtoYes——

CreateSourceRequest_unstable​

Create a new source in an explicit target scope (global or project-scoped).

Type: object

FieldTypeRequiredDescriptionConstraints
typeSourceTypeYes——
namestringYes——
descriptionstringYes——
contentstringYes——
targetSourceScopeYes——
propertiesRecord<string, unknown>NoArbitrary key/value metadata.—

CreateSourceResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
sourceSourceEntryYes——

CustomProviderConfigDto​

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——
enginestringYes——
displayNamestringYes——
apiUrlstringYes——
modelsArray<string>No—Default: []
supportsStreamingboolean | nullNo——
headersRecord<string, string>No—Default: {}
requiresAuthbooleanYes——
catalogProviderIdstring | nullNo——
basePathstring | nullNo——
toolshimbooleanYes——
apiKeyEnvstring | nullNo——
apiKeySetbooleanYes——
preservesThinkingbooleanYes——

CustomProviderCreateRequest_unstable​

Create a custom provider backed by goose's declarative provider store.

Type: object

FieldTypeRequiredDescriptionConstraints
enginestringYes——
displayNamestringYes——
apiUrlstringYes——
apiKeystring | nullNo——
modelsArray<string>No—Default: []
supportsStreamingboolean | nullNo——
headersRecord<string, string>No—Default: {}
requiresAuthbooleanYes——
catalogProviderIdstring | nullNo——
basePathstring | nullNo——
preservesThinkingboolean | nullNo——
toolshimbooleanYes——

CustomProviderCreateResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——
statusProviderConfigStatusDtoYes——
refreshRefreshProviderInventoryResponse_unstableYes——

CustomProviderDeleteRequest_unstable​

Delete a custom provider from goose's declarative provider store.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——

CustomProviderDeleteResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——
refreshRefreshProviderInventoryResponse_unstableYes——

CustomProviderReadRequest_unstable​

Read a declarative provider config. Custom configs are editable; bundled configs are read-only.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——

CustomProviderReadResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
providerCustomProviderConfigDtoYes——
editablebooleanYes——
statusProviderConfigStatusDtoYes——

CustomProviderUpdateRequest_unstable​

Update a custom provider backed by goose's declarative provider store.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——
enginestringYes——
displayNamestringYes——
apiUrlstringYes——
apiKeystring | nullNo——
modelsArray<string>No—Default: []
supportsStreamingboolean | nullNo——
headersRecord<string, string>No—Default: {}
requiresAuthbooleanYes——
catalogProviderIdstring | nullNo——
basePathstring | nullNo——
preservesThinkingboolean | nullNo——
toolshimbooleanYes——

CustomProviderUpdateResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——
statusProviderConfigStatusDtoYes——
refreshRefreshProviderInventoryResponse_unstableYes——

DecodeRecipeRequest_unstable​

Decode a goose deep link into a recipe.

Type: object

FieldTypeRequiredDescriptionConstraints
deeplinkstringYes——

DecodeRecipeResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
recipeRecipeDtoYes——

DefaultsClearRequest_unstable​

Clear goose default provider and model configuration.

Type: object

DefaultsReadRequest_unstable​

Read goose default provider and model configuration.

Type: object

DefaultsReadResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstring | nullNo——
modelIdstring | nullNo——

DefaultsSaveRequest_unstable​

Save goose default provider and model configuration.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——
modelIdstring | nullNo——

DeleteRecipeRequest_unstable​

Delete a recipe from the local recipe library.

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes——

DeleteScheduleRequest_unstable​

Delete a scheduled recipe job.

Type: object

FieldTypeRequiredDescriptionConstraints
scheduleIdstringYes——

DeleteSourceRequest_unstable​

Delete a source and its on-disk directory by absolute path.

Type: object

FieldTypeRequiredDescriptionConstraints
typeSourceTypeYes——
pathstringYes——

DiagnosticsGetRequest_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
levelDiagnosticsReportLevelNo—Default: "summary"

DiagnosticsGetResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
reportunknownYes——

DiagnosticsReportLevel​

Type: "summary" | "full"

DictationConfigRequest_unstable​

Get the configuration status of all dictation providers.

Type: object

DictationConfigResponse_unstable​

Dictation config response — map of provider name to status.

Type: object

FieldTypeRequiredDescriptionConstraints
providersRecord<string, DictationProviderStatusEntry>Yes——

DictationDownloadProgress​

Type: object

FieldTypeRequiredDescriptionConstraints
bytesDownloadedintegerYes—Minimum: 0
totalBytesintegerYes—Minimum: 0
progressPercentnumberYes—Format: float
statusstringYesserde lowercase of DownloadStatus: "downloading" | "completed" | "failed" | "cancelled"—
errorstring | nullNo——

DictationLocalModelStatus​

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes——
labelstringYes——
descriptionstringYes——
sizeMbintegerYes—Minimum: 0
downloadedbooleanYes——
downloadInProgressbooleanYes——
recommendedbooleanYes——

DictationModelCancelRequest_unstable​

Cancel an in-flight download.

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes——

DictationModelDeleteRequest_unstable​

Delete a downloaded local Whisper model from disk.

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes——

DictationModelDownloadProgressRequest_unstable​

Poll the progress of an in-flight download.

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes——

DictationModelDownloadProgressResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
progressDictationDownloadProgress | nullNoNone when no download is active for this model id.—

DictationModelDownloadRequest_unstable​

Kick off a background download of a local Whisper model.

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes——

DictationModelOption​

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes——
labelstringYes——
descriptionstringYes——

DictationModelsListRequest_unstable​

List available local Whisper models with their download status.

Type: object

DictationModelsListResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
modelsArray<DictationLocalModelStatus>Yes——

DictationProviderStatusEntry​

Per-provider configuration status.

Type: object

FieldTypeRequiredDescriptionConstraints
configuredbooleanYes——
hoststring | nullNo——
descriptionstringYes——
usesProviderConfigbooleanYes——
settingsPathstring | nullNo——
configKeystring | nullNo——
modelConfigKeystring | nullNo——
defaultModelstring | nullNo——
selectedModelstring | nullNo——
availableModelsArray<DictationModelOption>No—Default: []

DictationTranscribeRequest_unstable​

Transcribe audio via a dictation provider.

Type: object

FieldTypeRequiredDescriptionConstraints
audiostringYesBase64-encoded audio data—
mimeTypestringYesMIME type (e.g. "audio/wav", "audio/webm")—
providerstringYesProvider to use: "openai", "groq", "elevenlabs", or "local"—

DictationTranscribeResponse_unstable​

Transcription result.

Type: object

FieldTypeRequiredDescriptionConstraints
textstringYes——

EmbeddedResource​

The contents of a resource, embedded into a prompt or tool call result.

Type: object

FieldTypeRequiredDescriptionConstraints
annotationsAnnotations | nullNoOptional annotations that help clients decide how to display or route this content.—
resourceEmbeddedResourceResourceYesEmbedded resource payload, either text or binary data.—
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—

EmbeddedResourceResource​

Resource content that can be embedded in a message.

Type: TextResourceContents | BlobResourceContents

EmptyResponse​

Empty success response for operations that return no data.

Type: object

EncodeRecipeRequest_unstable​

Encode a recipe as a goose deep link.

Type: object

FieldTypeRequiredDescriptionConstraints
recipeRecipeDtoYes——

EncodeRecipeResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
deeplinkstringYes——

EnvVariable​

An environment variable to set when launching an MCP server.

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYesThe name of the environment variable.—
valuestringYesThe value to set for the environment variable.—
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—

ExportSessionRequest_unstable​

Export a session as a JSON or markdown string.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
formatSessionExportFormatNo—Default: "json"

ExportSessionResponse_unstable​

Export session response — raw JSON of the goose session with conversation,
or a markdown transcript when format is markdown.

Type: object

FieldTypeRequiredDescriptionConstraints
datastringYes——

ExportSourceRequest_unstable​

Export a source at an absolute path as a portable JSON payload.

Type: object

FieldTypeRequiredDescriptionConstraints
typeSourceTypeYes——
pathstringYes——

ExportSourceResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
jsonstringYes——
filenamestringYes——

GetConfigExtensionsRequest_unstable​

List configured extensions and any warnings.

Type: object

GetConfigExtensionsResponse_unstable​

List configured extensions and any warnings.

Type: object

FieldTypeRequiredDescriptionConstraints
extensionsArray<GooseExtensionEntry>Yes——
warningsArray<string>No—Default: []

GetPromptRequest_unstable​

Read a goose prompt template.

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes——

GetPromptResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes——
contentstringYes——
defaultContentstringYes——
isCustomizedbooleanYes——

GetSessionExtensionsRequest_unstable​

List extensions enabled for an active session.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——

GetSessionExtensionsResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
extensionsArray<SessionExtensionEntry>Yes——

GetSessionInfoRequest_unstable​

Return list-style metadata for a single session without loading the conversation.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——

GetSessionInfoResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
sessionSessionInfoYes——

GetToolsRequest_unstable​

List all tools available in a session.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
extensionNamestring | nullNoFilter tools to those belonging to this extension.—

GetToolsResponse_unstable​

Tools response.

Type: object

FieldTypeRequiredDescriptionConstraints
toolsArray<ToolListItem>Yes——

GooseExtension​

Type: { name: string; description?: string | null; display_name?: string | null; timeout?: integer | null; bundled?: boolean | null; available_tools?: Array<string> | null; type: "builtin" } | { name: string; description?: string | null; display_name?: string | null; bundled?: boolean | null; available_tools?: Array<string> | null; type: "platform" } | { server: McpServer; envKeys?: Array<string>; description?: string | null; timeout?: integer | null; socket?: string | null; clientId?: string | null; clientSecretKey?: string | null; scopes?: Array<string>; bundled?: boolean | null; available_tools?: Array<string> | null; type: "mcp" }

GooseExtensionEntry​

Type: object

FieldTypeRequiredDescriptionConstraints
extensionGooseExtensionYes——
enabledbooleanYes——
configKeystring | nullNo——

GooseSessionNotification_unstable​

Goose-custom session update notification — a parallel to ACP's
session/update carrying goose-specific update variants.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
updateGooseSessionUpdateYes——

GooseSessionUpdate​

Discriminated union of goose-specific session update payloads.
Variant tag matches ACP's convention (sessionUpdate: "<snake_case>").

discriminator.mapping is what makes TS codegen (@hey-api/openapi-ts)
emit the correct snake_case tag value even when this enum has a single
variant. Add a mapping entry per variant.

Type: SessionUsageUpdate & { sessionUpdate: "usage_update" } | StatusMessageUpdate & { sessionUpdate: "status_message" } | MessageUsageUpdate & { sessionUpdate: "message_usage" } | LiveVoiceInteractionEndedUpdate & { sessionUpdate: "live_voice_interaction_ended" }

GooseToolCallRequest_unstable​

Call a tool from an extension.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
extensionNamestringYes——
namestringYes——
argumentsunknownNo—Default: null

GooseToolCallResponse_unstable​

Tool call response.

Type: object

FieldTypeRequiredDescriptionConstraints
contentArray<unknown>No—Default: []
structuredContentunknownNo——
isErrorbooleanYes——
_metaunknownNo——

HttpHeader​

An HTTP header to set when making requests to the MCP server.

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYesThe name of the HTTP header.—
valuestringYesThe value to set for the HTTP header.—
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—

ImageContent​

An image provided to or from an LLM.

Type: object

FieldTypeRequiredDescriptionConstraints
annotationsAnnotations | nullNoOptional annotations that help clients decide how to display or route this content.—
datastringYesBase64-encoded media payload.—
mimeTypestringYesMIME type describing the encoded media payload.—
uristring | nullNoURI associated with this resource or media payload.—
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—

ImportSessionRequest_unstable​

Import a session from a serialized session JSON string.

Type: object

FieldTypeRequiredDescriptionConstraints
inputstringYes——

ImportSessionResponse_unstable​

Import session response — metadata about the newly created session.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
titlestring | nullNo——
updatedAtstring | nullNo——
messageCountintegerYes—Minimum: 0

ImportSourcesRequest_unstable​

Import a source from a JSON export payload produced by _goose/unstable/sources/export.
The imported source is written into the explicit target scope; on name
collisions a -imported suffix is appended.

Type: object

FieldTypeRequiredDescriptionConstraints
datastringYes——
targetSourceScopeYes——

ImportSourcesResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
sourcesArray<SourceEntry>Yes——

InspectRunningJobRequest_unstable​

Inspect the current state of a running scheduled job.

Type: object

FieldTypeRequiredDescriptionConstraints
jobIdstringYes——

InspectRunningJobResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
runningbooleanYes——
sessionIdstring | nullNo——
jobStartTimestring | nullNo——
runningDurationSecondsinteger | nullNo——

KillRunningJobRequest_unstable​

Stop a currently running scheduled job.

Type: object

FieldTypeRequiredDescriptionConstraints
jobIdstringYes——

KillRunningJobResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
messagestringYes——

ListAgentMentionsRequest_unstable​

List user-facing agent mention targets for @ autocomplete.

Type: object

FieldTypeRequiredDescriptionConstraints
cwdstring | nullNo——
sessionIdstring | nullNo——

ListAgentMentionsResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
agentsArray<AgentMention>Yes——

ListPromptsRequest_unstable​

List all available goose prompt templates.

Type: object

ListPromptsResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
promptsArray<PromptTemplateEntry>Yes——

ListProvidersRequest_unstable​

List providers with setup metadata and the current model inventory snapshot.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdsArray<string>NoOnly return entries for these providers. Empty means all.Default: []

ListProvidersResponse_unstable​

Provider list response.

Type: object

FieldTypeRequiredDescriptionConstraints
entriesArray<ProviderInventoryEntryDto>Yes——

ListRecipesRequest_unstable​

List recipes in the local recipe library.

Type: object

ListRecipesResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
recipesArray<RecipeListEntryDto>Yes——

ListScheduleSessionsRequest_unstable​

List recent sessions created by a scheduled recipe job.

Type: object

FieldTypeRequiredDescriptionConstraints
scheduleIdstringYes——
limitintegerYes—Minimum: 0

ListScheduleSessionsResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
sessionsArray<SessionInfo>Yes——

ListSchedulesRequest_unstable​

List scheduled recipe jobs.

Type: object

ListSchedulesResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
jobsArray<ScheduledJobDto>Yes——

ListSlashCommandsRequest_unstable​

List slash commands available for / autocomplete.

Type: object

FieldTypeRequiredDescriptionConstraints
cwdstring | nullNo——
sessionIdstring | nullNo——

ListSlashCommandsResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
availableCommandsArray<AvailableCommand>Yes——

ListSourcesRequest_unstable​

List discovered sources.

If type is omitted or skill, this lists filesystem/plugin skills only.
Both global and project-scoped skills are included when project_dir is
set. If type is builtinSkill, this lists shipped read-only built-in
skills.

Type: object

FieldTypeRequiredDescriptionConstraints
typeSourceType | nullNo——
projectDirstring | nullNo——
includeProjectSourcesbooleanNoWhen true, also scan the working directories of all known projects for
project-scoped sources (e.g. skills stored under {workingDir}/.agents/skills/).
Default: false

ListSourcesResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
sourcesArray<SourceEntry>Yes——

LiveVoiceAvailabilityRequest_unstable​

Ask whether a new or existing chat can enter direct Live voice.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstring | nullNo——
_metaRecord<string, unknown> | nullNo——

LiveVoiceAvailabilityResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
statusLiveVoiceStatusYes——
messagestringYes——

LiveVoiceInteractionEndedUpdate​

Type: object

FieldTypeRequiredDescriptionConstraints
interactionIdstringYes——
outcomeLiveVoiceInteractionOutcomeYes——

LiveVoiceInteractionOutcome​

Type: "stopped" | "failed"

LiveVoiceStartRequest_unstable​

Get a diagnostic report for a session.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
offerSdpstringYes——
_metaRecord<string, unknown> | nullNo——

LiveVoiceStartResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
interactionIdstringYes——
answerSdpstringYes——

LiveVoiceStatus​

Type: "ready" | "unavailable"

LiveVoiceStopRequest_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
interactionIdstringYes——

LocalInferenceBuiltinChatTemplatesListRequest_unstable​

List built-in chat templates for local inference.

Type: object

LocalInferenceBuiltinChatTemplatesListResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
templatesArray<string>Yes——

LocalInferenceChatTemplate​

Type: { type: "embedded" } | { name: string; type: "builtin" } | { template: string; type: "custom_inline" }

LocalInferenceDownloadProgressDto​

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes——
statusstringYes——
bytesDownloadedintegerYes—Minimum: 0
totalBytesintegerYes—Minimum: 0
progressPercentnumberYes—Format: float
speedBpsinteger | nullNo—Minimum: 0
etaSecondsinteger | nullNo—Minimum: 0
errorstring | nullNo——
taskExitedbooleanYes——

LocalInferenceDownloadState​

Type: "NotDownloaded" | "Downloading" | "Downloaded"

LocalInferenceHfGgufFileDto​

Type: object

FieldTypeRequiredDescriptionConstraints
filenamestringYes——
sizeBytesintegerYes—Minimum: 0
quantizationstringYes——
downloadUrlstringYes——

LocalInferenceHfModelInfoDto​

Type: object

FieldTypeRequiredDescriptionConstraints
repoIdstringYes——
authorstringYes——
modelNamestringYes——
downloadsintegerYes—Minimum: 0
ggufFilesArray<LocalInferenceHfGgufFileDto>No—Default: []
variantsArray<LocalInferenceHfModelVariantDto>No—Default: []

LocalInferenceHfModelVariantDto​

Type: object

FieldTypeRequiredDescriptionConstraints
variantIdstringYes——
labelstringYes——
backendIdstringYes——
formatstringYes——
modelIdstringYes——
downloadIdstringYes——
sizeBytesintegerYes—Minimum: 0
filenamestring | nullNo——
downloadUrlstring | nullNo——
descriptionstringYes——
qualityRankintegerYes—Minimum: 0
Maximum: 255
shardedbooleanYes——
supportedbooleanYes——
unsupportedReasonstring | nullNo——

LocalInferenceHuggingFaceRepoVariantsRequest_unstable​

List downloadable variants of a Hugging Face model repository.

Type: object

FieldTypeRequiredDescriptionConstraints
repoIdstringYes——

LocalInferenceHuggingFaceRepoVariantsResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
variantsArray<LocalInferenceHfModelVariantDto>Yes——
recommendedIndexinteger | nullNo—Minimum: 0
availableMemoryBytesintegerYes—Minimum: 0
downloadedQuantsArray<string>Yes——
downloadedVariantsArray<string>Yes——

LocalInferenceHuggingFaceSearchRequest_unstable​

Search Hugging Face for local inference models.

Type: object

FieldTypeRequiredDescriptionConstraints
querystringYes——
limitinteger | nullNo—Minimum: 0

LocalInferenceHuggingFaceSearchResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
modelsArray<LocalInferenceHfModelInfoDto>Yes——

LocalInferenceModelDeleteRequest_unstable​

Delete a downloaded local inference model.

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes——

LocalInferenceModelDownloadCancelRequest_unstable​

Cancel a local model download.

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes——

LocalInferenceModelDownloadProgressRequest_unstable​

Get the progress of a local model download.

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes——

LocalInferenceModelDownloadProgressResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
progressLocalInferenceDownloadProgressDto | nullNo——

LocalInferenceModelDownloadRequest_unstable​

Download a model for local inference.

Type: object

FieldTypeRequiredDescriptionConstraints
specstringYes——
backendIdstring | nullNo——
variantIdstring | nullNo——

LocalInferenceModelDownloadResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes——

LocalInferenceModelDownloadStatusDto​

Type: object

FieldTypeRequiredDescriptionConstraints
stateLocalInferenceDownloadStateYes——
progressPercentnumber | nullNo—Format: float
bytesDownloadedinteger | nullNo—Minimum: 0
totalBytesinteger | nullNo—Minimum: 0
speedBpsinteger | nullNo—Minimum: 0

LocalInferenceModelDto​

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes——
repoIdstringYes——
filenamestringYes——
quantizationstringYes——
sizeBytesintegerYes—Minimum: 0
statusLocalInferenceModelDownloadStatusDtoYes——
recommendedbooleanYes——
isLoadedbooleanYes——
settingsLocalInferenceModelSettingsDtoYes——
visionCapablebooleanYes——
mmprojStatusLocalInferenceModelDownloadStatusDto | nullNo——

LocalInferenceModelEvictRequest_unstable​

Evict a local inference model from memory.

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes——

LocalInferenceModelSettingsDto​

Type: object

FieldTypeRequiredDescriptionConstraints
backendIdstring | nullNo——
contextSizeinteger | nullNo—Minimum: 0
maxOutputTokensinteger | nullNo—Minimum: 0
draftModelstring | nullNo——
samplingLocalInferenceSamplingConfigNo—Default: {"type":"Temperature","temperature":0.800000011920929,"topK":40,"topP":0.949999988079071,"minP":0.05000000074505806}
repeatPenaltynumberYes—Format: float
repeatLastNintegerYes——
frequencyPenaltynumberYes—Format: float
presencePenaltynumberYes—Format: float
nBatchinteger | nullNo—Minimum: 0
nGpuLayersinteger | nullNo—Minimum: 0
useMlockbooleanYes——
flashAttentionboolean | nullNo——
nThreadsinteger | nullNo——
toolCallingLocalInferenceToolCallingModeNo—Default: "auto"
chatTemplateLocalInferenceChatTemplateNo—Default: {"type":"embedded"}
enableThinkingbooleanYes——
visionCapablebooleanYes——
imageTokenEstimateintegerYes—Minimum: 0
mmprojSizeBytesintegerYes—Minimum: 0

LocalInferenceModelSettingsReadRequest_unstable​

Read the sampling settings for a local inference model.

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes——

LocalInferenceModelSettingsReadResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
settingsLocalInferenceModelSettingsDtoYes——

LocalInferenceModelSettingsUpdateRequest_unstable​

Update the sampling settings for a local inference model.

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes——
settingsLocalInferenceModelSettingsDtoYes——

LocalInferenceModelSettingsUpdateResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
settingsLocalInferenceModelSettingsDtoYes——

LocalInferenceModelsListRequest_unstable​

List locally available inference models.

Type: object

LocalInferenceModelsListResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
modelsArray<LocalInferenceModelDto>Yes——

LocalInferenceSamplingConfig​

Type: { type: "Greedy" } | { temperature: number; topK: integer; topP: number; minP: number; seed?: integer | null; type: "Temperature" } | { tau: number; eta: number; seed?: integer | null; type: "MirostatV2" }

LocalInferenceToolCallingMode​

Type: "auto" | "force_native" | "force_emulated"

McpServer​

Configuration for connecting to an MCP (Model Context Protocol) server.

MCP servers provide tools and context that the agent can use when
processing prompts.

See protocol docs: MCP Servers

Type: McpServerHttp & { type: "http" } | McpServerSse & { type: "sse" } | McpServerStdio

McpServerHttp​

HTTP transport configuration for MCP.

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYesHuman-readable name identifying this MCP server.—
urlstringYesURL to the MCP server.—
headersArray<HttpHeader>YesHTTP headers to set when making requests to the MCP server.—
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—
type"http"Yes——

McpServerSse​

SSE transport configuration for MCP.

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYesHuman-readable name identifying this MCP server.—
urlstringYesURL to the MCP server.—
headersArray<HttpHeader>YesHTTP headers to set when making requests to the MCP server.—
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—
type"sse"Yes——

McpServerStdio​

Stdio transport configuration for MCP.

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYesHuman-readable name identifying this MCP server.—
commandstringYesAbsolute path to the MCP server executable.—
argsArray<string>YesCommand-line arguments to pass to the MCP server.—
envArray<EnvVariable>YesEnvironment variables to set when launching the MCP server.—
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—

MessageUsageData​

Wire mirror of the conversation MessageUsage (this crate cannot depend on
goose-provider-types); field names and serde casing MUST stay in parity.

Type: object

FieldTypeRequiredDescriptionConstraints
inputTokensinteger | nullNo——
outputTokensinteger | nullNo——
totalTokensinteger | nullNo——
cacheReadTokensinteger | nullNo——
cacheWriteTokensinteger | nullNo——
costnumber | nullNo—Format: double
costSourceCostSourceData | nullNo——
elapsedMsinteger | nullNoWall-clock generation time, used by the client for a tokens/sec readout.Minimum: 0
timeToFirstTokenMsinteger | nullNo—Minimum: 0
isCompactionbooleanNoUsage from a compaction/summarization call rather than a normal turn.Default: false

MessageUsageUpdate​

Per-message token usage/cost/timing, keyed by the message id used for
chunk matching. Sent live after a turn's messages and on replay.

Type: object

FieldTypeRequiredDescriptionConstraints
messageIdstring | nullNo——
usageMessageUsageDataYes——

OnboardingImportApplyRequest_unstable​

Import selected onboarding candidates.

Type: object

FieldTypeRequiredDescriptionConstraints
candidateIdsArray<string>No—Default: []
enableImportedExtensionsbooleanNo—Default: false

OnboardingImportApplyResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
importedOnboardingImportCountsYes——
skippedOnboardingImportCountsYes——
warningsArray<string>No—Default: []
providerDefaultsDefaultsReadResponse_unstable | nullNo——

OnboardingImportCandidate​

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes——
sourceKindOnboardingImportSourceKindYes——
displayNamestringYes——
pathstringYes——
countsOnboardingImportCountsYes——
warningsArray<string>No—Default: []

OnboardingImportCounts​

Type: object

FieldTypeRequiredDescriptionConstraints
providersintegerYes—Minimum: 0
extensionsintegerYes—Minimum: 0
sessionsintegerYes—Minimum: 0
skillsintegerYes—Minimum: 0
projectsintegerYes—Minimum: 0
preferencesintegerYes—Minimum: 0

OnboardingImportScanRequest_unstable​

Scan for existing goose and compatible app data that onboarding can import.

Type: object

FieldTypeRequiredDescriptionConstraints
sourcesArray<OnboardingImportSourceKind>NoEmpty means all supported import sources.Default: []

OnboardingImportScanResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
candidatesArray<OnboardingImportCandidate>Yes——

OnboardingImportSourceKind​

Sources that onboarding knows how to discover and import.

Type: "goose_config" | "claude_desktop"

ParseRecipeRequest_unstable​

Parse serialized recipe content.

Type: object

FieldTypeRequiredDescriptionConstraints
contentstringYes——

ParseRecipeResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
recipeRecipeDtoYes——

PauseScheduleRequest_unstable​

Pause a scheduled recipe job.

Type: object

FieldTypeRequiredDescriptionConstraints
scheduleIdstringYes——

PreferenceKey​

Type: "autoCompactThreshold" | "gooseThinkingEffort" | "voiceAutoSubmitPhrases" | "voiceDictationProvider" | "voiceDictationPreferredMic"

PreferencesReadRequest_unstable​

Read allowlisted user preferences. Empty keys means all supported preferences.

Type: object

FieldTypeRequiredDescriptionConstraints
keysArray<PreferenceKey>No—Default: []

PreferencesReadResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
valuesArray<PreferenceValue>Yes——

PreferencesSaveRequest_unstable​

Save allowlisted user preferences.

Type: object

FieldTypeRequiredDescriptionConstraints
valuesArray<PreferenceValue>No—Default: []

PreferenceValue​

Type: object

FieldTypeRequiredDescriptionConstraints
keyPreferenceKeyYes——
valueunknownNo—Default: null

PromptOperationResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
messagestringYes——

PromptTemplateEntry​

Information about a prompt template, including its default content and customization status.

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes——
descriptionstringYes——
defaultContentstringYes——
userContentstring | nullNo——
isCustomizedbooleanYes——

ProviderCatalogListRequest_unstable​

List custom-provider catalog entries. Omit format to list all formats.

Type: object

FieldTypeRequiredDescriptionConstraints
formatstring | nullNo——

ProviderCatalogListResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
providersArray<ProviderTemplateCatalogEntryDto>Yes——

ProviderCatalogTemplateRequest_unstable​

Return the editable template for one catalog provider.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——

ProviderCatalogTemplateResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
templateProviderTemplateDtoYes——

ProviderConfigAuthenticateRequest_unstable​

Run a provider-owned native authentication flow and start an inventory refresh when supported.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——

ProviderConfigChangeResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
statusProviderConfigStatusDtoYes——
refreshRefreshProviderInventoryResponse_unstableYes——

ProviderConfigDeleteRequest_unstable​

Delete provider configuration fields and start an inventory refresh when supported.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——

ProviderConfigFieldUpdate​

Type: object

FieldTypeRequiredDescriptionConstraints
keystringYes——
valuestringYes——

ProviderConfigFieldValueDto​

Type: object

FieldTypeRequiredDescriptionConstraints
keystringYes——
valuestring | nullNo—Default: null
isSetbooleanYes——
isSecretbooleanYes——
requiredbooleanYes——

ProviderConfigKey​

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes——
requiredbooleanYes——
secretbooleanYes——
defaultstring | nullNo—Default: null
oauthFlowbooleanNo—Default: false
deviceCodeFlowbooleanNo—Default: false
primarybooleanNo—Default: false

ProviderConfigReadRequest_unstable​

Read saved configuration field values for one provider.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——

ProviderConfigReadResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
fieldsArray<ProviderConfigFieldValueDto>Yes——

ProviderConfigSaveRequest_unstable​

Save provider configuration fields and start an inventory refresh when supported.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——
fieldsArray<ProviderConfigFieldUpdate>Yes——

ProviderConfigStatusDto​

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——
isConfiguredbooleanYes——

ProviderConfigStatusRequest_unstable​

Return provider configured statuses. Empty provider_ids means all providers.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdsArray<string>No—Default: []

ProviderConfigStatusResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
statusesArray<ProviderConfigStatusDto>Yes——

ProviderDeviceCodeNotification_unstable​

Dedicated provider notification for OAuth device-code flow.
Sent during provider authentication when the ACP client supports
goose.customNotifications — avoids a fake empty session ID.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——
userCodestringYes——
verificationUristringYes——
expiresInintegerYes—Minimum: 0

ProviderInventoryEntryDto​

Provider inventory entry.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYesProvider identifier.—
providerNamestringYesHuman-readable provider name.—
descriptionstringYesDescription of the provider's capabilities.—
defaultModelstringYesThe default/recommended model for this provider.—
configuredbooleanYesWhether Goose has enough configuration to use this provider.—
availablebooleanYesWhether the provider's external runtime or required configuration is available.—
providerTypestringYesProvider classification such as Preferred, Builtin, Declarative, or Custom.—
acpbooleanNoWhether this provider communicates through ACP.Default: false
visibleInSetupbooleanYesWhether this provider should appear in normal provider setup UIs.—
deprecatedbooleanYesWhether this provider is retained only for compatibility.—
replacementstring | nullNoPreferred replacement for a deprecated provider.—
configKeysArray<ProviderConfigKey>YesRequired configuration keys and setup metadata.—
setupStepsArray<string>YesStep-by-step setup instructions, when present.—
supportsRefreshbooleanYesWhether this provider supports background inventory refresh.—
refreshingbooleanYesWhether a refresh is currently in flight.—
modelsArray<ProviderInventoryModelDto>YesThe list of available models.—
lastUpdatedAtstring | nullNoWhen this entry was last successfully refreshed (ISO 8601).—
lastRefreshAttemptAtstring | nullNoWhen a refresh was most recently attempted (ISO 8601).—
lastRefreshErrorstring | nullNoThe last refresh failure message, if any.—
stalebooleanYesWhether we believe this data may be outdated.—

ProviderInventoryModelDto​

A single model in provider inventory.

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYesModel identifier as the provider knows it.—
namestringYesHuman-readable display name.—
familystring | nullNoModel family for grouping in UI.—
contextLimitinteger | nullNoContext window size in tokens.Minimum: 0
reasoningboolean | nullNoWhether the model supports reasoning/extended thinking.—
recommendedbooleanNoWhether this model should appear in the compact recommended picker.Default: false

ProviderReadinessCheckRequest_unstable​

Check whether an ACP provider can initialize and create a session.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——

ProviderReadinessCheckResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——
readybooleanYes——
errorstring | nullNo——

ProviderSecretDeleteRequest_unstable​

Delete a locally stored provider credential by id.

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes——

ProviderSecretDto​

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes——
providerstringYes——
providerDisplayNamestringYes——
namestringYes——
storageProviderSecretStorageDtoYes——
expiresAtstring | nullNo——
statusProviderSecretStatusDtoYes——
configuredbooleanYes——
hasSecretbooleanYes——
canDeletebooleanYes——
canConfigurebooleanYes——
configureProviderstring | nullNo——

ProviderSecretsListRequest_unstable​

List provider credentials stored locally by goose.

Type: object

ProviderSecretsListResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
secretsArray<ProviderSecretDto>Yes——

ProviderSecretStatusDto​

Type: "valid" | "expired" | "unknown"

ProviderSecretStorageDto​

Type: "secret_store" | "provider_cache"

ProviderSetupCatalogEntryDto​

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——
namestringYes——
categoryProviderSetupCategoryDtoYes——
acpbooleanNoWhether this provider communicates through ACP.Default: false
descriptionstringYes——
setupMethodProviderSetupMethodDtoYes——
nativeConnectQuerystring | nullNo——
fieldsArray<ProviderSetupFieldDto>No—Default: []
binaryNamestring | nullNo——
docUrlstring | nullNo——
groupProviderSetupGroupDtoYes——
showOnlyWhenInstalledbooleanYes——
aliasesArray<string>No—Default: []
supportsInstallbooleanYes——
supportsAuthbooleanYes——
supportsAuthStatusbooleanYes——

ProviderSetupCatalogListRequest_unstable​

List provider setup catalog entries

Type: object

ProviderSetupCatalogListResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
providersArray<ProviderSetupCatalogEntryDto>Yes——

ProviderSetupCategoryDto​

Type: "agent" | "model"

ProviderSetupFieldDto​

Type: object

FieldTypeRequiredDescriptionConstraints
keystringYes——
labelstringYes——
secretbooleanYes——
requiredbooleanYes——
placeholderstring | nullNo——
defaultValuestring | nullNo——

ProviderSetupGroupDto​

Type: "default" | "additional"

ProviderSetupMethodDto​

Type: "none" | "single_api_key" | "config_fields" | "host_with_oauth_fallback" | "oauth_browser" | "oauth_device_code" | "cloud_credentials" | "local" | "cli_auth"

ProviderSupportedModelsListRequest_unstable​

List the raw model identifiers returned by a provider's live supported-models API.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——

ProviderSupportedModelsListResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——
modelsArray<string>Yes——

ProviderTemplateCapabilitiesDto​

Type: object

FieldTypeRequiredDescriptionConstraints
toolCallbooleanYes——
reasoningbooleanYes——
attachmentbooleanYes——
temperaturebooleanYes——

ProviderTemplateCatalogEntryDto​

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——
namestringYes——
formatstringYes——
apiUrlstringYes——
modelCountintegerYes—Minimum: 0
docUrlstringYes——
envVarstringYes——

ProviderTemplateDto​

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——
namestringYes——
formatstringYes——
apiUrlstringYes——
modelsArray<ProviderTemplateModelDto>Yes——
supportsStreamingbooleanYes——
envVarstringYes——
docUrlstringYes——

ProviderTemplateModelDto​

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes——
namestringYes——
contextLimitintegerYes—Minimum: 0
capabilitiesProviderTemplateCapabilitiesDtoYes——
deprecatedbooleanYes——

ReadResourceRequest_unstable​

Read a resource from an extension.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
uristringYes——
extensionNamestringYes——

ReadResourceResponse_unstable​

Resource read response.

Type: object

FieldTypeRequiredDescriptionConstraints
resultunknownNoThe resource result from the extension (MCP ReadResourceResult).Default: null

RecipeAuthorDto​

Type: object

FieldTypeRequiredDescriptionConstraints
contactstring | nullNo——
metadatastring | nullNo——

RecipeDto​

Type: object

FieldTypeRequiredDescriptionConstraints
versionstringNo—Default: "1.0.0"
titlestringYes——
descriptionstringYes——
instructionsstring | nullNo——
promptstring | nullNo——
extensionsArray<RecipeExtensionDto> | nullNo——
settingsRecipeSettingsDto | nullNo——
activitiesArray<string> | nullNo——
authorRecipeAuthorDto | nullNo——
parametersArray<RecipeParameterDto> | nullNo——
responseRecipeResponseDto | nullNo——
sub_recipesArray<SubRecipeDto> | nullNo——
retryRecipeRetryConfigDto | nullNo——

RecipeExtensionDto​

Type: { name: string; description?: string | null; display_name?: string | null; timeout?: integer | null; bundled?: boolean | null; available_tools?: Array<string> | null; type: "builtin" } | { name: string; description?: string | null; display_name?: string | null; bundled?: boolean | null; available_tools?: Array<string> | null; type: "platform" } | { name: string; description?: string | null; cmd: string; args?: Array<string>; envs?: Record<string, string>; env_keys?: Array<string>; timeout?: integer | null; cwd?: string | null; bundled?: boolean | null; available_tools?: Array<string> | null; type: "stdio" } | { name: string; description?: string | null; uri: string; envs?: Record<string, string>; env_keys?: Array<string>; headers?: Record<string, string>; timeout?: integer | null; socket?: string | null; client_id?: string | null; client_secret_key?: string | null; scopes?: Array<string>; bundled?: boolean | null; available_tools?: Array<string> | null; type: "streamable_http" }

RecipeListEntryDto​

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes——
recipeRecipeDtoYes——
file_pathstringYes——
last_modifiedstringYes——
schedule_cronstring | nullNo——
slash_commandstring | nullNo——

RecipeParameterDto​

Type: object

FieldTypeRequiredDescriptionConstraints
keystringYes——
input_typeRecipeParameterInputTypeDtoYes——
requirementRecipeParameterRequirementDtoYes——
descriptionstringYes——
defaultstring | nullNo——
optionsArray<string> | nullNo——

RecipeParameterInputTypeDto​

Type: "string" | "number" | "boolean" | "date" | "file" | "select"

RecipeParameterRequirementDto​

Type: "required" | "optional" | "user_prompt"

RecipeParamsAction​

Type: "submit" | "cancel"

RecipeParamsResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
actionRecipeParamsActionNo—Default: "submit"
valuesRecord<string, string>No—Default: {}

RecipeResponseDto​

Type: object

FieldTypeRequiredDescriptionConstraints
json_schemaunknownNo——

RecipeRetryConfigDto​

Type: object

FieldTypeRequiredDescriptionConstraints
max_retriesintegerYes—Minimum: 0
checksArray<RecipeSuccessCheckDto>No—Default: []
on_failurestring | nullNo——
timeout_secondsinteger | nullNo—Minimum: 0
on_failure_timeout_secondsinteger | nullNo—Minimum: 0

RecipeSettingsDto​

Type: object

FieldTypeRequiredDescriptionConstraints
goose_providerstring | nullNo——
goose_modelstring | nullNo——
temperaturenumber | nullNo—Format: float
max_turnsinteger | nullNo—Minimum: 0

RecipeSuccessCheckDto​

Type: { command: string; type: "shell" }

RecipeToYamlRequest_unstable​

Serialize a recipe as YAML.

Type: object

FieldTypeRequiredDescriptionConstraints
recipeRecipeDtoYes——

RecipeToYamlResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
yamlstringYes——

RefreshProviderInventoryRequest_unstable​

Trigger a background refresh of provider inventories.

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdsArray<string>NoWhich providers to refresh. Empty means all known providers.Default: []

RefreshProviderInventoryResponse_unstable​

Refresh acknowledgement.

Type: object

FieldTypeRequiredDescriptionConstraints
startedArray<string>YesWhich providers will be refreshed.—
skippedArray<RefreshProviderInventorySkipDto>NoWhich providers were skipped and why.Default: []

RefreshProviderInventorySkipDto​

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes——
reasonRefreshProviderInventorySkipReasonDtoYes——

RefreshProviderInventorySkipReasonDto​

Type: "unknown_provider" | "not_configured" | "does_not_support_refresh" | "already_refreshing"

RemoveConfigExtensionRequest_unstable​

Remove a persisted extension from the user's global goose config.

Type: object

FieldTypeRequiredDescriptionConstraints
configKeystringYes——

RemoveSessionExtensionRequest_unstable​

Remove an extension from an active session.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
extensionKeystringYes——

RenameSessionRequest_unstable​

Rename a session.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
titlestringYes——

RequestRecipeParams_unstable​

Ask the client to provide values for a recipe's parameters.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
parametersArray<RecipeParameterDto>Yes——
parameterScopeIdstring | nullNo——

ResetPromptRequest_unstable​

Reset a goose prompt template to its default content.

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes——

A resource that the server is capable of reading, included in a prompt or tool call result.

Type: object

FieldTypeRequiredDescriptionConstraints
annotationsAnnotations | nullNoOptional annotations that help clients decide how to display or route this content.—
descriptionstring | nullNoOptional human-readable details shown with this protocol object.—
mimeTypestring | nullNoMIME type describing the encoded media payload.—
namestringYesHuman-readable name shown for this protocol object.—
sizeinteger | nullNoOptional size of the linked resource in bytes, if known.—
titlestring | nullNoOptional display title for end-user UI.—
uristringYesURI associated with this resource or media payload.—
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—

Role​

The sender or recipient of messages and data in a conversation.

Type: "assistant" | "user"

RunScheduleNowRequest_unstable​

Run a scheduled recipe job immediately.

Type: object

FieldTypeRequiredDescriptionConstraints
scheduleIdstringYes——

RunScheduleNowResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
statusRunScheduleNowStatusYes——
sessionIdstring | nullNo——

RunScheduleNowStatus​

Type: "completed" | "cancelled"

SavePromptRequest_unstable​

Save a custom goose prompt template.

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes——
contentstringYes——

SaveRecipeRequest_unstable​

Save a recipe to the local recipe library.

Type: object

FieldTypeRequiredDescriptionConstraints
recipeRecipeDtoYes——
idstring | nullNo——

SaveRecipeResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes——
file_namestringYes——
file_pathstringYes——

ScanRecipeRequest_unstable​

Scan a recipe for security warnings.

Type: object

FieldTypeRequiredDescriptionConstraints
recipeRecipeDtoYes——

ScanRecipeResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
has_security_warningsbooleanYes——

ScheduledJobDto​

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes——
sourcestringYes——
cronstringYes——
lastRunstring | nullNo——
currentlyRunningbooleanYes——
pausedbooleanYes——
currentSessionIdstring | nullNo——
jobStartTimestring | nullNo——

ScheduleRecipeRequest_unstable​

Set or clear a recipe's cron schedule.

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes——
cron_schedulestring | nullNo——

SessionExportFormat​

Type: "json" | "markdown"

SessionExtensionEntry​

Type: object

FieldTypeRequiredDescriptionConstraints
extensionGooseExtensionYes——
extensionKeystringYes——

SessionId​

A unique identifier for a conversation session between a client and agent.

Sessions maintain their own context, conversation history, and state,
allowing multiple independent interactions with the same agent.

See protocol docs: Session ID

Type: string

SessionInfo​

Information about a session returned by session/list

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdSessionIdYesUnique identifier for the session—
cwdstringYesThe working directory for this session. Must be an absolute path.—
additionalDirectoriesArray<string>NoAdditional workspace roots reported for this session. Each path must be absolute.

When present, this is the complete ordered additional-root list reported
by the Agent. Omitted and empty values are equivalent: the response
reports no additional roots.
—
titlestring | nullNoHuman-readable title for the session—
updatedAtstring | nullNoISO 8601 timestamp of last activity—
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—

SessionSystemPromptMode​

How a session system prompt update should be applied.

Type: "set" | "append"

SessionUsageUpdate​

Streaming context-window usage update for a session.

Type: object

FieldTypeRequiredDescriptionConstraints
usedintegerYes—Minimum: 0
contextLimitintegerYes—Minimum: 0
accumulatedInputTokensintegerYes—Minimum: 0
accumulatedOutputTokensintegerYes—Minimum: 0
accumulatedCostnumber | nullNo—Format: double

SetConfigExtensionEnabledRequest_unstable​

Set the enabled flag for a persisted extension in the user's global goose config.

Type: object

FieldTypeRequiredDescriptionConstraints
configKeystringYes——
enabledbooleanYes——

SetRecipeSlashCommandRequest_unstable​

Set or clear a recipe's slash command.

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes——
slash_commandstring | nullNo——

SetSessionSystemPromptRequest_unstable​

Set, append, or clear system prompt text for a session.

mode: "set" replaces goose's base system prompt. mode: "append" adds an
instruction under "Additional Instructions". Reusing a key replaces the
previous value for that mode/key; sending empty text clears it.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
modeSessionSystemPromptModeNo—Default: "append"
keystring | nullNo——
textstringYes——

SetToolPermissionsRequest_unstable​

Set permission levels for one or more tools.

Type: object

FieldTypeRequiredDescriptionConstraints
toolPermissionsArray<ToolPermissionEntry>Yes——

SetToolPermissionsResponse_unstable​

Type: object

SourceEntry​

A source discovered by Goose. Filesystem sources use an on-disk path;
built-in sources use a stable synthetic path. Sources may be either
global (shared across all projects) or project-specific.

Type: object

FieldTypeRequiredDescriptionConstraints
typeSourceTypeYes——
namestringYes——
descriptionstringYes——
contentstringYes——
pathstringYesStable on-disk path identifying this source. Pass it back to
update/delete/export to operate on this entry. Skills use the directory
containing SKILL.md; projects use the project file path; built-in
skills use builtin://skills/<name> synthetic paths.
—
globalbooleanYesTrue when the source lives in the user's global sources directory; false
when it lives inside a specific project.
—
writablebooleanNoTrue when this source can be modified through source CRUD methods.
Client-provided bundled sources are returned as read-only.
Default: false
supportingFilesArray<string>NoPaths (absolute) of additional files that live alongside the source.
Only skills currently populate this; empty for other source types.
—
propertiesRecord<string, unknown>NoArbitrary key/value pairs for type-specific metadata (e.g. icon, color,
preferredProvider for projects). Stored in the frontmatter.
—

SourceScope​

Target scope for creating or importing sources.

Type: { scope: "global" } | { projectDir: string; scope: "projectDir" } | { projectId: string; scope: "projectId" }

SourceType​

The type of source entity.

Type: "skill" | "builtinSkill" | "recipe" | "subrecipe" | "agent" | "project"

StatusMessage​

Type: { message: string; type: "notice" } | { message: string; type: "progress" }

StatusMessageUpdate​

Live UI/session status. This is not conversation transcript content, and
should not be persisted or replayed as history.

Type: object

FieldTypeRequiredDescriptionConstraints
statusStatusMessageYes——

SteerSessionRequest_unstable​

Add user input to the currently active prompt without starting a new prompt.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
promptArray<ContentBlock>No—Default: []
expectedRunIdstringYes——

SteerSessionResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
runIdstringYes——
messageIdstringYesStable id of the queued steer message. The same id later appears as
messageId on the streamed UserMessageChunk (with _meta.goose.steer),
letting clients correlate a queued steer with its pickup.
—

SubRecipeDto​

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes——
pathstringYes——
valuesRecord<string, string> | nullNo——
sequential_when_repeatedbooleanNo—Default: false
descriptionstring | nullNo——

TextContent​

Text provided to or from an LLM.

Type: object

FieldTypeRequiredDescriptionConstraints
annotationsAnnotations | nullNoOptional annotations that help clients decide how to display or route this content.—
textstringYesText payload carried by this content block.—
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—

TextResourceContents​

Text-based resource contents.

Type: object

FieldTypeRequiredDescriptionConstraints
mimeTypestring | nullNoMIME type describing the encoded media payload.—
textstringYesText payload carried by this content block.—
uristringYesURI associated with this resource or media payload.—
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—

ToolListItem​

A single tool item returned by the tools list endpoint.

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes——
descriptionstringYes——
parametersArray<string>Yes——
permissionToolPermissionLevel | nullNo——
inputSchemaunknownYes——
outputSchemaunknownNo——

ToolPermissionEntry​

A single tool permission entry.

Type: object

FieldTypeRequiredDescriptionConstraints
toolNamestringYes——
permissionToolPermissionLevelYes——

ToolPermissionLevel​

Permission level for a tool.

Type: "always_allow" | "ask_before" | "never_allow"

TruncateSessionConversationRequest_unstable​

Truncate a session conversation from the given message timestamp onward.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
truncateFromintegerYes——

UnarchiveSessionRequest_unstable​

Unarchive a previously archived session.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——

UnpauseScheduleRequest_unstable​

Resume a paused scheduled recipe job.

Type: object

FieldTypeRequiredDescriptionConstraints
scheduleIdstringYes——

UnstructuredCommandInput​

All text that was typed after the command name is provided as input.

Type: object

FieldTypeRequiredDescriptionConstraints
hintstringYesA hint to display when the input hasn't been provided yet—
_metaRecord<string, unknown> | nullNoThe _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Implementations MUST NOT make assumptions about values at
these keys.

See protocol docs: Extensibility
—

UpdateScheduleRequest_unstable​

Update the cron expression for a scheduled recipe job.

Type: object

FieldTypeRequiredDescriptionConstraints
scheduleIdstringYes——
cronstringYes——

UpdateScheduleResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
jobScheduledJobDtoYes——

UpdateSessionProjectRequest_unstable​

Update the project association for a session.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
projectIdstring | nullNo——

UpdateSourceRequest_unstable​

Update an existing source's name, description, and content by absolute path.

Type: object

FieldTypeRequiredDescriptionConstraints
typeSourceTypeYes——
pathstringYes——
namestringYes——
descriptionstringYes——
contentstringYes——
propertiesRecord<string, unknown> | nullNoWhen Some, replaces all stored properties on the source. When
None (or omitted), the source's existing properties are
preserved. Callers that don't model the full property bag (e.g.
the skills editor, which only edits name/description/content)
should omit this so per-skill metadata isn't silently erased.
—

UpdateSourceResponse_unstable​

Type: object

FieldTypeRequiredDescriptionConstraints
sourceSourceEntryYes——

UpdateWorkingDirRequest_unstable​

Update the working directory for a session.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes——
workingDirstringYes——