a-agent 0.3.0

Fast, terminal-native coding agent with progressive context
Documentation
default_model = "codex"

[providers.openai]
type = "responses"
base_url = "https://api.openai.com/v1"
api_key_env = "OPENAI_API_KEY"
# Optional plaintext key. When set, this takes precedence over api_key_env.
# Warning: protect this file and never commit a real key.
# api_key = "sk-..."
max_tokens = 8192

# OpenAI's default is used when base_url is omitted.
# base_url = "https://api.openai.com/v1"

# For an OpenAI-compatible third-party gateway, add another provider:
# [providers.gateway]
# type = "chatcompletion"
# base_url = "https://gateway.example/v1"
# api_key_env = "GATEWAY_API_KEY"

# Anthropic provider example:
# [providers.anthropic]
# type = "anthropic"
# base_url = "https://api.anthropic.com"
# api_key_env = "ANTHROPIC_API_KEY"

# Third-party gateways can require extra headers.
[providers.openai.headers]
# X-Tenant = "acme"

# Provider-level request fields are inherited by every linked model.
[providers.openai.request]
# service_tier = "priority"

[models.codex]
provider = "openai"
model = "gpt-5.6"
effort = "medium"
efforts = ["low", "medium", "high", "xhigh", "max"]
context_window = 1050000

# /status prices a session from models.dev. Set this when several providers list
# the same model id at different rates; /status names the candidates when so.
# pricing = "openai/gpt-5.6"
#
# Or state the rates yourself, in USD per million tokens. These win over
# models.dev and need no network.
# [models.codex.cost]
# input = 1.25
# output = 10.0
# cache_read = 0.125
# cache_write = 0.0

# Multiple model profiles may share a provider and override request settings.
# [models.fast]
# provider = "openai"
# model = "gpt-5.6"
# effort = "low"
# efforts = ["none", "low", "medium"]
# context_window = 1050000
# max_tokens = 4096
#
# [models.fast.request]
# service_tier = "default"

[ui]
show_reasoning = false
reasoning_toggle = "ctrl-o"
tool_input_max_bytes = 2048
tool_output_max_bytes = 8192
tool_output_max_lines = 16
tool_live_output_lines = 6
# Hunk lines shown per apply_patch call.
patch_diff_max_lines = 24

[tools]
# Default bash timeout. A call that expects to be slow can ask for more, up to
# bash_max_timeout_seconds, so this stays short without blocking long builds.
bash_timeout_seconds = 120
bash_max_timeout_seconds = 1800
max_parallel = 8
max_output_bytes = 65536

[context]
shell_history_count = 5
stdin_max_bytes = 131072
read_max_lines = 1000

[session]
max_agent_cycles = 50
shell_history_limit = 5000
input_history_limit = 1000
# Largest previous file contents kept so a rewind can offer to restore them.
# Anything larger is reported as unrestorable instead of half-restored.
snapshot_max_bytes = 1048576