Skip to content

TUI configuration

Settings for SASE's terminal interface and its configurable panes.

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.

ace

Config key Type Default Allowed values Description
ace object {…} (25 keys; values below) — Configuration for sase's TUI
ace.repro_output_dir string "" — Directory where sase's TUI agent repro captures are written. Empty string uses the runtime default.
ace.axe_description_expanded boolean true — Whether the Services-tab description panel for service procs, routines, and jobs starts expanded; the configured toggle key changes this only for the current sase's TUI session.
ace.services object {fold_builtin_routines} (values below) — Settings for sase's TUI Services tab routine panels
ace.services.fold_builtin_routines boolean true — Whether builtin routine rows start folded on first sight; explicit folds always win for the TUI session.
ace.page_size integer 100 — Ctrl+J / Ctrl+K step and the default Artifacts limit: value.
ace.artifacts object {description_mode, panes, relations_expanded, stitches} (values below) — Settings for sase's TUI Artifacts panes
ace.artifacts.description_mode string "summary" "off", "summary", "full" Initial Artifacts pane description mode; the configured cycle key changes this only for the current sase's TUI session.
ace.artifacts.panes object {} — Per-pane Artifacts description overrides keyed by pane id.
ace.artifacts.panes.<key> object not set — —
ace.artifacts.panes.<key>.description string not set — —
ace.artifacts.panes.<key>.description_body string not set — —
ace.artifacts.relations_expanded boolean false — Whether the Artifacts relation panel starts expanded; the configured toggle key changes this only for the current sase's TUI session.
ace.artifacts.stitches object {default_query} (values below) — Settings for the Artifacts Stitches pane
ace.artifacts.stitches.default_query string "sidecar:false merges:hide since:24h" — Canonical query loaded into the persistent Stitches filter when sase's TUI starts. One singular, non-negatable project: token may use a configured project name, ProjectSpec directory key, or alias; known committed refs are rewritten to the configured name. Otherwise startup adds an explicit TUI-query project or the current registered project when available. After startup, no project: token means all projects. Merge visibility accepts merges:hide, merges:show, or merges:only. Origin accepts origin:stitch, origin:auto, or origin:manual, repeatable and negatable like repo: and author:. Type accepts repeatable and negatable labels including manual, automatic (auto alias), stitch, merge, patch, and observed SASE_TYPE values; it filters commit labels and does not replace merges: visibility. Startup injects limit:<ace.page_size> when the query has no limit token; an explicit limit: (including limit:all) is left alone, and a user-deleted token stays uncapped. Relative date windows re-anchor on refresh; configuration changes take effect in the next sase's TUI process.
ace.artifacts.commits object not set — Deprecated alias for artifacts.stitches. New configuration must use artifacts.stitches.
ace.artifacts.commits.default_query string "sidecar:false merges:hide since:24h" — Deprecated; use artifacts.stitches.default_query.
ace.procs object {default_query} (values below) — Settings for sase's TUI Procs pane.
ace.procs.default_query string "-service" — Query that seeds the Procs filter bar when sase's TUI starts, only when no committed query is persisted; a user-cleared query stays cleared.
ace.prompt_stash object {trash_limit} (values below) — Settings for the prompt stash Trash lifecycle.
ace.prompt_stash.trash_limit integer 100 — Maximum Trash rows kept for discarded stash drafts. This is an entry-count limit, not a byte quota. Zero disables recovery: rows marked for Trash are permanently discarded instead. The limit is enforced inside the Rust stash transaction.
ace.current_project object {indicator, seed_filters, seed_agents_query} (values below) — Current-project indicator and session seed settings. The current project is derived from the VCS macro MRU store; launching an agent is what moves it.
ace.current_project.indicator boolean true — Show the +<project> chip in sase's TUI top bar
ace.current_project.seed_filters boolean true — Seed project filters that have no value yet. Never overrides an explicit choice and never re-scopes a surface that is already open.
ace.current_project.seed_agents_query boolean false — Also seed the Agents-tab search query with the current project. Off by default because that query also drives unread jumps and prospective clans, not just the visible list.
ace.snippets object {} — Snippet expansions for the prompt input (trigger string to expansion text)
ace.snippets.<key> string not set — —
ace.snippet_config_path string "" — Config file that receives new ace.snippets entries written from the prompt bar. Empty string uses the user's sase.yml (the chezmoi source when chezmoi is enabled). A relative path resolves against ~/.config/sase/. The suffix must be .yml or .yaml, and the file must be writable; an unusable configured value falls back to the default and reports why.
ace.tribes object {} — Per-tribe sase's TUI identity display settings, keyed by bare tribe name. Every configured tribe must carry a description.
ace.tribes.<key> object not set — —
ace.tribes.<key>.icon string "" — Short glyph shown before the tribe name on identity surfaces that include an icon; an empty string disables an inherited icon
ace.tribes.<key>.color string "" — RGB foreground for structured tribe icons and names throughout sase's TUI, without recoloring semantic chrome; an empty string uses sase's TUI fallback
ace.tribes.<key>.initially_expanded boolean true — Whether the Agents-tab tribe panel starts expanded each time the panel comes into existence
ace.tribes.<key>.description string not set — One-line explanation of what this tribe is for, shown in sase's TUI Agents-tab metadata panel when the tribe panel is selected. Required for every configured tribe.
ace.notification_tabs object {} — Per-tab notification indicator styling, keyed by notification-panel tab key: the synthetic "hitl", "errors", "general", "snoozed", and "muted" tabs, a gate-declared panel name, or a notification tag.
ace.notification_tabs.<key> object not set — —
ace.notification_tabs.<key>.color string "" — RGB foreground for this tab's count chip in the top-bar notification indicator and its tooltip label; an empty string restores the built-in default for that tab
ace.notification_tabs.<key>.icon string "" — Single emoji or glyph rendered for this tab in the notification panel's tab strip and the top-bar indicator chip; an empty string restores the built-in default for that tab
ace.notification_tabs.<key>.priority integer not set — Sort weight for this tab in the notification panel's tab strip and the top-bar indicator; higher sorts earlier. Omit to inherit the default for the tab's kind (Gates 60, panel 50, Errors 40, General 30, Done 20, tag 10, Snoozed -10, Muted -20). A tab whose priority differs from that default renders a compact up/down mark.
ace.notification_tabs.<key>.grouping string "" "", "recent", "bead_type" Row-grouping strategy for this tab's notification list: a strategy id such as "bead_type" renders ordered sections with headers, "recent" renders one flat newest-first list, and "" uses the built-in default for the tab. Toggle at runtime with S in the notification panel.
ace.notification_indicator_max_counts integer 4 — Maximum per-tab counts rendered in the top-bar notification indicator before the remainder collapses into a single dim "+N" chip
ace.notification_rules array [] — Ordered client-side notification delivery rules deciding, per notification, whether a TUI toast is shown, how the arrival is announced, and whether the row may be delivered to Telegram. Rules are consulted in descending priority, then list order; for toast, sound, and telegram separately, the first matching rule that sets that field decides it, and a field no matching rule sets keeps the built-in default (toast shown, terminal bell, Telegram permitted). A rule changes announcement only, never whether a notification is stored, read, counted, or listed. A Telegram true never bypasses read/mute/silent, first-run, cursor, or other transport eligibility checks.
ace.notification_rules[] object not set — —
ace.notification_rules[].name string not set — Label for this rule in sase notify rules, doctor output, and diagnostics
ace.notification_rules[].description string not set — Free prose explaining why this rule exists; never consulted when matching
ace.notification_rules[].priority integer 0 — Evaluation weight; higher is consulted earlier, and equal priorities keep their merged-list order
ace.notification_rules[].match object not set — Criteria a notification must all satisfy; each is a case-insensitive glob (*, ?, [...]) or a list of globs where any one may match. Omitted or empty matches every notification.
ace.notification_rules[].match.tab string | array not set — The owning notification-panel tab key, such as "beads", "errors", "general", or a tag; "gates" is an alias for the Gates tab's "hitl" key
ace.notification_rules[].match.tab[] string not set — —
ace.notification_rules[].match.sender string | array not set — The notification sender
ace.notification_rules[].match.sender[] string not set — —
ace.notification_rules[].match.action string | array not set — The notification action, or an empty string for a notification with no action
ace.notification_rules[].match.action[] string not set — —
ace.notification_rules[].match.tags string | array not set — Any one of the notification tags
ace.notification_rules[].match.tags[] string not set — —
ace.notification_rules[].match.title string | array not set — The notification headline, which is its first note
ace.notification_rules[].match.title[] string not set — —
ace.notification_rules[].match.note string | array not set — Any one line of the notification notes
ace.notification_rules[].match.note[] string not set — —
ace.notification_rules[].toast boolean not set — Whether a TUI toast is shown for a matching notification; the notification itself is unaffected. Omit to leave the decision to later rules.
ace.notification_rules[].sound string not set — How a matching arrival is announced: "bell" for the terminal bell, "none" for silence, or the path of a sound file ("~" and $VARs expanded; address a file literally named bell or none as ./bell). Omit to leave the decision to later rules.
ace.notification_rules[].telegram boolean not set — Whether a matching notification may be delivered to Telegram; false suppresses Telegram delivery, true permits it subject to the transport's own read/mute/silent, first-run, cursor, and other eligibility checks. Omit to leave the decision to later rules.
ace.tool_calls object {slow_threshold_seconds} (values below) — Tool-call presentation settings for sase's TUI
ace.tool_calls.slow_threshold_seconds integer 20 — Minimum tool-call duration, in seconds, shown as slow in sase's TUI metadata and timelines
ace.artifact_file_viewer object {video} (values below) — Settings for sase's TUI external artifact-file viewer panes
ace.artifact_file_viewer.video object {audio, loop, vo, extra_mpv_args} (values below) — mpv-backed terminal video artifact-file playback settings
ace.artifact_file_viewer.video.audio boolean false — Start video playback unmuted
ace.artifact_file_viewer.video.loop boolean false — Loop video playback with mpv --loop-file=inf
ace.artifact_file_viewer.video.vo string "kitty" — mpv video output driver for terminal video playback
ace.artifact_file_viewer.video.extra_mpv_args array | string [] — Additional mpv arguments appended after SASE defaults
ace.artifact_file_viewer.video.extra_mpv_args[] string not set — —
ace.updates object {…} (14 keys; values below) — Automatic TUI-session update-check behavior for SASE, plugins, supported agent CLIs, the Updates tab, badge, and toasts
ace.updates.startup_toast boolean true — Show an informational toast on sase's TUI startup when SASE core, installed plugins, or supported agent CLIs have updates available
ace.updates.startup_toast_max_commits integer 20 — Maximum total incoming commit subjects to show across all repositories in sase's TUI startup update toast
ace.updates.post_update_toast boolean true — Show a one-shot confirmation toast after a comprehensive update changes SASE code and restarts sase's TUI into the new version
ace.updates.post_update_toast_diffstat boolean true — Show per-repository file and line-change stats in the post-update confirmation toast when available
ace.updates.post_update_toast_commits boolean true — Show applied commits grouped by repository in the post-update confirmation toast when available
ace.updates.post_update_toast_max_commits integer 5 — Maximum applied commit subjects to show per repository in the post-update confirmation toast
ace.updates.agent_cli_history boolean true — Show the durable update-history panel beneath the selected CLI's details on the Agent CLIs sub-tab
ace.updates.agent_cli_history_max_rows integer 8 — Maximum rows (per-CLI view) or runs (all-CLIs view) shown in the Agent CLIs update-history panel; 0 shows all
ace.updates.indicator boolean true — Show a segmented top-bar badge while SASE core, installed plugins, or supported agent CLIs have updates available
ace.updates.prebuild_rust boolean true — Prebuild matching editable sase-core Rust artifacts in a background cache when sase's TUI observes a safe core update; confirmed updates fall back to the normal Rust build on every miss
ace.updates.check_interval_minutes number 10 — Interval between update-check attempts in a running sase's TUI session. Ordinary attempts only revalidate the cached composite snapshot; in-flight guards may suppress overlapping work.
ace.updates.check_ttl_minutes number 10 — Minimum age before a cached update status is refreshed during automatic TUI-session checks. This cache TTL is separate from the configured session check cadence and takes precedence over check_ttl_hours when both are set.
ace.updates.check_ttl_hours number not set — Legacy/deprecated cache TTL for automatic TUI-session update checks. Prefer check_ttl_minutes, which overrides this when both are set.
ace.updates.recompute_interval_minutes number 60 — Minimum snapshot age before a periodic TUI-session check may perform a full network recompute across SASE, plugins, and supported agent CLIs. Checks between full recomputes only revalidate cached candidates locally.
ace.updates.incoming_commits object {enabled, max_per_repo, confirm_max_per_repo} (values below) — Incoming commit previews shown on sase's TUI Updates tab for SASE core and installed plugin updates
ace.updates.incoming_commits.enabled boolean true — Fetch and show incoming commit subjects for available updates
ace.updates.incoming_commits.max_per_repo integer 7 — Maximum incoming commit subjects to display per repository
ace.updates.incoming_commits.confirm_max_per_repo integer 250 — Maximum incoming commit subjects to display per repository in update confirmation modals
ace.prompt_completion object {…} (19 keys; values below) — Live completion settings for sase's TUI prompt input
ace.prompt_completion.auto boolean | string "soft" "soft", "on", "off", "true", "false", "yes", "no", "1", "0", "none", "disabled" Automatic prompt completion mode. Use 'soft' for subtitle suggestions or false/off to disable.
ace.prompt_completion.debounce_ms integer 90 — Delay in milliseconds before computing live prompt suggestions
ace.prompt_completion.auto_file_paths boolean false — Whether automatic completion may scan file path candidates while typing
ace.prompt_completion.auto_macro_menu boolean true — Whether matching #name, #!name, and /skill tokens automatically open the macro/skill completion menu while typing
ace.prompt_completion.auto_directive_menu boolean true — Whether matching %id tokens automatically open the directive completion menu while typing
ace.prompt_completion.auto_artifact_menu boolean true — Whether matching @kind and @kind:payload tokens automatically open artifact-reference completion while typing
ace.prompt_completion.auto_jinja_menu boolean true — Whether typing inside a Jinja {{ }} or {% %} tag automatically opens the Jinja variable completion menu
ace.prompt_completion.max_auto_rows integer 1 — Maximum automatic completion rows reserved for future popup modes
ace.prompt_completion.history_word_count integer 10000 — Maximum unique recent prompt-history words retained for manual completion; 0 disables the fallback
ace.prompt_completion.common_placeholder_count integer 100 — Maximum saved <placeholder> tags retained and offered beneath the current prompt's own tags; 0 disables the feature
ace.prompt_completion.word_min_length integer 5 — Minimum character length for prompt-local and prompt-history word completion candidates
ace.prompt_completion.word_ranking string "smart" "smart", "recent" History-word ordering: 'smart' ranks by relation, recency, and frequency; 'recent' restores plain most-recently-used order
ace.prompt_completion.word_ranking_signals boolean true — Whether history-word rows render the score meter, dominant-reason chip, and panel legend for smart ranking
ace.prompt_completion.placeholder_ranking string "smart" "smart", "recent" Saved-placeholder ordering: 'smart' ranks by relation, recency, and frequency; 'recent' restores stored use-count-then-recency order
ace.prompt_completion.placeholder_ranking_signals boolean true — Whether saved-placeholder rows render the score meter, dominant-reason chip, and panel legend for smart ranking
ace.prompt_completion.next_word string "auto" "off", "chain", "auto" Next-word prediction mode: 'auto' predicts after each typed character and completes the current word, 'chain' arms ghost text only after word commits and explicit Ctrl+T, 'off' disables predictions
ace.prompt_completion.next_word_max_words integer 4 — Maximum next-word ghost words shown at once
ace.prompt_completion.next_word_confidence string "balanced" "cautious", "balanced", "eager" Confidence gate for next-word ghost predictions
ace.prompt_completion.next_word_sources array ["history"] — Prediction corpus sources: local typed history plus the pruned cross-machine prompt archive (opt-in until the replay harness shows a clear novel-prompt gain)
ace.prompt_completion.next_word_sources[] string not set "history", "archive" —
ace.prompt_spellcheck object {highlight, max_remembered_words} (values below) — Sticky misspelling highlight settings for sase's TUI prompt input
ace.prompt_spellcheck.highlight boolean true — Whether words K has proven misspelled are underlined in every prompt input; K still records misspellings when false
ace.prompt_spellcheck.max_remembered_words integer 5000 — Maximum words retained in each of the misspelled and allowed lists; 0 disables remembering new misspellings
ace.prompt_submission object {confirm_on_enter} (values below) — Prompt submission confirmation settings for sase's TUI prompt input
ace.prompt_submission.confirm_on_enter boolean true — Whether plain Enter opens the prompt submission panel before launching agent prompts. Prefix routes such as g<enter> and Ctrl+G Enter remain direct.
ace.agent_decks object {spread_max_screens, block_spread_max_screens, final_tail_delay_seconds} (values below) — Agent data deck spread versus paged rendering settings for sase's TUI Agents tab
ace.agent_decks.spread_max_screens number 1.5 — A multi-card deck renders spread (every card on one scrollable page) when its cards fit within this many panel viewport heights, and paged otherwise. 0 means always paged.
ace.agent_decks.block_spread_max_screens number 1.5 — A card shown alone renders its card blocks spread (all inline) when the card fits within this many panel viewport heights, and paged (one block at a time) otherwise. 0 means always one block per page.
ace.agent_decks.final_tail_delay_seconds number 5.0 — Seconds a finalizer op must run before its live tail renders in the FINAL deck. 0 renders immediately.
ace.agent_tabs object {machine_tabs, launch_from_view, tabs} (values below) — Agent tab settings for sase's TUI Agents tab
ace.agent_tabs.machine_tabs string "auto" "auto", "on", "off" auto shows one machine tab per dispatch machine when machines are configured, and a single roster otherwise. on always uses machine tabs, off never does.
ace.agent_tabs.launch_from_view boolean true — Launch new agents onto the currently visible tab.
ace.agent_tabs.tabs object {} — Per-tab styling and ordering, keyed by canonical tab name. Invalid names are dropped.
ace.agent_tabs.tabs.<key> object not set — —
ace.agent_tabs.tabs.<key>.color string "" — Tab label color.
ace.agent_tabs.tabs.<key>.icon string "" — Tab label icon.
ace.agent_tabs.tabs.<key>.order integer | null null — Sort order for named tabs, ascending. Omit to inherit the default order.
ace.agent_tabs.tabs.<key>.description string "" — Tab description.
ace.agent_header object {collapsed_max_share, collapsed_preview_max_rows} (values below) — Sticky agent header settings for sase's TUI Agents tab
ace.agent_header.collapsed_max_share number 0.35 — Target share of the Agents detail column used by the collapsed header, including its border, session model rows, and RAW PROMPT tab row. Session model metadata keeps a required row and takes space before the optional prompt preview. 0 turns the prompt preview off while keeping session models visible.
ace.agent_header.collapsed_preview_max_rows integer 3 — Most RAW PROMPT preview rows the collapsed header shows. The share budget can reduce this to zero when session identity and model rows use the available space. d expands to the full prompt.
ace.prompt_inputs object {collect_raw_placeholders, macro_placeholder_args} (values below) — Prompt input collection settings for sase's TUI prompt input
ace.prompt_inputs.collect_raw_placeholders boolean true — Whether submitting a prompt with raw <placeholder> tags opens the Prompt Inputs panel to collect a value for each tag
ace.prompt_inputs.macro_placeholder_args boolean true — Whether saving a draft as a new global (gx) or local (gX) macro converts its raw <placeholder> tags into text input arguments
ace.keymaps object {…} (11 keys; values below) — Keymap configuration for the TUI
ace.keymaps.gate object {…} (13 keys; values below) — Bindings active inside branch-driven plan and custom gate modals
ace.keymaps.gate.next_control string "j" — Focus the next gate control
ace.keymaps.gate.previous_control string "k" — Focus the previous gate control
ace.keymaps.gate.toggle_option string "space" — Toggle the focused option in an AND group
ace.keymaps.gate.submit_primary string "enter" — Submit the gate's declared primary branch
ace.keymaps.gate.activate_control string not set — Deprecated alias for submit_primary
ace.keymaps.gate.submit_branch string "ctrl+s" — Submit the active branch
ace.keymaps.gate.open_inputs string "i" — Open the input panel for the focused option
ace.keymaps.gate.next_input string "tab" — Focus the next input in the gate input panel
ace.keymaps.gate.previous_input string "shift+tab" — Focus the previous input in the gate input panel
ace.keymaps.gate.decision_next string "l,right" — Next decision choice
ace.keymaps.gate.decision_prev string "h,left" — Previous decision choice
ace.keymaps.gate.decision_reset string "r" — Reset decision row
ace.keymaps.gate.decision_reset_all string "R" — Reset all decisions
ace.keymaps.gate.decision_zoom string "z" — Toggle the full-width decision sheet
ace.keymaps.command_line object {…} (24 keys; values below) — Bindings active only while the Command Line panel is focused
ace.keymaps.command_line.toggle_full_height string "ctrl+t" — Toggle full height
ace.keymaps.command_line.clear_transcript string "ctrl+l" — Clear the transcript
ace.keymaps.command_line.scroll_transcript_down string "ctrl+d" — Scroll the Command Line output down half a page
ace.keymaps.command_line.scroll_transcript_up string "ctrl+u" — Scroll the Command Line output up half a page
ace.keymaps.command_line.hide_panel string "escape" — Hide the panel
ace.keymaps.command_line.hop_to_palette string "semicolon" — Hop to the command palette
ace.keymaps.command_line.history_prev string "up" — Select the previous history entry
ace.keymaps.command_line.history_next string "down" — Select the next history entry
ace.keymaps.command_line.history_search string "ctrl+r" — Search history
ace.keymaps.command_line.block_next string "j,down" — Select the next transcript block
ace.keymaps.command_line.block_prev string "k,up" — Select the previous transcript block
ace.keymaps.command_line.block_first string "g" — Select the first transcript block
ace.keymaps.command_line.block_last string "G,shift+g" — Select the last transcript block
ace.keymaps.command_line.block_toggle_expand string "o,enter" — Expand or collapse the selected block
ace.keymaps.command_line.block_pager string "v" — Open the selected block in the pager
ace.keymaps.command_line.block_kill string "K,shift+k" — Kill the selected block's proc
ace.keymaps.command_line.block_rerun string "r" — Rerun the selected block's line
ace.keymaps.command_line.block_rerun_confirm string "R,shift+r" — Rerun the selected line with -y appended
ace.keymaps.command_line.block_edit string "e" — Load the selected block's line into the input
ace.keymaps.command_line.block_copy_output string "y" — Copy the selected block's output
ace.keymaps.command_line.block_copy_command string "Y,shift+y" — Copy the selected block's command line
ace.keymaps.command_line.block_procs string "p" — Open Admin Center Procs on the selected proc
ace.keymaps.command_line.block_remove string "x" — Remove the selected block from the transcript
ace.keymaps.command_line.block_focus_input string "i,a,colon" — Return to the input in INSERT mode
ace.keymaps.config object {select_subtab} (values below) — Bindings active only while the Admin Center Config hub is focused
ace.keymaps.config.select_subtab string "0" — Arm numbered Config sub-tab selection
ace.keymaps.statistics object {…} (16 keys; values below) — Bindings active only while the Admin Center Statistics pane is focused
ace.keymaps.statistics.prev_view string "left_square_bracket" — Select the previous statistics view
ace.keymaps.statistics.next_view string "right_square_bracket" — Select the next statistics view
ace.keymaps.statistics.select_view string "0" — Arm numbered statistics view selection
ace.keymaps.statistics.jump_to_entry string "apostrophe" — Arm numbered statistics view selection (Admin Center-wide jump key)
ace.keymaps.statistics.cycle_range string "t" — Cycle to the next statistics time range
ace.keymaps.statistics.cycle_range_reverse string "T" — Cycle to the previous statistics time range
ace.keymaps.statistics.custom_range string "c" — Open the custom statistics range input
ace.keymaps.statistics.cycle_group string "g" — Cycle the active statistics grouping strategy
ace.keymaps.statistics.cycle_project_filter string "p" — Cycle the global statistics project filter forward
ace.keymaps.statistics.cycle_project_filter_reverse string "P" — Cycle the global statistics project filter backward
ace.keymaps.statistics.focus_macro string "x" — Open the Statistics macro focus picker
ace.keymaps.statistics.clear_macro_focus string "X" — Clear the active Statistics macro focus
ace.keymaps.statistics.scroll_down string "ctrl+d" — Scroll the statistics body down by half a page
ace.keymaps.statistics.scroll_up string "ctrl+u" — Scroll the statistics body up by half a page
ace.keymaps.statistics.refresh string "r" — Refresh historical statistics
ace.keymaps.statistics.help string "question_mark" — Open contextual statistics help
ace.keymaps.glossary object not set — Deprecated legacy bindings for the retired Glossary panel scope, accepted for compatibility and ignored. Move any customization to ace.keymaps.memory.
ace.keymaps.glossary.next_term string not set — Select the next glossary term
ace.keymaps.glossary.prev_term string not set — Select the previous glossary term
ace.keymaps.glossary.first_term string not set — Jump to the first glossary term
ace.keymaps.glossary.last_term string not set — Jump to the last glossary term
ace.keymaps.glossary.scroll_definition_down string not set — Scroll the definition card down by half a page
ace.keymaps.glossary.scroll_definition_up string not set — Scroll the definition card up by half a page
ace.keymaps.glossary.filter_terms string not set — Open the term filter input
ace.keymaps.glossary.toggle_definition_filter string not set — Toggle matching definitions, not just terms, in the filter
ace.keymaps.glossary.next_relation string not set — Select the next relation chip
ace.keymaps.glossary.prev_relation string not set — Select the previous relation chip
ace.keymaps.glossary.follow_relation string not set — Follow the selected relation chip
ace.keymaps.glossary.travel_back string not set — Travel back along the relation trail
ace.keymaps.glossary.next_project string not set — Cycle to the next project's glossary
ace.keymaps.glossary.prev_project string not set — Cycle to the previous project's glossary
ace.keymaps.glossary.add_term string not set — Add a new glossary term
ace.keymaps.glossary.delete_term string not set — Delete the selected glossary term
ace.keymaps.glossary.open_source string not set — Open the term's source file in the editor
ace.keymaps.glossary.open_viewer string not set — Open the term's source file in the viewer
ace.keymaps.glossary.copy_definition string not set — Copy the selected term's definition
ace.keymaps.glossary.copy_source_path string not set — Copy the term's source file path
ace.keymaps.glossary.refresh string not set — Refresh the current project's glossary
ace.keymaps.glossary.help string not set — Open contextual Glossary panel help
ace.keymaps.memory object {…} (40 keys; values below) — Bindings active only while the Memory panel is focused
ace.keymaps.memory.next_note string "j" — Select the next memory note
ace.keymaps.memory.prev_note string "k" — Select the previous memory note
ace.keymaps.memory.first_note string "g" — Jump to the first memory note
ace.keymaps.memory.last_note string "G" — Jump to the last memory note
ace.keymaps.memory.toggle_web string "space" — Expand or collapse the selected memory web
ace.keymaps.memory.next_strand string "s" — Jump to the next strand in the selected memory web
ace.keymaps.memory.prev_strand string "S" — Jump to the previous strand in the selected memory web
ace.keymaps.memory.scroll_body_down string "ctrl+d" — Scroll the note body down by half a page
ace.keymaps.memory.scroll_body_up string "ctrl+u" — Scroll the note body up by half a page
ace.keymaps.memory.filter_notes string "slash" — Open the note filter input
ace.keymaps.memory.toggle_body_filter string "greater_than_sign" — Toggle matching note bodies, not just stems and descriptions, in the filter
ace.keymaps.memory.next_link string "tab" — Select the next parent or child link chip
ace.keymaps.memory.prev_link string "shift+tab" — Select the previous parent or child link chip
ace.keymaps.memory.follow_link string "enter,l" — Follow the selected parent or child link chip
ace.keymaps.memory.travel_back string "backspace,h" — Travel back along the note trail
ace.keymaps.memory.next_scope string "p" — Cycle to the next memory scope
ace.keymaps.memory.prev_scope string "P" — Cycle to the previous memory scope
ace.keymaps.memory.pick_scope string "ctrl+p" — Open the memory scope picker
ace.keymaps.memory.add_note string "a" — Add a new memory note
ace.keymaps.memory.edit_note string "e" — Edit the selected memory note's frontmatter
ace.keymaps.memory.delete_note string "d" — Delete the selected memory note
ace.keymaps.memory.publish string "I" — Publish unpublished memory writes with sase memory init
ace.keymaps.memory.open_source string "o" — Open the note's source file in the editor
ace.keymaps.memory.open_viewer string "Z" — Open the note's source file in the viewer
ace.keymaps.memory.open_history string "H" — Open the selection in the pager at the card's exact version and view
ace.keymaps.memory.open_changes string "C" — Open or close the Changes lens (day-grouped memory changesets)
ace.keymaps.memory.history_older string "(" — Step the memory card to the older version
ace.keymaps.memory.history_newer string ")" — Step the memory card to the newer version
ace.keymaps.memory.history_first string "{" — Step the memory card to the first version
ace.keymaps.memory.history_now string "}" — Return the memory card to now
ace.keymaps.memory.history_toggle_diff string "=" — Toggle the memory card word-diff view
ace.keymaps.memory.history_timeline string "@" — Open or close the Timeline lens
ace.keymaps.memory.history_compare_base string "b" — Set or clear the Timeline lens compare base
ace.keymaps.memory.history_toggle_hidden string "full_stop" — Reveal hidden versions in the Timeline lens
ace.keymaps.memory.toggle_deleted string "D" — Show or hide the DELETED group of tombstoned subjects
ace.keymaps.memory.mark_reviewed string "m" — Mark the Changes lens scope(s) reviewed through the newest changeset
ace.keymaps.memory.copy_body string "y" — Copy the selected note's body
ace.keymaps.memory.copy_source_path string "Y" — Copy the note's source file path
ace.keymaps.memory.refresh string "r" — Refresh the current memory scope
ace.keymaps.memory.help string "question_mark" — Open contextual Memory panel help
ace.keymaps.snippets object {…} (23 keys; values below) — Bindings active only while the Snippets panel is focused
ace.keymaps.snippets.next_snippet string "j" — Select the next snippet
ace.keymaps.snippets.prev_snippet string "k" — Select the previous snippet
ace.keymaps.snippets.first_snippet string "g" — Jump to the first snippet
ace.keymaps.snippets.last_snippet string "G" — Jump to the last snippet
ace.keymaps.snippets.scroll_template_down string "ctrl+d" — Scroll the template card down by half a page
ace.keymaps.snippets.scroll_template_up string "ctrl+u" — Scroll the template card up by half a page
ace.keymaps.snippets.filter_snippets string "slash" — Open the snippet filter input
ace.keymaps.snippets.toggle_body_filter string "full_stop" — Toggle matching raw and composed bodies in the filter
ace.keymaps.snippets.next_relation string "tab" — Select the next relation chip
ace.keymaps.snippets.prev_relation string "shift+tab" — Select the previous relation chip
ace.keymaps.snippets.follow_relation string "enter,l" — Follow the selected relation chip
ace.keymaps.snippets.travel_back string "backspace,h" — Travel back along the relation trail
ace.keymaps.snippets.next_project string "p" — Cycle to the next project's snippets
ace.keymaps.snippets.prev_project string "P" — Cycle to the previous project's snippets
ace.keymaps.snippets.add_snippet string "a" — Add a new snippet
ace.keymaps.snippets.edit_snippet string "e" — Edit the selected snippet
ace.keymaps.snippets.delete_snippet string "d" — Delete the selected snippet
ace.keymaps.snippets.open_source string "o" — Open the snippet's source file in the editor
ace.keymaps.snippets.open_viewer string "Z" — Open the snippet's source file in the viewer
ace.keymaps.snippets.copy_template string "y" — Copy the selected snippet's raw template
ace.keymaps.snippets.copy_source_path string "Y" — Copy the snippet's source file path
ace.keymaps.snippets.refresh string "r" — Refresh the current project's snippets
ace.keymaps.snippets.help string "question_mark" — Open contextual Snippets panel help
ace.keymaps.projects object {…} (26 keys; values below) — Bindings active only while the Admin Center Projects tab is focused, shared by its Projects/Repos/Workspaces sub-tabs
ace.keymaps.projects.next_option string "j,down,ctrl+n" — Select the next row
ace.keymaps.projects.prev_option string "k,up,ctrl+p" — Select the previous row
ace.keymaps.projects.new_project string "n" — Open the New Project wizard
ace.keymaps.projects.focus_filter string "slash" — Focus the sub-tab's filter input
ace.keymaps.projects.cycle_subtab string "right_square_bracket" — Switch to the next Projects-tab sub-tab
ace.keymaps.projects.cycle_subtab_reverse string "left_square_bracket" — Switch to the previous Projects-tab sub-tab
ace.keymaps.projects.toggle_project_mark string "m" — Mark or unmark the selected project
ace.keymaps.projects.clear_project_marks string "u" — Clear all marked projects
ace.keymaps.projects.edit_project_spec string "e" — Edit the selected project's ProjectSpec file
ace.keymaps.projects.edit_project_aliases string "A" — Edit the selected project's aliases
ace.keymaps.projects.enable_project string "a" — Enable the selected (or marked) project(s)
ace.keymaps.projects.disable_project string "d" — Disable the selected (or marked) project(s)
ace.keymaps.projects.delete_project string "ctrl+d" — Delete the selected (or marked) project(s)
ace.keymaps.projects.force_current_state_change string "F" — Force a blocked enable/disable/delete through
ace.keymaps.projects.default_project_action string "enter" — Run the default action for the selected project
ace.keymaps.projects.reload string "R" — Reload the projects list, or the focused inventory sub-tab
ace.keymaps.projects.show_project_repos string "r" — Show the selected project's repos in the Repos sub-tab
ace.keymaps.projects.show_project_workspaces string "w" — Show the selected project's workspaces in the Workspaces sub-tab
ace.keymaps.projects.jump_to_entry string "apostrophe" — Arm numbered jump-to-row selection
ace.keymaps.projects.pick_project string "p" — Open the project picker to scope an inventory sub-tab
ace.keymaps.projects.clear_project_filter string "escape" — Clear an inventory sub-tab's project scope
ace.keymaps.projects.set_current_project string "c" — Make the selected project the current project
ace.keymaps.projects.initialize_project string "i" — Initialize the selected (or marked) project(s)
ace.keymaps.projects.initialize_all_projects string "I" — Initialize every enabled project
ace.keymaps.projects.help string "question_mark" — Open contextual Projects pane help
ace.keymaps.projects.show_new_project string "s" — Show a newly added project hidden by the current filter
ace.keymaps.machines object {…} (12 keys; values below) — Bindings active only while the Admin Center Machines tab is focused
ace.keymaps.machines.next_option string "j,down,ctrl+n" — Select the next machine row
ace.keymaps.machines.prev_option string "k,up,ctrl+p" — Select the previous machine row
ace.keymaps.machines.focus_filter string "slash" — Focus the machine filter input
ace.keymaps.machines.connect_machine string "c" — Open the persistent Connect flow
ace.keymaps.machines.check_status string "s" — Run a bounded status check for the selected machine
ace.keymaps.machines.repair_machine string "r" — Show repair guidance for the selected machine
ace.keymaps.machines.rename_machine string "R" — Show rename guidance for the selected machine
ace.keymaps.machines.remove_machine string "x" — Show removal guidance for the selected machine
ace.keymaps.machines.show_agents string "enter" — Show the selected machine's agent tab
ace.keymaps.machines.show_agents_filter string "f" — Show Agents filtered to the selected machine
ace.keymaps.machines.copy_command string "y" — Copy the current machine action command
ace.keymaps.machines.reload string "U" — Reload machine inventory
ace.keymaps.tool_runs object {…} (13 keys; values below) — Bindings active only while the Admin Center Tools tab is focused
ace.keymaps.tool_runs.next_option string "j,down,ctrl+n" — Select the next tool-run row
ace.keymaps.tool_runs.prev_option string "k,up,ctrl+p" — Select the previous tool-run row
ace.keymaps.tool_runs.focus_filter string "slash" — Focus the tool-run filter input
ace.keymaps.tool_runs.cycle_subtab string "right_square_bracket" — Cycle to the next Tools sub-tab
ace.keymaps.tool_runs.cycle_subtab_reverse string "left_square_bracket" — Cycle to the previous Tools sub-tab
ace.keymaps.tool_runs.toggle_scope string "A" — Toggle the Tools pane project/all-projects scope
ace.keymaps.tool_runs.focus_detail string "enter" — Open the selected run's detail
ace.keymaps.tool_runs.jump_to_agent string "a" — Jump to the agent that owns the selected run
ace.keymaps.tool_runs.open_log string "v" — Open the selected run's log
ace.keymaps.tool_runs.copy_run_id string "y" — Copy the selected run id
ace.keymaps.tool_runs.stop_run string "s" — Stop the selected live tool run
ace.keymaps.tool_runs.run_tool string "r" — Run the selected catalog tool as a hand-off
ace.keymaps.tool_runs.reload string "R" — Reload the tool-run list
ace.keymaps.app object {…} (190 keys; values below) — Top-level application keybindings (action name to key string)
ace.keymaps.app.<key> string not set — —
ace.keymaps.modes object {…} (5 keys; values below) — Named prefix-key mode definitions
ace.keymaps.modes.<key> object not set — —
ace.keymaps.modes.<key>.prefix string not set — Key that activates this mode
ace.keymaps.modes.<key>.keys object not set — Keybindings within this mode
ace.keymaps.modes.<key>.keys.<key> string | object not set — Nested key group (e.g., copy mode per-tab keys)
ace.keymaps.modes.<key>.keys.<key>.<key> string not set — —

_[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.