Skip to content

Config

47 types. Import any of them from opencode.types.

ConfigAgent

model class-attribute instance-attribute

model: str | ConfigAgentModel | None = Field(
    default=None, exclude_if=is_none
)

request class-attribute instance-attribute

request: ConfigAgentRequest | None = Field(
    default=None, exclude_if=is_none
)

system class-attribute instance-attribute

system: str | None = Field(default=None, exclude_if=is_none)

description class-attribute instance-attribute

description: str | None = Field(
    default=None, exclude_if=is_none
)

mode class-attribute instance-attribute

mode: (
    OpenEnum[Literal["subagent", "primary", "all"]] | None
) = Field(default=None, exclude_if=is_none)

hidden class-attribute instance-attribute

hidden: bool | None = Field(
    default=None, exclude_if=is_none
)

color class-attribute instance-attribute

color: str | None = Field(default=None, exclude_if=is_none)

steps class-attribute instance-attribute

steps: int | None = Field(default=None, exclude_if=is_none)

disabled class-attribute instance-attribute

disabled: bool | None = Field(
    default=None, exclude_if=is_none
)

permissions class-attribute instance-attribute

permissions: PermissionRuleset | None = Field(
    default=None, exclude_if=is_none
)

ConfigAgentModel

provider_id class-attribute instance-attribute

provider_id: str = Field(
    validation_alias="providerID",
    serialization_alias="providerID",
)

model instance-attribute

model: str

variant class-attribute instance-attribute

variant: str | None = Field(
    default=None, exclude_if=is_none
)

ConfigAgentRequest

headers class-attribute instance-attribute

headers: dict[str, str] | None = Field(
    default=None, exclude_if=is_none
)

body class-attribute instance-attribute

body: dict[str, Any] | None = Field(
    default=None, exclude_if=is_none
)

ConfigCommand

template instance-attribute

template: str

description class-attribute instance-attribute

description: str | None = Field(
    default=None, exclude_if=is_none
)

agent class-attribute instance-attribute

agent: str | None = Field(default=None, exclude_if=is_none)

model class-attribute instance-attribute

model: str | ConfigCommandModel | None = Field(
    default=None, exclude_if=is_none
)

subagent class-attribute instance-attribute

subagent: bool | None = Field(
    default=None, exclude_if=is_none
)

subtask class-attribute instance-attribute

subtask: bool | None = Field(
    default=None, exclude_if=is_none
)

Deprecated alias for subagent.

ConfigCommandModel

provider_id class-attribute instance-attribute

provider_id: str = Field(
    validation_alias="providerID",
    serialization_alias="providerID",
)

model instance-attribute

model: str

variant class-attribute instance-attribute

variant: str | None = Field(
    default=None, exclude_if=is_none
)

ConfigDirectory

type class-attribute instance-attribute

type: Literal['directory'] = 'directory'

path instance-attribute

ConfigDocument

type class-attribute instance-attribute

type: Literal['document'] = 'document'

path class-attribute instance-attribute

path: AbsolutePath | None = Field(
    default=None, exclude_if=is_none
)

info instance-attribute

info: ConfigInfo

ConfigEntry module-attribute

ConfigEntry: TypeAlias = Annotated[
    Annotated[ConfigDocument, Tag("document")]
    | Annotated[ConfigDirectory, Tag("directory")]
    | Annotated[UnknownConfigEntry, Tag("__unknown__")],
    Discriminator(
        discriminator(
            "type", "type", ["document", "directory"]
        )
    ),
]

ConfigFormatterEntry

disabled class-attribute instance-attribute

disabled: bool | None = Field(
    default=None, exclude_if=is_none
)

command class-attribute instance-attribute

command: list[str] | None = Field(
    default=None, exclude_if=is_none
)

environment class-attribute instance-attribute

environment: dict[str, str] | None = Field(
    default=None, exclude_if=is_none
)

extensions class-attribute instance-attribute

extensions: list[str] | None = Field(
    default=None, exclude_if=is_none
)

ConfigInfo

schema_ class-attribute instance-attribute

schema_: str | None = Field(
    default=None,
    validation_alias="$schema",
    serialization_alias="$schema",
    exclude_if=is_none,
)

shell class-attribute instance-attribute

shell: str | None = Field(default=None, exclude_if=is_none)

model class-attribute instance-attribute

model: str | ConfigInfoModel | None = Field(
    default=None, exclude_if=is_none
)

default_agent class-attribute instance-attribute

