Skip to main content

CLI Reference

Complete reference for the byteask command-line interface. The binary is named byteask; the underlying engine is byteask-engine.


Synopsis

byteask [OPTIONS] [PROMPT]
byteask <SUBCOMMAND> [OPTIONS]

Run byteask with no arguments to open the interactive TUI. Provide a PROMPT to seed the first message. Use a subcommand for specific operations.


Global flags

These flags are accepted by byteask (TUI mode) and most subcommands.

Config override

FlagDescription
-c, --config key=valueOverride a single config.toml key (repeatable). Value is TOML-parsed. Dotted paths are supported, e.g. -c tui.vim_mode_default=true.

Shared options

FlagShortTypeDefaultDescription
--image FILE-ipath (repeatable)Attach an image to the initial prompt. Repeatable for multiple images.
--model ID-mstringfrom configModel ID to use for this session. Overrides config.toml.
--ossboolfalseUse a local open-source model provider.
--local-provider NAMEstringLocal provider name: "lmstudio" or "ollama". Requires --oss.
--profile NAME-pstringLoad a named profile from config.toml.
--sandbox MODE-senumSet sandbox mode: read-only, workspace-write, or danger-full-access.
--dangerously-bypass-approvals-and-sandboxboolfalseSkip all approval prompts and sandbox enforcement. Alias: --yolo.
--dangerously-bypass-hook-trustboolfalseRun hooks without the hook trust check.
--cd DIR-CpathChange to this directory before running. Overrides cwd.
--add-dir DIRpath (repeatable)Grant the agent write access to an additional directory (outside cwd).

Feature flags

FlagDescription
--enable FEATUREEnable a named feature flag (repeatable).
--disable FEATUREDisable a named feature flag (repeatable).

Remote / daemon

