Skip to content

Repositories and version control configuration

Repository relationships, VCS providers, dispatch, commits, and workspace configuration.

Defaults come from the schema when declared, otherwise from the bundled YAML. An object with listed children is expanded below; {…} and […] summarize compound defaults. A dash means the schema has no finite allowed-value list.

commit

Config key Type Default Allowed values Description
commit object {message} (values below) — Configuration for SASE commit enforcement.
commit.message object {require_conventional_subject, allowed_types} (values below) — Commit-message subject validation policy.
commit.message.require_conventional_subject boolean true — Reject SASE commit messages whose subject line is not a Conventional Commit.
commit.message.allowed_types array ["build","chore","ci","deps","docs","feat","fix","perf","refactor","revert","style","test"] — Commit types accepted by the Conventional Commit subject validator. A configured list replaces the built-in set.
commit.message.allowed_types[] string not set — —

commit_hooks

Config key Type Default Allowed values Description
commit_hooks object {before, after} (values below) — Commands to run before VCS dispatch and after a commit-producing dispatch succeeds.
commit_hooks.before string "" — Command to run before commit dispatch (e.g., 'just fix'). Empty string means disabled.
commit_hooks.after string "" — Command to run after a commit is created and, where applicable, pushed. Empty string means disabled.

dispatch

Config key Type Default Allowed values Description
dispatch object {…} (7 keys; values below) — Remote dispatch provider and enrolled machine configuration.
dispatch.providers object {} — Dispatch provider settings keyed by provider ref.
dispatch.providers.<key> object not set — Settings for one dispatch provider.
dispatch.providers.<key>.enabled boolean false — Enable this provider for explicit dispatch operations.
dispatch.machines object {} — Viewer-local remote machine aliases keyed by alias.
dispatch.machines.<key> object not set — One enrolled remote machine alias. The credential_ref points to local secret storage; tokens must never appear here.
dispatch.machines.<key>.provider string not set — Opaque dispatch provider ref used for routing metadata.
dispatch.machines.<key>.endpoint string not set — HTTPS fleet gateway endpoint for this alias.
dispatch.machines.<key>.credential_ref string not set — Opaque reference into the local dispatch credential store.
dispatch.machines.<key>.installation_pin string not set — Authoritative remote gateway installation identity pin.
dispatch.machines.<key>.ssh_target string not set — SSH destination used for terminal handoffs; omitted defaults to the machine alias.
dispatch.machines.<key>.connection_kind string "gateway" "gateway", "tunnel", "direct" Fleet connection kind.
dispatch.machines.<key>.tls object not set — Fleet TLS trust settings.
dispatch.machines.<key>.tls.mode string "system_roots" "system_roots", "pinned_ca", "pinned_server_name" —
dispatch.machines.<key>.tls.ca_ref string | null null — Opaque CA reference for pinned_ca mode.
dispatch.machines.<key>.tls.server_name_ref string | null null — Opaque server-name reference for pinned_server_name mode.
dispatch.machines.<key>.quarantined boolean false — Whether this alias is quarantined until explicit repair.
dispatch.machines.<key>.quarantine_reason string "" — Non-secret explanation for a quarantined alias.
dispatch.remote_hosts array [] — Deprecated legacy federation host list. Use dispatch.machines for new remote dispatch configuration.
dispatch.remote_hosts[] object not set — Deprecated legacy remote fleet host consumed only by the federation fallback path.
dispatch.remote_hosts[].enabled boolean true — Include this legacy host in federation worker routing.
dispatch.remote_hosts[].alias string not set — Optional stable legacy host alias.
dispatch.remote_hosts[].provider_ref string not set — Opaque legacy provider reference.
dispatch.remote_hosts[].endpoint string not set — HTTPS fleet gateway endpoint for this legacy host.
dispatch.remote_hosts[].credential_ref string not set — Legacy environment credential reference, formatted as env:NAME.
dispatch.remote_hosts[].pinned_installation_id string not set — Optional target installation pin expected from this host.
dispatch.remote_hosts[].connection_kind string "gateway" "gateway" Legacy connection kind.
dispatch.discovery object {} — Explicit provider discovery settings. Discovery is never run during ordinary config loading.
dispatch.discovery.enabled_providers array ["builtin@tailnet"] — Provider refs allowed for explicit machine discovery.
dispatch.discovery.enabled_providers[] string not set — —
dispatch.federation_worker object {…} (9 keys; values below) — Local federation worker supervision and IPC settings.
dispatch.federation_worker.enabled boolean true — Allow the local federation worker to start when enrolled machines are configured.
dispatch.federation_worker.command string "" — Worker command override, parsed without a shell. Empty string uses packaged-worker and linked-core development discovery.
dispatch.federation_worker.sase_home string "" — SASE home passed to the worker. Empty string uses the runtime default.
dispatch.federation_worker.run_root string "" — Host-local runtime directory override. Empty string derives from SASE home and host identity.
dispatch.federation_worker.socket_path string "" — Unix socket override. Empty string derives from the runtime directory.
dispatch.federation_worker.idle_timeout_seconds number 300 — Seconds an unused worker may sit idle before exiting.
dispatch.federation_worker.startup_timeout_seconds number 5 — Seconds to wait for a spawned worker to answer IPC health.
dispatch.federation_worker.request_timeout_seconds number 5 — Default finite deadline for facade read and launch calls.
dispatch.federation_worker.max_frame_bytes integer 1048576 — Maximum IPC request or response frame size.
dispatch.request_timeout_seconds number 5 — Default per-request timeout for fleet gateway calls.
dispatch.status_cache_seconds number 60 — Default freshness window for future dispatch status caches.