default_agent: str | None = Field(
    default=None, exclude_if=is_none
)

update class-attribute instance-attribute

update: (
    OpenEnum[Literal["disable", "notify", "auto"]] | None
) = Field(default=None, exclude_if=is_none)

share class-attribute instance-attribute

share: (
    OpenEnum[Literal["manual", "auto", "disabled"]] | None
) = Field(default=None, exclude_if=is_none)

enterprise class-attribute instance-attribute

enterprise: ConfigInfoEnterprise | None = Field(
    default=None, exclude_if=is_none
)

username class-attribute instance-attribute

username: str | None = Field(
    default=None, exclude_if=is_none
)

permissions class-attribute instance-attribute

permissions: PermissionRuleset | None = Field(
    default=None, exclude_if=is_none
)

policies class-attribute instance-attribute

policies: list[ConfigInfoPoliciesItem] | None = Field(
    default=None, exclude_if=is_none
)

agents class-attribute instance-attribute

agents: dict[str, ConfigAgent] | None = Field(
    default=None, exclude_if=is_none
)

snapshots class-attribute instance-attribute

snapshots: bool | None = Field(
    default=None, exclude_if=is_none
)

watcher class-attribute instance-attribute

watcher: ConfigInfoWatcher | None = Field(
    default=None, exclude_if=is_none
)

formatter class-attribute instance-attribute

formatter: bool | dict[str, ConfigFormatterEntry] | None = (
    Field(default=None, exclude_if=is_none)
)

lsp class-attribute instance-attribute

lsp: (
    bool
    | dict[str, ConfigInfoLspOption2Value | ConfigLSPServer]
    | None
) = Field(default=None, exclude_if=is_none)

media class-attribute instance-attribute

media: ConfigInfoMedia | None = Field(
    default=None, exclude_if=is_none
)

tool_output class-attribute instance-attribute

tool_output: ConfigInfoToolOutput | None = Field(
    default=None, exclude_if=is_none
)

mcp class-attribute instance-attribute

mcp: ConfigInfoMcp | None = Field(
    default=None, exclude_if=is_none
)

compaction class-attribute instance-attribute

compaction: ConfigInfoCompaction | None = Field(
    default=None, exclude_if=is_none
)

skills class-attribute instance-attribute

skills: list[str] | None = Field(
    default=None, exclude_if=is_none
)

commands class-attribute instance-attribute

commands: dict[str, ConfigCommand] | None = Field(
    default=None, exclude_if=is_none
)

instructions class-attribute instance-attribute

instructions: list[str] | None = Field(
    default=None, exclude_if=is_none
)

references class-attribute instance-attribute

references: (
    dict[
        str, str | ConfigReferenceGit | ConfigReferenceLocal
    ]
    | None
) = Field(default=None, exclude_if=is_none)

websearch class-attribute instance-attribute

websearch: Literal[False] | ConfigWebSearchInfo | None = (
    Field(default=None, exclude_if=is_none)
)

plugins class-attribute instance-attribute

plugins: list[str | ConfigPluginEntry] | None = Field(
    default=None, exclude_if=is_none
)

worktree class-attribute instance-attribute

worktree: ConfigWorktree | None = Field(
    default=None, exclude_if=is_none
)

warming class-attribute instance-attribute

warming: bool | ConfigWarming | None = Field(
    default=None, exclude_if=is_none
)

providers class-attribute instance-attribute

providers: dict[str, ConfigProvider] | None = Field(
    default=None, exclude_if=is_none
)

experimental class-attribute instance-attribute

experimental: ConfigInfoExperimental | None = Field(
    default=None, exclude_if=is_none
)

ConfigInfoCompaction

auto class-attribute instance-attribute

auto: bool | None = Field(default=None, exclude_if=is_none)

keep class-attribute instance-attribute

keep: ConfigInfoCompactionKeep | None = Field(
    default=None, exclude_if=is_none
)

buffer class-attribute instance-attribute

buffer: int | None = Field(default=None, exclude_if=is_none)

ConfigInfoCompactionKeep

tokens class-attribute instance-attribute

tokens: int | None = Field(default=None, exclude_if=is_none)

ConfigInfoEnterprise

url class-attribute instance-attribute

url: str | None = Field(default=None, exclude_if=is_none)

ConfigInfoExperimental

portable_shell_scanner class-attribute instance-attribute

portable_shell_scanner: bool | None = Field(
    default=None, exclude_if=is_none
)

todo class-attribute instance-attribute

