Skip to main content
Custom commands let you define reusable prompts that run when you type /command-name in the TUI. They support dynamic flow via arguments, shell output, and file references.

Creating commands

Create .md files in one of two directories: The filename (without .md) becomes the command name.
If your command file is in a project directory, it will only be available if you launch Symbiotic Code from that directory.

Example

  1. Create a file named test.md in .symbiotic/commands/ with the following content:
  1. Use it in Symbiotic Code TUI:

JSON config

Alternatively, define commands in symbiotic.json or .symbiotic/symbiotic.json (project), or the same files under ~/.symbiotic/ (global):
Supports // single-line comments (.jsonc style).

Frontmatter Options


Template syntax

Use these placeholders in your command templates:

$ARGUMENTS — full argument string

Pass the entire argument string as a value in the prompt. Example:
$ARGUMENTS is replaced with src/core/session.ts in the prompt written from the custom command template.

$1, $2, $3… — positional arguments

Pass the argument at the specified position as a value in the prompt. Example:
  • $1Sidebar
  • $2src/cli/tui/components
Arguments also support quoting:

!command“ — shell output injection

Inject the output of a shell command into the prompt.
The shell command runs in the current working directory. Its stdout is injected inline into the prompt.

Commands priority

When the same command name exists in multiple sources, the highest-priority source wins: This lets project commands override global defaults, and JSON config override markdown for the same name.