external_mirror

Config key Type Default Allowed values Description
external_mirror object {issues, pull_requests, exclude_labels, pr_authors} (values below) — Configuration for the external tracker mirror (issues into beads, pull requests into Patches).
external_mirror.issues object {filters} (values below) — Configuration for mirroring tracker issues into beads.
external_mirror.issues.filters object {author_globs, label_globs, title_globs, states} (values below) — Selection criteria for external_mirror.issues; an issue must pass every configured criterion to be mirrored into a bead. An empty criterion accepts everything; *_globs entries may be !-prefixed to exclude. Setting a criterion replaces the shipped defaults for that criterion rather than appending to them.
external_mirror.issues.filters.author_globs array [] — Issue author globs, including !-prefixed exclusions. Empty (the default) accepts every author.
external_mirror.issues.filters.author_globs[] string not set — —
external_mirror.issues.filters.label_globs array [] — Issue label globs, including !-prefixed exclusions, matched against every label on the issue. Empty (the default) accepts every label set.
external_mirror.issues.filters.label_globs[] string not set — —
external_mirror.issues.filters.title_globs array [] — Issue title globs, including !-prefixed exclusions. Empty (the default) accepts every title.
external_mirror.issues.filters.title_globs[] string not set — —
external_mirror.issues.filters.states array [] — Issue states accepted for mirroring. Empty (the default) accepts every state.
external_mirror.issues.filters.states[] string not set "open", "closed" —
external_mirror.pull_requests object {filters} (values below) — Configuration for adopting remote pull requests as Patches.
external_mirror.pull_requests.filters object {…} (5 keys; values below) — Selection criteria for external_mirror.pull_requests; a remote pull request must pass every configured criterion to be adopted as a Patch. An empty criterion accepts everything; *_globs entries may be !-prefixed to exclude. Setting a criterion replaces the shipped defaults for that criterion rather than appending to them.
external_mirror.pull_requests.filters.author_globs array [] — Remote PR author globs, including !-prefixed exclusions. Empty (the default) accepts every author.
external_mirror.pull_requests.filters.author_globs[] string not set — —
external_mirror.pull_requests.filters.base_ref_globs array [] — Remote PR base-ref globs, including !-prefixed exclusions. Empty (the default) accepts every base ref.
external_mirror.pull_requests.filters.base_ref_globs[] string not set — —
external_mirror.pull_requests.filters.head_ref_globs array ["!release-please--*","!release-please/*","!release-plz-*","!release-plz/*"] — Remote PR head-ref globs, including !-prefixed exclusions. Ships with release-please and release-plz head-ref exclusions so those PRs are not adopted as Patches by default.
external_mirror.pull_requests.filters.head_ref_globs[] string not set — —
external_mirror.pull_requests.filters.title_globs array [] — Remote PR title globs, including !-prefixed exclusions. Empty (the default) accepts every title.
external_mirror.pull_requests.filters.title_globs[] string not set — —
external_mirror.pull_requests.filters.states array [] — Remote PR states accepted for adoption. Empty (the default) accepts every state.
external_mirror.pull_requests.filters.states[] string not set "open", "closed" —
external_mirror.exclude_labels array [] — Deprecated alias for external_mirror.issues.filters.label_globs; folds in as negated globs when label_globs is empty. Tracker labels whose issues are never mirrored into beads.
external_mirror.exclude_labels[] string not set — —
external_mirror.pr_authors array [] — Deprecated alias for external_mirror.pull_requests.filters.author_globs; folds in as plain (non-negated) globs when author_globs is empty. Remote PR authors whose pull requests are adopted as Patches.
external_mirror.pr_authors[] string not set — —

