What you can use in app YAML
This page is the inventory for app authors. Everything below
is something you declare or call from app.yaml (and optional
bundle files). Copy examples from the tutorials and paste them
into your own app.
Modules you can enable
Declare them under tools.modules:
| Module | Tools (actions) | Typical use |
|---|---|---|
bash | run | Shell commands |
browser | open, act, read | Browser automation |
database | connect, query, disconnect | SQL / data stores |
filesystem | read, write, edit, multi_edit, glob, grep, delete | Files in the workdir |
http | request, download, upload | HTTP calls |
lsp | diagnostics, notify_change | Language-server feedback |
mcp | Virtual tools from MCP servers | External tool servers |
pieces | Dynamic (installed pieces) | Digitorn pieces |
preview | inspect, snapshot | Live preview pane |
previewshot | screenshot | Preview screenshots |
rag | Search / ingest family (see rag) | Knowledge bases |
scheduler | schedule | Timed wake-ups |
web | search, fetch | Web search and fetch |
workspace | baseline, changes, diff, history, approve, approve_hunks, reject, reject_hunks, commit, revert, revert_commit, log | Git-style revise / approve |
Also available without a full module page in every tutorial:
| Id | Role in YAML |
|---|---|
memory | Goals, remember, tasks |
context_builder | Meta-tools (discovery, parallel, background) |
agent_spawn | Multi-agent agent (and kv when spawn is on) |
channels | Background I/O adapters (webhook, cron, …) |
Built-in meta tools
When discovery / context injection is on, agents can use tools such as:
search_tools, get_tool, execute_tool, run_parallel,
background_run (including watch loops), and when enabled
ask_user, call_app, use_skill, memory helpers, agent, kv.
Details: Built-in tools, Primitives.
Do not invent these
Older docs sometimes listed names that are not valid in today's app YAML:
| Avoid | Use instead |
|---|---|
web_preview / dev_tools modules | preview / previewshot + ui.workspace |
watch_start family | background_run with watch: true |
http.get / http.post | http.request |
bash as an action name | bash.run (actions: [run]) |
mcp.call_tool / mcp.list_tools grants | grant: [{ module: mcp }] (virtual tools at runtime) |
channels.send_message tools | Channel adapters + app mode, not catalog tools |
workspace write/read/edit | File I/O is filesystem.* |
Channels you can declare
Under tools.channels, adapters such as webhook, cron,
rss, telegram, discord, whatsapp, pieces,
and primitives are the supported shapes. See
Channels.
Next steps
- Start writing: Getting started
- Full grammar: Language
- Per-module pages: Module reference