todo: bool | None = Field(default=None, exclude_if=is_none)

subagent_depth class-attribute instance-attribute

subagent_depth: int | None = Field(
    default=None, exclude_if=is_none
)

location_idle_timeout class-attribute instance-attribute

location_idle_timeout: str | Literal[False] | None = Field(
    default=None, exclude_if=is_none
)

policies class-attribute instance-attribute

policies: (
    list[ConfigInfoExperimentalPoliciesItem] | None
) = Field(default=None, exclude_if=is_none)

ConfigInfoExperimentalPoliciesItem

action instance-attribute

action: OpenEnum[
    Literal["provider.use", "tool.use", "integration.use"]
]

resource instance-attribute

resource: str

effect instance-attribute

effect: OpenEnum[Literal['allow', 'deny']]

ConfigInfoLspOption2Value

disabled class-attribute instance-attribute

disabled: Literal[True] = True

ConfigInfoMcp

timeout class-attribute instance-attribute

timeout: ConfigInfoMcpTimeout | None = Field(
    default=None, exclude_if=is_none
)

servers class-attribute instance-attribute

servers: dict[str, ConfigInfoMcpServersValue] | None = (
    Field(default=None, exclude_if=is_none)
)

ConfigInfoMcpServersValue module-attribute

ConfigInfoMcpServersValue: TypeAlias = Annotated[
    Annotated[McpLocalConfig, Tag("local")]
    | Annotated[McpRemoteConfig, Tag("remote")]
    | Annotated[
        UnknownConfigInfoMcpServersValue, Tag("__unknown__")
    ],
    Discriminator(
        discriminator("type", "type", ["local", "remote"])
    ),
]

ConfigInfoMcpTimeout

startup class-attribute instance-attribute

startup: int | None = Field(
    default=None, exclude_if=is_none
)

catalog class-attribute instance-attribute

catalog: int | None = Field(
    default=None, exclude_if=is_none
)

execution class-attribute instance-attribute

execution: int | None = Field(
    default=None, exclude_if=is_none
)

ConfigInfoMedia

image class-attribute instance-attribute

image: ConfigInfoMediaImage | None = Field(
    default=None, exclude_if=is_none
)

ConfigInfoMediaImage

auto_resize class-attribute instance-attribute

auto_resize: bool | None = Field(
    default=None, exclude_if=is_none
)

max_width class-attribute instance-attribute

max_width: int | None = Field(
    default=None, exclude_if=is_none
)

max_height class-attribute instance-attribute

max_height: int | None = Field(
    default=None, exclude_if=is_none
)

max_base64_bytes class-attribute instance-attribute

max_base64_bytes: int | None = Field(
    default=None, exclude_if=is_none
)

ConfigInfoModel

provider_id class-attribute instance-attribute

provider_id: str = Field(
    validation_alias="providerID",
    serialization_alias="providerID",
)

model instance-attribute

model: str

variant class-attribute instance-attribute

variant: str | None = Field(
    default=None, exclude_if=is_none
)

ConfigInfoPoliciesItem

action instance-attribute

action: OpenEnum[
    Literal["provider.use", "tool.use", "integration.use"]
]

resource instance-attribute

resource: str

effect instance-attribute

effect: OpenEnum[Literal['allow', 'deny']]

ConfigInfoToolOutput

max_lines class-attribute instance-attribute

max_lines: int | None = Field(
    default=None, exclude_if=is_none
)

max_bytes class-attribute instance-attribute

max_bytes: int | None = Field(
    default=None, exclude_if=is_none
)

ConfigInfoWatcher

ignore class-attribute instance-attribute

ignore: list[str] | None = Field(
    default=None, exclude_if=is_none
)

ConfigLSPServer

command instance-attribute

command: list[str]

extensions class-attribute instance-attribute

extensions: list[str] | None = Field(
    default=None, exclude_if=is_none
)

disabled class-attribute instance-attribute

disabled: bool | None = Field(
    default=None, exclude_if=is_none
)

env class-attribute instance-attribute

env: dict[str, str] | None = Field(
    default=None, exclude_if=is_none
)

initialization class-attribute instance-attribute

initialization: dict[str, Any] | None = Field(
    default=None, exclude_if=is_none
)

ConfigModel

model_id class-attribute instance-attribute

model_id: str | None = Field(
    default=None,
    validation_alias="modelID",
    serialization_alias="modelID",
    exclude_if=is_none,
)

family class-attribute instance-attribute