FlagDescription
--remote ADDRConnect the TUI to a remote app-server (ws://, wss://, or unix:// address).
--remote-auth-token-env VARName of the environment variable holding the bearer token for the remote websocket.

TUI mode (default)

byteask [OPTIONS] [PROMPT]
FlagShortDefaultDescription
PROMPTnoneInitial prompt text. Opens TUI with this message pre-filled.
--strict-configfalseExit with an error on any unknown field in config.toml.
--ask-for-approval MODE-aon-requestApproval policy: untrusted, on-request, or never.
--searchfalseEnable live web search for this session.
--no-alt-screenfalseRender TUI inline instead of switching to the alternate screen buffer. Useful when you want scrollback.

Subcommands

exec (alias: e)

Non-interactive execution. Runs the agent against a prompt and exits.

byteask exec [OPTIONS] [PROMPT]
byteask exec [OPTIONS] - # read prompt from stdin
FlagShortDefaultDescription
PROMPTThe task to execute. Pass - to read from stdin.
--json / --experimental-jsonfalsePrint events as JSONL on stdout instead of human-readable output.
-o FILE, --output-last-message FILEWrite the agent's final message to a file.
--color MODEautoColor output mode: always, never, or auto.
--ephemeralfalseDo not write any session files to disk.
--ignore-user-configfalseSkip ~/.byteask/config.toml.
--ignore-rulesfalseSkip .rules files in the repository.
--output-schema FILEJSON Schema file. The model's final response will conform to this schema.
--skip-git-repo-checkfalseAllow running outside a Git repository.

All shared options also apply.


review

Review current code changes non-interactively.

byteask review [OPTIONS]

login

Manage authentication.

byteask login [OPTIONS]
FlagDescription
--with-api-keyRead an API key from stdin and store it.
--with-access-tokenRead an access token from stdin.
--device-authAuthenticate using device code flow.

logout

Remove stored credentials.

byteask logout

resume

Resume a saved session.

byteask resume # interactive session picker
byteask resume <ID> # resume a specific session

fork

Fork (branch off) a previous session.

byteask fork <SESSION_ID>

archive

Archive a session (hides it from the default session list).

byteask archive <SESSION_ID>

unarchive

Restore an archived session.

byteask unarchive <SESSION_ID>

delete

Permanently delete a session.

byteask delete <SESSION_ID>

apply (alias: a)

Apply the latest diff produced by ByteAsk via git apply.

byteask apply

mcp

Manage external MCP servers.

byteask mcp list
byteask mcp add <NAME> <COMMAND> [ARGS...]
byteask mcp remove <NAME>

mcp-server

Start ByteAsk as an MCP server (stdio transport). Allows Cursor, Claude Desktop, and other MCP clients to use ByteAsk as a tool.

byteask mcp-server

plugin

Manage plugins.

byteask plugin list
byteask plugin install <NAME>
byteask plugin remove <NAME>

sandbox

Run a shell command inside the ByteAsk sandbox without starting a full session.

byteask sandbox -- <COMMAND> [ARGS...]

doctor

Diagnose your installation, config, authentication, and network connectivity.

byteask doctor

debug

Low-level debugging sub-tools (model inspection, trace reduction, config dump).

byteask debug

features

Inspect all named feature flags and their current enabled/disabled state.

byteask features

completion

Generate shell tab-completion scripts.

byteask completion bash
byteask completion zsh
byteask completion fish
byteask completion powershell

update

Update ByteAsk to the latest version.

byteask --update # can also be invoked as a flag on the main command

app

macOS and Windows only. Launch or bring to front the ByteAsk desktop application.

byteask app

app-server (experimental)

Run a background app server that TUI instances can connect to via --remote.

byteask app-server

remote-control (experimental)

Manage the ByteAsk daemon.

byteask remote-control

exec-server (experimental)

Run a standalone execution server that accepts tasks over the network.

byteask exec-server

cloud (alias: cloud-tasks) (experimental)

Browse and manage cloud task runs.

byteask cloud

Config file reference

~/.byteask/config.toml is read at startup. All keys are optional. Override any key on the command line with -c key=value.

Model

# Model ID string
model = "gpt-5.4"

# Reasoning effort applied to the model
# "none" | "minimal" | "low" | "medium" (default) | "high" | "xhigh" | "ultra"
model_reasoning_effort = "medium"

# Verbosity of model output
# "low" | "medium" (default) | "high"
model_verbosity = "medium"

# Absolute path to a JSON model catalog (overrides built-in catalog)
model_catalog_json = "/path/to/models-catalog.json"

# Context window size (tokens); 0 = use model default
model_context_window = 0

# Auto-compact when remaining context falls below this token count
model_auto_compact_token_limit = 0

Approval and sandbox

# "on-request" (default) | "untrusted" | "never"
approval_policy = "on-request"

# Who reviews auto-denials: "user" (default) | "auto_review"
approvals_reviewer = "user"

# Legacy integer field — use the --sandbox flag instead for string values
# sandbox_mode = 0
# "disabled" | "cached" (default) | "indexed" | "live"
web_search = "cached"

[tools.web_search]
context_size = "medium" # "low" | "medium" | "high"
allowed_domains = [] # empty = all domains

TUI appearance

[tui]
vim_mode_default = false # enable Vim keybindings by default
alternate_screen = "auto" # "auto" | "always" | "never"
animations = true
session_picker_view = "dense" # "comfortable" | "dense"
theme = "dracula" # syntax highlight theme name

Shell environment

[shell_environment_policy]
inherit = "all" # "all" | "core" | "none"
exclude = [] # variable names to always strip
set = {} # variables to forcibly set
include_only = [] # if non-empty, only these vars are passed

History

[history]
persistence = "save-all" # "save-all" | "none"
max_bytes = 0 # 0 = unlimited

MCP servers

[mcp_servers.my-server]
command = "/path/to/server"
args = ["--flag"]
env = { KEY = "value" }
enabled = true
required = false
startup_timeout_sec = 10
tool_timeout_sec = 30
enabled_tools = [] # whitelist specific tools (empty = all)
disabled_tools = [] # blacklist specific tools

For HTTP/SSE transport:

[mcp_servers.remote]
url = "https://example.com/mcp"
bearer_token_env_var = "MY_TOKEN"

Notifications

# Command to run when ByteAsk finishes a task (receives output as stdin)
notify = ["notify-send", "ByteAsk", "Task complete"]

Miscellaneous

# Communication style: "none" | "friendly" | "pragmatic"
personality = "none"

# Open files in: "vscode" | "vscode-insiders" | "windsurf" | "cursor" | "none"
file_opener = "vscode"

# Service tier: "default" | "priority" | "flex" | "fast"
service_tier = "default"

# Check for updates on startup
check_for_update_on_startup = true