Commands
A3S Code is primarily SDK-driven. Product CLIs and UIs usually map commands to session APIs rather than depending on a large public command protocol.
This page describes the SDK command registry. For the built-in commands in the
a3s code terminal app, see A3S Code TUI.
The two surfaces are intentionally different:
SDK commands execute before the LLM sees the input. A handler receives the raw argument string plus session metadata, and returns display text. Use commands for thin control-plane actions; use normal SDK methods for workflows, tools, verification, and persistence.
Inside the TUI, /flow manages workflow asset files and optional host
integrations. It is not the same surface as DynamicWorkflowRuntime, which is
the local A3S Flow-backed runtime used by ultracode and ? DeepResearch
through the model-visible dynamic_workflow tool.
Recommended Mappings
Building Slash Commands
If your app exposes slash commands, keep them thin. Register the handler, list
the available commands, and invoke the command through session.send():
Command handlers should not hide long-running work. If a command needs to run tools, verify output, fan out to subagents, or schedule recurring automation, have the handler return a short acknowledgement and run that work through explicit host code. That keeps cancellation, audit, and permissions visible.