family: str | None = Field(default=None, exclude_if=is_none)

name class-attribute instance-attribute

name: str | None = Field(default=None, exclude_if=is_none)

release_date class-attribute instance-attribute

release_date: str | None = Field(
    default=None,
    validation_alias="releaseDate",
    serialization_alias="releaseDate",
    exclude_if=is_none,
)

Release date as YYYY-MM-DD or YYYY-MM

compatibility class-attribute instance-attribute

compatibility: ModelCompatibility | None = Field(
    default=None, exclude_if=is_none
)

package class-attribute instance-attribute

package: str | None = Field(
    default=None, exclude_if=is_none
)

settings class-attribute instance-attribute

settings: ConfigModelSettings | None = Field(
    default=None, exclude_if=is_none
)

headers class-attribute instance-attribute

headers: dict[str, str] | None = Field(
    default=None, exclude_if=is_none
)

body class-attribute instance-attribute

body: dict[str, Any] | None = Field(
    default=None, exclude_if=is_none
)

capabilities class-attribute instance-attribute

capabilities: ConfigModelCapabilities | None = Field(
    default=None, exclude_if=is_none
)

variants class-attribute instance-attribute

variants: list[ConfigModelVariantsItem] | None = Field(
    default=None, exclude_if=is_none
)

cost class-attribute instance-attribute

cost: ConfigModelCost | list[ConfigModelCost] | None = (
    Field(default=None, exclude_if=is_none)
)

disabled class-attribute instance-attribute

disabled: bool | None = Field(
    default=None, exclude_if=is_none
)

limit class-attribute instance-attribute

limit: ConfigModelLimit | None = Field(
    default=None, exclude_if=is_none
)

ConfigModelCapabilities

tools class-attribute instance-attribute

tools: bool | None = Field(default=None, exclude_if=is_none)

input class-attribute instance-attribute

input: list[str] | None = Field(
    default=None, exclude_if=is_none
)

output class-attribute instance-attribute

output: list[str] | None = Field(
    default=None, exclude_if=is_none
)

temperature class-attribute instance-attribute

temperature: bool | None = Field(
    default=None, exclude_if=is_none
)

reasoning class-attribute instance-attribute

reasoning: ConfigModelReasoning | None = Field(
    default=None, exclude_if=is_none
)

ConfigModelCost

tier class-attribute instance-attribute

tier: ConfigModelCostTier | None = Field(
    default=None, exclude_if=is_none
)

input instance-attribute

output instance-attribute

cache class-attribute instance-attribute

cache: ConfigModelCostCache | None = Field(
    default=None, exclude_if=is_none
)

ConfigModelCostCache

read class-attribute instance-attribute

read: MoneyUSDPerMillionTokens | None = Field(
    default=None, exclude_if=is_none
)

write class-attribute instance-attribute

write: MoneyUSDPerMillionTokens | None = Field(
    default=None, exclude_if=is_none
)

ConfigModelCostTier

type class-attribute instance-attribute

type: Literal['context'] = 'context'

size instance-attribute

size: int

ConfigModelLimit

context class-attribute instance-attribute

context: int | None = Field(
    default=None, exclude_if=is_none
)

input class-attribute instance-attribute

input: int | None = Field(default=None, exclude_if=is_none)

output class-attribute instance-attribute

output: int | None = Field(default=None, exclude_if=is_none)

ConfigModelReasoning module-attribute

ConfigModelReasoning: TypeAlias = Annotated[
    Annotated[ConfigModelReasoningFalse, Tag("false")]
    | Annotated[ConfigModelReasoningTrue, Tag("true")]
    | Annotated[
        UnknownConfigModelReasoning, Tag("__unknown__")
    ],
    Discriminator(
        discriminator(
            "supported", "supported", ["false", "true"]
        )
    ),
]

ConfigModelReasoningFalse

supported class-attribute instance-attribute

supported: Literal[False] = False

ConfigModelReasoningTrue

supported class-attribute instance-attribute

supported: Literal[True] = True

toggle class-attribute instance-attribute

toggle: bool | None = Field(
    default=None, exclude_if=is_none
)

effort class-attribute instance-attribute

effort: list[str] | None = Field(
    default=None, exclude_if=is_none
)

budget class-attribute instance-attribute

budget: ConfigModelReasoningTrueBudget | None = Field(
    default=None, exclude_if=is_none
)

ConfigModelReasoningTrueBudget

min class-attribute instance-attribute