linked_repos

Config key Type Default Allowed values Description
linked_repos array [] — Deprecated alias for 'repos.linked'. Still parsed during the compatibility window; prefer 'repos.linked' in new config.
linked_repos[] object not set — —
linked_repos[].auto_clone boolean false — Materialize and synchronize this linked repository automatically before each agent launch.
linked_repos[].name string not set — Stable alias used in prompts, metadata, and SASE_LINKED_REPO_<NAME>_DIR env vars.
linked_repos[].path string not set — Primary checkout path. Relative paths are resolved from the project's primary WORKSPACE_DIR.
linked_repos[].description string not set — Human-readable purpose used when generating agent memory for this linked repository.
linked_repos[].revision_pin string not set — Optional pin file relative to the primary checkout root that holds this linked repo's pushed SHA. When set, the commit finalizer commits this sibling first and writes its SHA into the pin file before the primary commit.

repos

Config key Type Default Allowed values Description
repos object {} — Repositories related to the current project.
repos.linked array [] — Related repositories exposed to launched agents as workspace-matched directories.
repos.linked[] object not set — —
repos.linked[].auto_clone boolean false — Materialize and synchronize this linked repository automatically before each agent launch.
repos.linked[].name string not set — Stable alias used in prompts, metadata, and SASE_LINKED_REPO_<NAME>_DIR env vars.
repos.linked[].path string not set — Primary checkout path. Relative paths are resolved from the project's primary WORKSPACE_DIR.
repos.linked[].description string not set — Human-readable purpose used when generating agent memory for this linked repository.
repos.linked[].revision_pin string not set — Optional pin file relative to the primary checkout root that holds this linked repo's pushed SHA. When set, the commit finalizer commits this sibling first and writes its SHA into the pin file before the primary commit.
repos.sidecar object {} — Project-owned sidecar repositories keyed by role name. Reserved roles (plans, beads, agents, attachments, attachments-private) belong under builtin; every other role is a document sidecar and belongs under custom. Ordinary roles clone below sase/repos/<role>; the hidden agents, attachments, and attachments-private roles are explicitly accessible only at ~/.sase/projects/<project_key>/repos/<role>.
repos.sidecar.builtin object {} — Overrides for the reserved sidecar roles. Keys are role names and must be one of plans, beads, agents, attachments, or attachments-private.
repos.sidecar.builtin.<key> object not set — One sidecar repository, keyed by its role name under repos.sidecar.builtin or repos.sidecar.custom.
repos.sidecar.builtin.<key>.auto_clone boolean false — Materialize and synchronize this sidecar automatically before each agent launch. The intrinsic agents role ignores this setting and is never exposed to launched agents or cloned into workspaces.
repos.sidecar.builtin.<key>.auto_sync boolean false — Opt this role's materialized primary sidecar clone into conservative background convergence: fetch and fast-forward only while clean, attached, and non-diverged. Independent of auto_clone. The intrinsic agents role ignores this setting.
repos.sidecar.builtin.<key>.description string not set — Human-readable purpose used in repository inventory and generated agent memory.
repos.sidecar.builtin.<key>.disabled boolean false — Disable this sidecar entry and suppress matching implicit sidecar defaults, including the managed-project agents sidecar.
repos.sidecar.builtin.<key>.ref object not set — Optional contextual ref renderer and document filter policy for this sidecar role.
repos.sidecar.builtin.<key>.ref.use string not set — Installed artifact-reference provider id to use as the base spec, qualified as <plugin>@<id> ('builtin' or an installed distribution name).
repos.sidecar.builtin.<key>.ref.kind string not set — Artifact reference kind, for inline specs or provider overrides.
repos.sidecar.builtin.<key>.ref.icon string not set — Single emoji or glyph rendered as this provider pane's Artifacts tab mark.
repos.sidecar.builtin.<key>.ref.expansion_format string not set — Shared artifact-reference expansion format.
repos.sidecar.builtin.<key>.ref.properties object not set — Declared artifact-entry properties for this document ref kind.
repos.sidecar.builtin.<key>.ref.properties.<key> object not set — —
repos.sidecar.builtin.<key>.ref.properties.<key>.type string not set "string", "enum", "boolean", "integer", "number", "date", "datetime", "string_list" —
repos.sidecar.builtin.<key>.ref.properties.<key>.values array not set — Allowed values for enum properties.
repos.sidecar.builtin.<key>.ref.properties.<key>.values[] string not set — —
repos.sidecar.builtin.<key>.ref.properties.<key>.source string not set "markdown_frontmatter", "provider" —
repos.sidecar.builtin.<key>.ref.detail object not set — Detail fields used by downstream artifact views.
repos.sidecar.builtin.<key>.ref.detail.fields array not set — —
repos.sidecar.builtin.<key>.ref.detail.fields[] string not set — —
repos.sidecar.builtin.<key>.ref.identity object not set — Optional identity property for this document kind.
repos.sidecar.builtin.<key>.ref.identity.property string not set — —
repos.sidecar.builtin.<key>.ref.inventory object not set — Document inventory policy for completion and resolution.
repos.sidecar.builtin.<key>.ref.inventory.globs array not set — Repo-relative document path globs, including !-prefixed exclusions. Omit for the provider default; an empty list allows no document paths.
repos.sidecar.builtin.<key>.ref.inventory.globs[] string not set — —
repos.sidecar.builtin.<key>.ref.publication object not set — Publication and back-link behavior for this document kind.
repos.sidecar.builtin.<key>.ref.publication.link string not set "vcs_permalink", "agents_object", "none" —
repos.sidecar.builtin.<key>.ref.publication.referenced_by string not set "markdown_table", "none" —
repos.sidecar.builtin.<key>.ref.filters object not set — Deprecated alias for inventory.globs.
repos.sidecar.builtin.<key>.ref.filters.path_globs array not set — Repo-relative document path globs, including !-prefixed exclusions. Omit for the Markdown default; an empty list allows no paths.
repos.sidecar.builtin.<key>.ref.filters.path_globs[] string not set — —
repos.sidecar.builtin.<key>.ref.pane object not set — Optional Artifacts pane presentation hints for this document ref kind.
repos.sidecar.builtin.<key>.ref.pane.label string not set — Short Artifacts sub-tab label for this document kind.
repos.sidecar.builtin.<key>.ref.pane.description string not set — One-line pane summary used by the Artifacts pane brief and hover tooltip.
repos.sidecar.builtin.<key>.ref.pane.description_body string not set — Optional pane detail used by the expanded Artifacts pane brief.
repos.sidecar.builtin.<key>.ref.pane.order integer not set — Relative sort order among provider-backed Artifacts panes.
repos.sidecar.builtin.<key>.ref.pane.row object not set — —
repos.sidecar.builtin.<key>.ref.pane.row.title string not set — —
repos.sidecar.builtin.<key>.ref.pane.row.badges string | array not set — —
repos.sidecar.builtin.<key>.ref.pane.row.badges[] string not set — —
repos.sidecar.builtin.<key>.ref.pane.row.secondary string | array not set — —
repos.sidecar.builtin.<key>.ref.pane.row.secondary[] string not set — —
repos.sidecar.builtin.<key>.ref.pane.row.list_fields string | array not set — —
repos.sidecar.builtin.<key>.ref.pane.row.list_fields[] string not set — —
repos.sidecar.builtin.<key>.ref.pane.row.fields string | array not set — —
repos.sidecar.builtin.<key>.ref.pane.row.fields[] string not set — —
repos.sidecar.builtin.<key>.ref.pane.default_sort array not set — —
repos.sidecar.builtin.<key>.ref.pane.default_sort[] string | object not set — —
repos.sidecar.builtin.<key>.ref.pane.default_sort[].field string not set — —
repos.sidecar.builtin.<key>.ref.pane.default_sort[].direction string "asc" "asc", "desc" —
repos.sidecar.builtin.<key>.ref.pane.facets string | array not set — —
repos.sidecar.builtin.<key>.ref.pane.facets[] string not set — —
repos.sidecar.builtin.<key>.ref.pane.group_by string | array not set — —
repos.sidecar.builtin.<key>.ref.pane.group_by[] string not set — —
repos.sidecar.builtin.<key>.ref.pane.empty_state object not set — —
repos.sidecar.builtin.<key>.ref.pane.empty_state.title string not set — —
repos.sidecar.builtin.<key>.ref.pane.empty_state.body string not set — —
repos.sidecar.builtin.<key>.repo string not set — Optional owner/repo or bare repository slug. Omit to derive <project>--<role> in the project's organization.
repos.sidecar.builtin.<key>.visibility string "public" "public", "private" Visibility used when creating a missing sidecar repository. Set the managed-project agents role to private to override its public default.
repos.sidecar.custom object {} — User-declared document sidecars such as research. Keys are role names and must not name a reserved role (plans, beads, agents, attachments, attachments-private).
repos.sidecar.custom.<key> object not set — One sidecar repository, keyed by its role name under repos.sidecar.builtin or repos.sidecar.custom.
repos.sidecar.custom.<key>.auto_clone boolean false — Materialize and synchronize this sidecar automatically before each agent launch. The intrinsic agents role ignores this setting and is never exposed to launched agents or cloned into workspaces.
repos.sidecar.custom.<key>.auto_sync boolean false — Opt this role's materialized primary sidecar clone into conservative background convergence: fetch and fast-forward only while clean, attached, and non-diverged. Independent of auto_clone. The intrinsic agents role ignores this setting.
repos.sidecar.custom.<key>.description string not set — Human-readable purpose used in repository inventory and generated agent memory.
repos.sidecar.custom.<key>.disabled boolean false — Disable this sidecar entry and suppress matching implicit sidecar defaults, including the managed-project agents sidecar.
repos.sidecar.custom.<key>.ref object not set — Optional contextual ref renderer and document filter policy for this sidecar role.
repos.sidecar.custom.<key>.ref.use string not set — Installed artifact-reference provider id to use as the base spec, qualified as <plugin>@<id> ('builtin' or an installed distribution name).
repos.sidecar.custom.<key>.ref.kind string not set — Artifact reference kind, for inline specs or provider overrides.
repos.sidecar.custom.<key>.ref.icon string not set — Single emoji or glyph rendered as this provider pane's Artifacts tab mark.
repos.sidecar.custom.<key>.ref.expansion_format string not set — Shared artifact-reference expansion format.
repos.sidecar.custom.<key>.ref.properties object not set — Declared artifact-entry properties for this document ref kind.
repos.sidecar.custom.<key>.ref.properties.<key> object not set — —
repos.sidecar.custom.<key>.ref.properties.<key>.type string not set "string", "enum", "boolean", "integer", "number", "date", "datetime", "string_list" —
repos.sidecar.custom.<key>.ref.properties.<key>.values array not set — Allowed values for enum properties.
repos.sidecar.custom.<key>.ref.properties.<key>.values[] string not set — —
repos.sidecar.custom.<key>.ref.properties.<key>.source string not set "markdown_frontmatter", "provider" —
repos.sidecar.custom.<key>.ref.detail object not set — Detail fields used by downstream artifact views.
repos.sidecar.custom.<key>.ref.detail.fields array not set — —
repos.sidecar.custom.<key>.ref.detail.fields[] string not set — —
repos.sidecar.custom.<key>.ref.identity object not set — Optional identity property for this document kind.
repos.sidecar.custom.<key>.ref.identity.property string not set — —
repos.sidecar.custom.<key>.ref.inventory object not set — Document inventory policy for completion and resolution.
repos.sidecar.custom.<key>.ref.inventory.globs array not set — Repo-relative document path globs, including !-prefixed exclusions. Omit for the provider default; an empty list allows no document paths.
repos.sidecar.custom.<key>.ref.inventory.globs[] string not set — —
repos.sidecar.custom.<key>.ref.publication object not set — Publication and back-link behavior for this document kind.
repos.sidecar.custom.<key>.ref.publication.link string not set "vcs_permalink", "agents_object", "none" —
repos.sidecar.custom.<key>.ref.publication.referenced_by string not set "markdown_table", "none" —
repos.sidecar.custom.<key>.ref.filters object not set — Deprecated alias for inventory.globs.
repos.sidecar.custom.<key>.ref.filters.path_globs array not set — Repo-relative document path globs, including !-prefixed exclusions. Omit for the Markdown default; an empty list allows no paths.
repos.sidecar.custom.<key>.ref.filters.path_globs[] string not set — —
repos.sidecar.custom.<key>.ref.pane object not set — Optional Artifacts pane presentation hints for this document ref kind.
repos.sidecar.custom.<key>.ref.pane.label string not set — Short Artifacts sub-tab label for this document kind.
repos.sidecar.custom.<key>.ref.pane.description string not set — One-line pane summary used by the Artifacts pane brief and hover tooltip.
repos.sidecar.custom.<key>.ref.pane.description_body string not set — Optional pane detail used by the expanded Artifacts pane brief.
repos.sidecar.custom.<key>.ref.pane.order integer not set — Relative sort order among provider-backed Artifacts panes.
repos.sidecar.custom.<key>.ref.pane.row object not set — —
repos.sidecar.custom.<key>.ref.pane.row.title string not set — —
repos.sidecar.custom.<key>.ref.pane.row.badges string | array not set — —
repos.sidecar.custom.<key>.ref.pane.row.badges[] string not set — —
repos.sidecar.custom.<key>.ref.pane.row.secondary string | array not set — —
repos.sidecar.custom.<key>.ref.pane.row.secondary[] string not set — —
repos.sidecar.custom.<key>.ref.pane.row.list_fields string | array not set — —
repos.sidecar.custom.<key>.ref.pane.row.list_fields[] string not set — —
repos.sidecar.custom.<key>.ref.pane.row.fields string | array not set — —
repos.sidecar.custom.<key>.ref.pane.row.fields[] string not set — —
repos.sidecar.custom.<key>.ref.pane.default_sort array not set — —
repos.sidecar.custom.<key>.ref.pane.default_sort[] string | object not set — —
repos.sidecar.custom.<key>.ref.pane.default_sort[].field string not set — —
repos.sidecar.custom.<key>.ref.pane.default_sort[].direction string "asc" "asc", "desc" —
repos.sidecar.custom.<key>.ref.pane.facets string | array not set — —
repos.sidecar.custom.<key>.ref.pane.facets[] string not set — —
repos.sidecar.custom.<key>.ref.pane.group_by string | array not set — —
repos.sidecar.custom.<key>.ref.pane.group_by[] string not set — —
repos.sidecar.custom.<key>.ref.pane.empty_state object not set — —
repos.sidecar.custom.<key>.ref.pane.empty_state.title string not set — —
repos.sidecar.custom.<key>.ref.pane.empty_state.body string not set — —
repos.sidecar.custom.<key>.repo string not set — Optional owner/repo or bare repository slug. Omit to derive <project>--<role> in the project's organization.
repos.sidecar.custom.<key>.visibility string "public" "public", "private" Visibility used when creating a missing sidecar repository. Set the managed-project agents role to private to override its public default.

