Agent Tools
The agent can call built-in tools, and you control which are enabled and how risky ones are gated.
Image generation & editing
Set the deployment to enable generation and editing via Azure OpenAI
gpt-image-1.5 (no opt-in flag -- it activates when the variable is set):
IMAGE_DEPLOYMENT_NAME=gpt-image-1.5
- generate_image -- create images from text with configurable size, quality, format, background, and count (1-4)
- edit_image -- modify existing session images from a text prompt
- Canvas Mask Editor -- click Edit on any generated image, draw over the region to change (brush S/M/L, eraser, undo/redo), enter a prompt, and only the masked area is edited
- Images render inline and persist across reloads
Weather
Rich weather card widgets powered by Open-Meteo (free, no API key). The agent geocodes a city and fetches current conditions or a 7-day forecast on demand.
Coding tools
File operations and shell execution, restricted to a workspace directory:
CODING_ENABLED=true
CODING_WORKSPACE_DIR=C:\path\to\workspace
# CODING_FILE_READ_MAX_BYTES=1048576 # 1 MiB default
file_read caps output at CODING_FILE_READ_MAX_BYTES; when the cap or a line
limit is hit, the response ends with a [TRUNCATED BY BYTES: ...] /
[TRUNCATED BY LIMIT: ...] marker telling the agent how to paginate with
offset=N.
Tool approval
Destructive coding tools pause for an inline Approve / Reject / Approve for this
session decision. Read-only tools (file_read, file_glob, file_grep) never
require approval.
# auto (default) -> gate bash_execute + file_write
# always -> gate every non-read-only tool
# skip -> disable approval (autonomous)
TOOL_APPROVAL_MODE=auto
TOOL_APPROVAL_REQUIRE_LIST=bash_execute,file_write
TOOL_APPROVAL_TIMEOUT_SEC=300
With TOOL_APPROVAL_MODE=skip, the SPA shows a persistent "Tool approval is
DISABLED" banner. Headless lanes (OpenAI API, the chatwalaau chat CLI, DevUI)
auto-approve every request and log a WARNING per auto-approval.
Conversation compaction
Long sessions are compacted in memory before each model call (the on-disk session JSON is never altered) so the agent keeps responding instead of failing at the context-window limit:
# none | sliding-window (default) | selective-tool-call | tool-result
COMPACTION_STRATEGY=sliding-window
COMPACTION_KEEP_LAST_GROUPS=4
COMPACTION_PRESERVE_SYSTEM=true
Background Responses
For long-running operations (e.g. o3/o4-mini reasoning), toggle the BG button (left of the context indicator). The ChatInput border turns blue, and continuation tokens are auto-saved to the session for page-reload resumption. No environment variable needed.
Prompt Templates
Save and reuse prompts from the chat interface (stored as JSON files):
TEMPLATES_DIR=.templates
Open the + menu -> Use template, or click the FileText icon on any user message to save it as a template. Insert to Chat pastes a template into the input for editing before send.
Agent Skills
Portable domain-knowledge packages following the Agent Skills specification, loaded on demand:
SKILLS_DIR=.skills
.skills/
my-skill/
SKILL.md # required: instructions + metadata
scripts/ # optional: executable code
references/ # optional: documentation
assets/ # optional: templates, resources
Skills use progressive disclosure (~100 tokens per skill when idle) to keep context-window usage low.