bash
Run real shell commands from the agent's workdir - npm, git, python, build
tools, anything a developer would type. Shell state (cwd, env, activated venvs)
persists across calls within a session, like a real terminal.
Exact tools and parameters
catalog.describe_module bash returns the real tool and every parameter,
from the live registry. Use it instead of trusting a list here.
Tool, at a glance: run.
Gotchas that matter
- Long-running processes (dev servers, watchers,
tail -f, REPLs) must usebackground_run(acontext_buildertool), never a foregroundbash.run- a foreground long-runner freezes the turn until timeout. Never append a trailing&. pty: truefor commands that need a real terminal (docker run -it,ssh,npm login).runisRiskHighand irreversible - gate it withtools.capabilities.approveif the app should confirm before running.
A working app
Compiles as-is. The brain uses a Digitorn gateway model (the default - no API key of your own needed); see the note below to use your own key or a local model instead.
app:
app_id: shell_runner
name: Shell Runner
runtime:
entry_agent: main
agents:
- id: main
system_prompt: |
Run shell commands to build and inspect the project. Use background_run
for long-lived processes like dev servers, never a foreground command.
brain:
provider: openai
backend: openai_compat
model: mimo-v2.5-free # a model the Digitorn gateway serves
config:
api_key: placeholder # ignored in gateway mode
tools:
modules:
bash: {}
capabilities:
grant:
- module: bash
tools: [run]
Related
- filesystem - structured file read/write/edit
- Primitives