sibling_repos

Config key Type Default Allowed values Description
sibling_repos array [] — Deprecated alias for 'repos.linked'. Still parsed during the compatibility window; prefer 'repos.linked' in new config.
sibling_repos[] object not set — —
sibling_repos[].auto_clone boolean false — Materialize and synchronize this linked repository automatically before each agent launch.
sibling_repos[].name string not set — Stable alias used in prompts, metadata, and SASE_LINKED_REPO_<NAME>_DIR env vars.
sibling_repos[].path string not set — Primary checkout path. Relative paths are resolved from the project's primary WORKSPACE_DIR.
sibling_repos[].description string not set — Human-readable purpose used when generating agent memory for this linked repository.
sibling_repos[].revision_pin string not set — Optional pin file relative to the primary checkout root that holds this linked repo's pushed SHA. When set, the commit finalizer commits this sibling first and writes its SHA into the pin file before the primary commit.

vcs_provider

Config key Type Default Allowed values Description
vcs_provider object {provider, use_project_pr_prefix, pr_tags} (values below) — Configuration for the VCS provider abstraction layer
vcs_provider.provider string "auto" "git", "hg", "auto" Name of the VCS provider ('git', 'hg', or 'auto' for auto-detection)
vcs_provider.default_hooks array not set — Override the default required hooks added to new Patches. Each entry is a hook command string (supports '!' and '$' prefixes).
vcs_provider.default_hooks[] string not set — —
vcs_provider.workspace_root string not set — Root directory for workspaces. Overridden by SASE_WORKSPACE_ROOT env var. Defaults to $HOME/workspace for git.
vcs_provider.pr_tags object {} — Key-value tags appended as TAG=VALUE lines to PR commit messages
vcs_provider.pr_tags.<key> string not set — —
vcs_provider.use_project_pr_prefix boolean false — Prepend [<project>] to PR titles or PR descriptions.

