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 |
— |
— |