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.48.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/deleteRequest: AppsDeleteRequest_unstable
Response: AppsDeleteResponse_unstable
_goose/unstable/apps/exportRequest: AppsExportRequest_unstable
Response: AppsExportResponse_unstable
_goose/unstable/apps/importRequest: AppsImportRequest_unstable
Response: AppsImportResponse_unstable
_goose/unstable/apps/listRequest: 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/readRequest: ConfigReadRequest_unstable
Response: ConfigReadResponse_unstable
_goose/unstable/config/read-allRequest: ConfigReadAllRequest_unstable
Response: ConfigReadAllResponse_unstable
_goose/unstable/config/removeRequest: ConfigRemoveRequest_unstable
Response: EmptyResponse
_goose/unstable/config/upsertRequest: 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/models/select
Persist the user's model selection for a given provider.
Request: DictationModelSelectRequest_unstable
Response: EmptyResponse
_goose/unstable/dictation/secret/delete
Remove a dictation provider secret value.
Request: DictationSecretDeleteRequest_unstable
Response: EmptyResponse
_goose/unstable/dictation/secret/save
Set a dictation provider secret value.
Request: DictationSecretSaveRequest_unstable
Response: EmptyResponse
_goose/unstable/dictation/transcribe
Transcribe audio via a dictation provider.
Request: DictationTranscribeRequest_unstable
Response: DictationTranscribeResponse_unstable
_goose/unstable/extensions/available
List Goose-owned extension definitions available to configure or enable.
Request: GetAvailableExtensionsRequest_unstable
Response: GetAvailableExtensionsResponse_unstable
_goose/unstable/local-inference/chat-templates/builtin/listRequest: LocalInferenceBuiltinChatTemplatesListRequest_unstable
Response: LocalInferenceBuiltinChatTemplatesListResponse_unstable
_goose/unstable/local-inference/huggingface/repo/variantsRequest: LocalInferenceHuggingFaceRepoVariantsRequest_unstable
Response: LocalInferenceHuggingFaceRepoVariantsResponse_unstable
_goose/unstable/local-inference/huggingface/searchRequest: LocalInferenceHuggingFaceSearchRequest_unstable
Response: LocalInferenceHuggingFaceSearchResponse_unstable
_goose/unstable/local-inference/models/deleteRequest: LocalInferenceModelDeleteRequest_unstable
Response: EmptyResponse
_goose/unstable/local-inference/models/downloadRequest: LocalInferenceModelDownloadRequest_unstable
Response: LocalInferenceModelDownloadResponse_unstable
_goose/unstable/local-inference/models/download/cancelRequest: LocalInferenceModelDownloadCancelRequest_unstable
Response: EmptyResponse
_goose/unstable/local-inference/models/download/progressRequest: LocalInferenceModelDownloadProgressRequest_unstable
Response: LocalInferenceModelDownloadProgressResponse_unstable
_goose/unstable/local-inference/models/evictRequest: LocalInferenceModelEvictRequest_unstable
Response: EmptyResponse
_goose/unstable/local-inference/models/listRequest: LocalInferenceModelsListRequest_unstable
Response: LocalInferenceModelsListResponse_unstable
_goose/unstable/local-inference/models/settings/readRequest: LocalInferenceModelSettingsReadRequest_unstable
Response: LocalInferenceModelSettingsReadResponse_unstable
_goose/unstable/local-inference/models/settings/updateRequest: 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/remove
Remove allowlisted user preferences.
Request: PreferencesRemoveRequest_unstable
Response: EmptyResponse
_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/decodeRequest: DecodeRecipeRequest_unstable
Response: DecodeRecipeResponse_unstable
_goose/unstable/recipes/deleteRequest: DeleteRecipeRequest_unstable
Response: EmptyResponse
_goose/unstable/recipes/encodeRequest: EncodeRecipeRequest_unstable
Response: EncodeRecipeResponse_unstable
_goose/unstable/recipes/listRequest: ListRecipesRequest_unstable
Response: ListRecipesResponse_unstable
_goose/unstable/recipes/parseRequest: ParseRecipeRequest_unstable
Response: ParseRecipeResponse_unstable
_goose/unstable/recipes/saveRequest: SaveRecipeRequest_unstable
Response: SaveRecipeResponse_unstable
_goose/unstable/recipes/scanRequest: ScanRecipeRequest_unstable
Response: ScanRecipeResponse_unstable
_goose/unstable/recipes/scheduleRequest: ScheduleRecipeRequest_unstable
Response: EmptyResponse
_goose/unstable/recipes/slash-commandRequest: SetRecipeSlashCommandRequest_unstable
Response: EmptyResponse
_goose/unstable/recipes/to-yamlRequest: RecipeToYamlRequest_unstable
Response: RecipeToYamlResponse_unstable
_goose/unstable/resources/read
Read a resource from an extension.
Request: ReadResourceRequest_unstable
Response: ReadResourceResponse_unstable
_goose/unstable/schedules/createRequest: CreateScheduleRequest_unstable
Response: CreateScheduleResponse_unstable
_goose/unstable/schedules/deleteRequest: DeleteScheduleRequest_unstable
Response: EmptyResponse
_goose/unstable/schedules/listRequest: ListSchedulesRequest_unstable
Response: ListSchedulesResponse_unstable
_goose/unstable/schedules/pauseRequest: PauseScheduleRequest_unstable
Response: EmptyResponse
_goose/unstable/schedules/run-nowRequest: RunScheduleNowRequest_unstable
Response: RunScheduleNowResponse_unstable
_goose/unstable/schedules/running-job/inspectRequest: InspectRunningJobRequest_unstable
Response: InspectRunningJobResponse_unstable
_goose/unstable/schedules/running-job/killRequest: KillRunningJobRequest_unstable
Response: KillRunningJobResponse_unstable
_goose/unstable/schedules/sessions/listRequest: ListScheduleSessionsRequest_unstable
Response: ListScheduleSessionsResponse_unstable
_goose/unstable/schedules/unpauseRequest: UnpauseScheduleRequest_unstable
Response: EmptyResponse
_goose/unstable/schedules/updateRequest: 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/listRequest: 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 JSON string or share link.
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/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/share/nostrRequest: ShareSessionNostrRequest_unstable
Response: ShareSessionNostrResponse_unstable
_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-paramsRequest: 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
enabledbooleanNoDefault: 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

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes

AppsDeleteResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes
messagestringYes

AppsExportRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes

AppsExportResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
htmlstringYes

AppsImportRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
htmlstringYes

AppsImportResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes
messagestringYes

AppsListRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstring | nullNo

AppsListResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
appsArray<unknown>NoDefault: []

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
contextLimitintegerYesMinimum: 0
maxOutputTokensinteger | nullNoMinimum: 0
reasoningbooleanYes
inputTokenCostnumber | nullNoFormat: double
outputTokenCostnumber | nullNoFormat: double
cacheReadTokenCostnumber | nullNoFormat: double
cacheWriteTokenCostnumber | nullNoFormat: 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

Type: object

ConfigReadAllResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
configRecord<string, unknown>Yes

ConfigReadRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
keystringYes
isSecretbooleanNoDefault: false

ConfigReadResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
valueunknownNoDefault: null

ConfigRemoveRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
keystringYes
isSecretbooleanNoDefault: false

ConfigUpsertRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
keystringYes
valueunknownYes
isSecretbooleanNoDefault: 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

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>NoDefault: []
supportsStreamingboolean | nullNo
headersRecord<string, string>NoDefault: {}
requiresAuthbooleanYes
catalogProviderIdstring | nullNo
basePathstring | nullNo
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>NoDefault: []
supportsStreamingboolean | nullNo
headersRecord<string, string>NoDefault: {}
requiresAuthbooleanYes
catalogProviderIdstring | nullNo
basePathstring | nullNo
preservesThinkingboolean | nullNo

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>NoDefault: []
supportsStreamingboolean | nullNo
headersRecord<string, string>NoDefault: {}
requiresAuthbooleanYes
catalogProviderIdstring | nullNo
basePathstring | nullNo
preservesThinkingboolean | nullNo

CustomProviderUpdateResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
providerIdstringYes
statusProviderConfigStatusDtoYes
refreshRefreshProviderInventoryResponse_unstableYes

DecodeRecipeRequest_unstable

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

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes

DeleteScheduleRequest_unstable

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
levelDiagnosticsReportLevelNoDefault: "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
bytesDownloadedintegerYesMinimum: 0
totalBytesintegerYesMinimum: 0
progressPercentnumberYesFormat: float
statusstringYesserde lowercase of DownloadStatus: "downloading" | "completed" | "failed" | "cancelled"
errorstring | nullNo

