A3S Docs
A3S Code

A3S Code TUI

Install, configure, and use the a3s code terminal application

A3S Code TUI

a3s code is the interactive terminal application for A3S Code. It is shipped by the a3s CLI, embeds the a3s-code-core runtime, and renders the runtime event stream with a3s-tui.

Use the TUI when you want a ready coding-agent terminal. Use the SDK packages when you are building your own harness, IDE extension, server worker, workflow runner, or product UI.

Surface Map

SurfaceRepositoryResponsibility
a3s-codeAI45Lab/CodeRuntime crates plus Node.js and Python SDKs.
a3s codeA3S-Lab/CliTerminal coding-agent application that drives A3S Code sessions.
a3s-tuiA3S-Lab/TUITerminal UI framework used by the CLI. It is not the agent runtime.
A3S monorepoA3S-Lab/a3sProduct docs, release orchestration, submodule pins, and related crates.

Install

Install the CLI, then run a3s code from the workspace you want the agent to inspect:

brew install A3S-Lab/tap/a3s

# or from crates.io
cargo install a3s

# or from the CLI repository
cargo install --git https://github.com/A3S-Lab/Cli
a3s code
a3s code resume <session-id>
a3s code update

The top-level a3s update command is also accepted by the CLI and routes to the same updater.

Configuration

The TUI discovers config in this order:

  1. A3S_CONFIG_FILE
  2. .a3s/config.acl walking upward from the current directory
  3. ~/.a3s/config.acl

The TUI uses .a3s/config.acl for project-local configuration. SDK examples often use agent.acl because embedders pass the config path explicitly with Agent.create("agent.acl"). Both are ACL files; the important difference is who discovers the file.

Keep real keys, private provider URLs, tenant identifiers, and user-specific paths out of commits. Public templates should resolve credentials through environment variables:

default_model = "provider/model-id"

providers "provider" {
  apiKey = env("PROVIDER_API_KEY")
  baseUrl = env("PROVIDER_BASE_URL")

  models "model-id" {
    tool_call = true
    limit = {
      context = 128000
      output = 4096
    }
  }
}

Filesystem-First Workflow

The TUI is workspace-oriented. When launched in a repository, it can load the same filesystem-first conventions used by SDK sessions:

PathTUI role
AGENTS.mdProject instructions loaded into context.
.a3s/config.aclProject-local model, provider, skill, storage, and delegation policy.
.a3s/agents/Worker roles available to task, parallel_task, and automatic delegation.
.a3s/skills/ and skills/Reusable project skills surfaced to the session.
.a3s/kb/Project knowledge base used by TUI knowledge workflows.

These files make behavior reviewable, but they do not bypass runtime gates. Permission policy, confirmation prompts, workspace checks, tool visibility, response contracts, and verification still run through A3S Code.

Runtime Event Stream

The TUI treats AgentSession::stream() as the source of truth. Runtime events drive transcript text, tool-call progress, planning state, approval prompts, memory views, git/file panels, verification evidence, and replayable run state.

This split matters for product builders: the TUI is one opinionated client over the runtime. SDK embedders can build different controls over the same session, tool, event, persistence, and verification APIs.

Slash Commands

Built-in slash commands include:

CommandPurpose
/modelSwitch among configured models and signed-in account models.
/initAnalyze the workspace and generate AGENTS.md.
/configOpen .a3s/config.acl in the editor.
/themeCycle the code-highlighting theme.
/workflowView the latest dynamic workflow.
/outputView tool calls made during the session.
/login and /logoutSign in to or out of a configured account integration.
/viewOpen the last generated account view in a native window.
/plugin and /reloadEnable, disable, and rescan skills/plugins.
/btwAsk a background side question.
/topOpen the live process and agent monitor.
/ideOpen the workspace file tree and code viewer.
/gitInspect git status, diff, staging, and commit flows.
/memoryBrowse long-term memory.
/kbAdd text, files, or folders to the project knowledge base.
/effortAdjust model effort when the selected model/provider supports it.
/compactSummarize and compact conversation context.
/goalSet a persistent goal for the session.
/loopRun a task with auto-continuation until completion or stop.
/relayContinue an unfinished task from another agent.
/helpShow commands and shortcuts.
/clearReset the conversation.
/autoSwitch to auto-approve mode.
/updateUpgrade the CLI to the latest release.
/exitQuit a3s code.

Some commands are accepted only while the session is idle because they mutate conversation, model, context, or process state.

  1. Filesystem-First
  2. Sessions
  3. Commands
  4. Tools
  5. Security

On this page