Skip to content

Set up shell completion and your editor

This guide turns on <TAB> completion for sase commands and points your editor at SASE's language server. It assumes SASE is installed; both steps are optional and independent, so do either one alone.

Before you start

You need to know your shell (zsh, bash, or fish) and, for the editor half, an editor that speaks the Language Server Protocol over stdio.

1. Install shell completion

Detect the shell, write the loader, and verify the install:

sase completion install

The installer never edits rc files; it writes the completion script itself and prints a zstyle snippet for ~/.zshrc when one applies. Open a new shell afterward, because completion scripts load once at shell startup. Confirm the install any time:

sase completion list

Never eval "$(sase completion zsh)" in an rc file: that pays a full sase startup on every new shell. Write the script to a file instead, which is what the installer does.

2. Point your editor at the language server

Verify the wrapper, then configure the editor to launch sase lsp as a stdio language server:

sase lsp --version

The wrapper prints the server version (for example sase-macro-lsp 0.40.0). In editor configuration terms, the command is sase and the argument list is ["lsp"]. The server completes macro names, directives, models, and artifact references, and reports hover, diagnostics, and jump-to-definition while editing prompts and macros.

If it goes wrong

For completion, sase doctor runs the same install checks the installer uses; add -D -C completion.registration to probe a real shell when a new shell still completes nothing. For the editor, a server that cannot start usually needs a full SASE update or the SASE_MACRO_LSP_CMD override in Editor integration.

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