DictationLocalModelStatus

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes
labelstringYes
descriptionstringYes
sizeMbintegerYesMinimum: 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

DictationModelSelectRequest_unstable

Persist the user's model selection for a given provider.

Type: object

FieldTypeRequiredDescriptionConstraints
providerstringYes
modelIdstringYes

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>NoDefault: []

DictationSecretDeleteRequest_unstable

Remove a dictation provider secret value.

Type: object

FieldTypeRequiredDescriptionConstraints
providerstringYes

DictationSecretSaveRequest_unstable

Set a dictation provider secret value.

Type: object

FieldTypeRequiredDescriptionConstraints
providerstringYes
valuestringYes

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

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
formatSessionExportFormatNoDefault: "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

GetAvailableExtensionsRequest_unstable

List Goose-owned extension definitions available to configure or enable.

Type: object

GetAvailableExtensionsResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
extensionsArray<GooseExtension>Yes

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>NoDefault: []

GetPromptRequest_unstable

Read a Goose prompt template.

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes

GetPromptResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes
contentstringYes
defaultContentstringYes
isCustomizedbooleanYes

GetSessionExtensionsRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes

GetSessionExtensionsResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
extensionsArray<GooseExtension>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" }

GooseToolCallRequest_unstable

Call a tool from an extension.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes
namestringYes
argumentsunknownNoDefault: null

GooseToolCallResponse_unstable

Tool call response.

Type: object

FieldTypeRequiredDescriptionConstraints
contentArray<unknown>NoDefault: []
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 JSON string or share link.

Type: object

FieldTypeRequiredDescriptionConstraints
inputstringYes
sourceSessionImportSourceYes

ImportSessionResponse_unstable

Import session response — metadata about the newly created session.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes
titlestring | nullNo
updatedAtstring | nullNo
messageCountintegerYesMinimum: 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

Type: object

FieldTypeRequiredDescriptionConstraints
jobIdstringYes

InspectRunningJobResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
runningbooleanYes
sessionIdstring | nullNo
jobStartTimestring | nullNo
runningDurationSecondsinteger | nullNo

KillRunningJobRequest_unstable

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

Type: object

ListRecipesResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
recipesArray<RecipeListEntryDto>Yes

ListScheduleSessionsRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
scheduleIdstringYes
limitintegerYesMinimum: 0

ListScheduleSessionsResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
sessionsArray<SessionInfo>Yes

ListSchedulesRequest_unstable

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

LocalInferenceBuiltinChatTemplatesListRequest_unstable

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
bytesDownloadedintegerYesMinimum: 0
totalBytesintegerYesMinimum: 0
progressPercentnumberYesFormat: float
speedBpsinteger | nullNoMinimum: 0
etaSecondsinteger | nullNoMinimum: 0
errorstring | nullNo
taskExitedbooleanYes

LocalInferenceDownloadState

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

LocalInferenceHfGgufFileDto

Type: object

FieldTypeRequiredDescriptionConstraints
filenamestringYes
sizeBytesintegerYesMinimum: 0
quantizationstringYes
downloadUrlstringYes

LocalInferenceHfModelInfoDto

Type: object

FieldTypeRequiredDescriptionConstraints
repoIdstringYes
authorstringYes
modelNamestringYes
downloadsintegerYesMinimum: 0
ggufFilesArray<LocalInferenceHfGgufFileDto>NoDefault: []
variantsArray<LocalInferenceHfModelVariantDto>NoDefault: []

LocalInferenceHfModelVariantDto

Type: object

FieldTypeRequiredDescriptionConstraints
variantIdstringYes
labelstringYes
backendIdstringYes
formatstringYes
modelIdstringYes
downloadIdstringYes
sizeBytesintegerYesMinimum: 0
filenamestring | nullNo
downloadUrlstring | nullNo
descriptionstringYes
qualityRankintegerYesMinimum: 0
Maximum: 255
shardedbooleanYes
supportedbooleanYes
unsupportedReasonstring | nullNo

LocalInferenceHuggingFaceRepoVariantsRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
repoIdstringYes

LocalInferenceHuggingFaceRepoVariantsResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
variantsArray<LocalInferenceHfModelVariantDto>Yes
recommendedIndexinteger | nullNoMinimum: 0
availableMemoryBytesintegerYesMinimum: 0
downloadedQuantsArray<string>Yes
downloadedVariantsArray<string>Yes

LocalInferenceHuggingFaceSearchRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
querystringYes
limitinteger | nullNoMinimum: 0

LocalInferenceHuggingFaceSearchResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
modelsArray<LocalInferenceHfModelInfoDto>Yes

LocalInferenceModelDeleteRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes

LocalInferenceModelDownloadCancelRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes

LocalInferenceModelDownloadProgressRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes

LocalInferenceModelDownloadProgressResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
progressLocalInferenceDownloadProgressDto | nullNo

LocalInferenceModelDownloadRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
specstringYes
backendIdstring | nullNo
variantIdstring | nullNo

LocalInferenceModelDownloadResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes

LocalInferenceModelDownloadStatusDto

Type: object

FieldTypeRequiredDescriptionConstraints
stateLocalInferenceDownloadStateYes
progressPercentnumber | nullNoFormat: float
bytesDownloadedinteger | nullNoMinimum: 0
totalBytesinteger | nullNoMinimum: 0
speedBpsinteger | nullNoMinimum: 0

LocalInferenceModelDto

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes
repoIdstringYes
filenamestringYes
quantizationstringYes
sizeBytesintegerYesMinimum: 0
statusLocalInferenceModelDownloadStatusDtoYes
recommendedbooleanYes
isLoadedbooleanYes
settingsLocalInferenceModelSettingsDtoYes
visionCapablebooleanYes
mmprojStatusLocalInferenceModelDownloadStatusDto | nullNo

LocalInferenceModelEvictRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes

LocalInferenceModelSettingsDto

Type: object

FieldTypeRequiredDescriptionConstraints
backendIdstring | nullNo
contextSizeinteger | nullNoMinimum: 0
maxOutputTokensinteger | nullNoMinimum: 0
draftModelstring | nullNo
samplingLocalInferenceSamplingConfigNoDefault: {"type":"Temperature","temperature":0.800000011920929,"topK":40,"topP":0.949999988079071,"minP":0.05000000074505806}
repeatPenaltynumberYesFormat: float
repeatLastNintegerYes
frequencyPenaltynumberYesFormat: float
presencePenaltynumberYesFormat: float
nBatchinteger | nullNoMinimum: 0
nGpuLayersinteger | nullNoMinimum: 0
useMlockbooleanYes
flashAttentionboolean | nullNo
nThreadsinteger | nullNo
toolCallingLocalInferenceToolCallingModeNoDefault: "auto"
chatTemplateLocalInferenceChatTemplateNoDefault: {"type":"embedded"}
enableThinkingbooleanYes
visionCapablebooleanYes
imageTokenEstimateintegerYesMinimum: 0
mmprojSizeBytesintegerYesMinimum: 0

LocalInferenceModelSettingsReadRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes

LocalInferenceModelSettingsReadResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
settingsLocalInferenceModelSettingsDtoYes

LocalInferenceModelSettingsUpdateRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
modelIdstringYes
settingsLocalInferenceModelSettingsDtoYes

LocalInferenceModelSettingsUpdateResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
settingsLocalInferenceModelSettingsDtoYes

LocalInferenceModelsListRequest_unstable

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 | nullNoFormat: double
costSourceCostSourceData | nullNo
elapsedMsinteger | nullNoWall-clock generation time, used by the client for a tokens/sec readout.Minimum: 0
timeToFirstTokenMsinteger | nullNoMinimum: 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>NoDefault: []
enableImportedExtensionsbooleanNoDefault: false

OnboardingImportApplyResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
importedOnboardingImportCountsYes
skippedOnboardingImportCountsYes
warningsArray<string>NoDefault: []
providerDefaultsDefaultsReadResponse_unstable | nullNo

OnboardingImportCandidate

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes
sourceKindOnboardingImportSourceKindYes
displayNamestringYes
pathstringYes
countsOnboardingImportCountsYes
warningsArray<string>NoDefault: []

OnboardingImportCounts

Type: object

FieldTypeRequiredDescriptionConstraints
providersintegerYesMinimum: 0
extensionsintegerYesMinimum: 0
sessionsintegerYesMinimum: 0
skillsintegerYesMinimum: 0
projectsintegerYesMinimum: 0
preferencesintegerYesMinimum: 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

Type: object

FieldTypeRequiredDescriptionConstraints
contentstringYes

ParseRecipeResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
recipeRecipeDtoYes