vcs_ref_completion

Config key Type Default Allowed values Description
vcs_ref_completion object {enabled} (values below) — Project, Patch, and namespace completion at the root of VCS workflow refs such as #gh:.
vcs_ref_completion.enabled boolean true — Enable completion at the root of VCS workflow refs.

vcs_repo_completion

Config key Type Default Allowed values Description
vcs_repo_completion object {enabled, cache_ttl_seconds, max_repos} (values below) — Repository-name completion inside VCS workflow refs such as #gh:owner/.
vcs_repo_completion.enabled boolean true — Enable repository completion inside VCS workflow refs.
vcs_repo_completion.cache_ttl_seconds integer 600 — Seconds before cached repository lists are refreshed.
vcs_repo_completion.max_repos integer 200 — Maximum repositories requested from providers and returned to completion callers.

workspace

Config key Type Default Allowed values Description
workspace object {…} (5 keys; values below) — Workspace directory layout policy (Phase 1+: sase-3p WorkspaceStore).
workspace.root string "xdg-state" — Workspace root policy: 'xdg-state' (default platform state directory), 'adjacent' (legacy opt-in primary_<num>/ layout), or an absolute path. The SASE_WORKSPACE_ROOT environment variable overrides this when set.
workspace.project_key string "" — Explicit override for the project_key used to namespace managed workspaces. Empty string means derive from the single Git remote (preferred) or the primary path plus a short hash.
workspace.share_git_objects boolean true — When true, numbered managed workspace clones borrow the primary checkout's Git object database through SASE-managed alternates. Set false to keep standalone clones; sase workspace repair dissociates existing SASE-managed borrowers safely.
workspace.cleanup_ttl_days integer 14 — Days before unclaimed managed workspaces are eligible for sase workspace cleanup --stale.
workspace.held_claim_ttl_days integer 14 — Days before a pinned (held) dead-PID workspace claim is released automatically. Artifacts are kept so the failed run stays dismissible; only the workspace hold is dropped. 0 disables age-based release.

_[project]: A sase project is a named unit of work registered with SASE. _[workspace]: A sase workspace is a numbered clone of a project's primary repo, managed by the workspace store and tracked in that project's registry.json. _[agent]: A sase agent is an agent session or a single agent that does not belong to a session. _[prompt]: A prompt is the text SASE hands to a provider to start an agent turn. _[macro]: A macro is a reusable prompt triggered with #name in agent prompts. _[Patch]: A Patch is SASE's local unit of change. _[bead]: A bead is one tracked work item in SASE's git-native issue tracker. _[plan]: A plan is a persisted, approved artifact recording the intent behind agent work. _[TUI]: The TUI is SASE's terminal interface for running agents and reviewing results. _[epic]: An epic is an executable multi-phase plan run with sase bead work. _[gate]: A sase gate is a durable, command-backed request for one user decision, created when work must pause for the user. _[monitor]: A sase monitor is a monitor turn that runs one long command under a detached supervisor, so the command outlives the agent that started it. *[stitch]: A stitch is the lightweight ordered change record inside a Patch's STITCHES: section.