min: int | None = Field(default=None, exclude_if=is_none)

max class-attribute instance-attribute

max: int | None = Field(default=None, exclude_if=is_none)

ConfigModelSettings

compaction class-attribute instance-attribute

compaction: ProviderCompaction | None = Field(
    default=None, exclude_if=is_none
)

encoding class-attribute instance-attribute

encoding: ProviderEncoding | None = Field(
    default=None, exclude_if=is_none
)

ConfigModelVariantsItem

id instance-attribute

id: str

settings class-attribute instance-attribute

settings: ConfigModelSettings | None = Field(
    default=None, exclude_if=is_none
)

headers class-attribute instance-attribute

headers: dict[str, str] | None = Field(
    default=None, exclude_if=is_none
)

body class-attribute instance-attribute

body: dict[str, Any] | None = Field(
    default=None, exclude_if=is_none
)

ConfigPluginEntry

package instance-attribute

package: str

options class-attribute instance-attribute

options: dict[str, Any] | None = Field(
    default=None, exclude_if=is_none
)

ConfigProvider

canonical class-attribute instance-attribute

canonical: ProviderID | None = Field(
    default=None, exclude_if=is_none
)

name class-attribute instance-attribute

name: str | None = Field(default=None, exclude_if=is_none)

env class-attribute instance-attribute

env: list[str] | None = Field(
    default=None, exclude_if=is_none
)

package class-attribute instance-attribute

package: str | None = Field(
    default=None, exclude_if=is_none
)

compatibility class-attribute instance-attribute

compatibility: ProviderCompatibility | None = Field(
    default=None, exclude_if=is_none
)

settings class-attribute instance-attribute

settings: ConfigProviderSettings | None = Field(
    default=None, exclude_if=is_none
)

headers class-attribute instance-attribute

headers: dict[str, str] | None = Field(
    default=None, exclude_if=is_none
)

body class-attribute instance-attribute

body: dict[str, Any] | None = Field(
    default=None, exclude_if=is_none
)

models class-attribute instance-attribute

models: dict[str, ConfigModel] | None = Field(
    default=None, exclude_if=is_none
)

ConfigProviderSettings

timeout class-attribute instance-attribute

timeout: float | Literal[False] | None = Field(
    default=None, exclude_if=is_none
)

header_timeout class-attribute instance-attribute

header_timeout: float | Literal[False] | None = Field(
    default=None,
    validation_alias="headerTimeout",
    serialization_alias="headerTimeout",
    exclude_if=is_none,
)

chunk_timeout class-attribute instance-attribute

chunk_timeout: float | Literal[False] | None = Field(
    default=None,
    validation_alias="chunkTimeout",
    serialization_alias="chunkTimeout",
    exclude_if=is_none,
)

compaction class-attribute instance-attribute

compaction: ProviderCompaction | None = Field(
    default=None, exclude_if=is_none
)

transport class-attribute instance-attribute

transport: ProviderTransport | None = Field(
    default=None, exclude_if=is_none
)

encoding class-attribute instance-attribute

encoding: ProviderEncoding | None = Field(
    default=None, exclude_if=is_none
)

ConfigReferenceGit

repository instance-attribute

repository: str

branch class-attribute instance-attribute

branch: str | None = Field(default=None, exclude_if=is_none)

description class-attribute instance-attribute

description: str | None = Field(
    default=None, exclude_if=is_none
)

hidden class-attribute instance-attribute

hidden: bool | None = Field(
    default=None, exclude_if=is_none
)

ConfigReferenceLocal

path instance-attribute

path: str

description class-attribute instance-attribute

description: str | None = Field(
    default=None, exclude_if=is_none
)

hidden class-attribute instance-attribute

hidden: bool | None = Field(
    default=None, exclude_if=is_none
)

ConfigShellOption

path instance-attribute

path: str

name instance-attribute

name: str

acceptable instance-attribute

acceptable: bool

ConfigWarming

prompt class-attribute instance-attribute

prompt: str | None = Field(default=None, exclude_if=is_none)

interval class-attribute instance-attribute

interval: str | None = Field(
    default=None, exclude_if=is_none
)

duration class-attribute instance-attribute

duration: str | None = Field(
    default=None, exclude_if=is_none
)

ConfigWebSearchInfo

provider instance-attribute

provider: Literal['random'] | WebSearchID

Reuse a randomly selected provider until it is rate limited, then switch to another available provider.

ConfigWorktree

directory instance-attribute

directory: str