PauseScheduleRequest_unstable

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>NoDefault: []

PreferencesReadResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
valuesArray<PreferenceValue>Yes

PreferencesRemoveRequest_unstable

Remove allowlisted user preferences.

Type: object

FieldTypeRequiredDescriptionConstraints
keysArray<PreferenceKey>NoDefault: []

PreferencesSaveRequest_unstable

Save allowlisted user preferences.

Type: object

FieldTypeRequiredDescriptionConstraints
valuesArray<PreferenceValue>NoDefault: []

PreferenceValue

Type: object

FieldTypeRequiredDescriptionConstraints
keyPreferenceKeyYes
valueunknownNoDefault: 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 | nullNoDefault: null
isSetbooleanYes
isSecretbooleanYes
requiredbooleanYes

ProviderConfigKey

Type: object

FieldTypeRequiredDescriptionConstraints
namestringYes
requiredbooleanYes
secretbooleanYes
defaultstring | nullNoDefault: null
oauthFlowbooleanNoDefault: false
deviceCodeFlowbooleanNoDefault: false
primarybooleanNoDefault: 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>NoDefault: []

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
expiresInintegerYesMinimum: 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.
categoryProviderSetupCategoryDtoYesWhether this inventory entry represents an agent provider or a model provider.
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.
modelSelectionHintstring | nullNoGuidance message shown when this provider manages its own model selection externally.

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>NoDefault: []
binaryNamestring | nullNo
docUrlstring | nullNo
groupProviderSetupGroupDtoYes
showOnlyWhenInstalledbooleanYes
aliasesArray<string>NoDefault: []
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
modelCountintegerYesMinimum: 0
docUrlstringYes
envVarstringYes

ProviderTemplateDto

Type: object

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

ProviderTemplateModelDto

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes
namestringYes
contextLimitintegerYesMinimum: 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
versionstringNoDefault: "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
actionRecipeParamsActionNoDefault: "submit"
valuesRecord<string, string>NoDefault: {}

RecipeResponseDto

Type: object

FieldTypeRequiredDescriptionConstraints
json_schemaunknownNo

RecipeRetryConfigDto

Type: object

FieldTypeRequiredDescriptionConstraints
max_retriesintegerYesMinimum: 0
checksArray<RecipeSuccessCheckDto>NoDefault: []
on_failurestring | nullNo
timeout_secondsinteger | nullNoMinimum: 0
on_failure_timeout_secondsinteger | nullNoMinimum: 0

RecipeSettingsDto

Type: object

FieldTypeRequiredDescriptionConstraints
goose_providerstring | nullNo
goose_modelstring | nullNo
temperaturenumber | nullNoFormat: float
max_turnsinteger | nullNoMinimum: 0

RecipeSuccessCheckDto

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

RecipeToYamlRequest_unstable

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
namestringYes

RenameSessionRequest_unstable

Rename a session.

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes
titlestringYes

RequestRecipeParams_unstable

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

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

Type: object

FieldTypeRequiredDescriptionConstraints
recipeRecipeDtoYes
idstring | nullNo

SaveRecipeResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes
file_namestringYes
file_pathstringYes

ScanRecipeRequest_unstable

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

Type: object

FieldTypeRequiredDescriptionConstraints
idstringYes
cron_schedulestring | nullNo

SessionExportFormat

Type: "json" | "markdown"

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

SessionImportSource

Type: "auto" | "json" | "nostr"

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
usedintegerYesMinimum: 0
contextLimitintegerYesMinimum: 0
accumulatedInputTokensintegerYesMinimum: 0
accumulatedOutputTokensintegerYesMinimum: 0
accumulatedCostnumber | nullNoFormat: 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

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
modeSessionSystemPromptModeNoDefault: "append"
keystring | nullNo
textstringYes

SetToolPermissionsRequest_unstable

Set permission levels for one or more tools.

Type: object

FieldTypeRequiredDescriptionConstraints
toolPermissionsArray<ToolPermissionEntry>Yes

SetToolPermissionsResponse_unstable

Type: object

ShareSessionNostrRequest_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
sessionIdstringYes
relaysArray<string>Yes

ShareSessionNostrResponse_unstable

Type: object

FieldTypeRequiredDescriptionConstraints
deeplinkstringYes
neventstringYes
eventIdstringYes
relaysArray<string>Yes

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>NoDefault: []
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_repeatedbooleanNoDefault: 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

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

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