The runtime is heypi’s command, file, and search API. When the agent callsDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/hunvreus/heypi/llms.txt
Use this file to discover all available pages before exploring further.
bash, read, write, grep, or any other core tool, those calls go through the configured runtime. The runtime enforces the scoped workspace root, path containment, file size limits, and (for just-bash) network isolation. Custom tools can also use the runtime explicitly through ctx.runtime when they need sandboxed command or file work.
Built-in Runtimes
just-bash
Default. Runs commands in a subprocess with network disabled by default and strict path containment. The safe choice for team-facing agents.
guarded-bash
Host bash with regex guardrails. Useful for dev or trusted environments. Not a sandbox — runs directly on the host.
host-bash
Unrestricted host bash. For admin or developer-only agents. Do not use with untrusted users.
Basic Configuration
workspace() resolves the given path relative to process.cwd(). Use it to get an absolute path for the runtime root. Set runtime.name only when choosing guarded-bash or host-bash; just-bash is the default and does not need an explicit name.
just-bash Network Configuration
Network access is disabled by default in just-bash. Without explicit network config, commands like curl and wget are unavailable even if commandConfirm() would allow them.
- Allow specific URLs
- Full internet access
Enable access only to the URLs your agent needs:
File and Search Limits
File and search tools enforce size and traversal limits. Configure them underruntime.limits:
| Option | Default | Description |
|---|---|---|
maxFileBytes | — | Maximum bytes that read will inline |
maxScanBytes | — | Maximum bytes that grep will scan |
maxEntries | — | Maximum entries that find and ls will return |
Docker Runtime
@hunvreus/heypi-runtime-docker is an experimental preview. Its API and operational behavior may change before heypi 1.0.bash, read, write, edit, grep, find, and ls tools inside a scoped Docker container.
Requirements
- Docker CLI on
PATH - Running Docker daemon
- A Linux image with
bashand standard POSIX utilities:sh,find,awk,wc,sed,cat,head
Install
Configuration
Behavior
- One warm container is kept per runtime scope.
- The scoped runtime root is bind-mounted at
/workspaceinside the container. - Commands run with
docker execinside the container. - File and search tools run shell scripts inside the container — they do not read or write through host filesystem shortcuts.
- Containers stop after
idleMswith no use. SetidleMs: falseto keep them until app shutdown. - Network defaults to
"none". Setnetwork: "bridge"or another Docker network only when the agent needs network access. - Containers are labeled with
heypi.runtime=dockerand scope metadata for local inspection.
Management Hooks
Gondolin VM Runtime
@hunvreus/heypi-runtime-gondolin is an experimental preview. Its API and operational behavior may change before heypi 1.0.Requirements
- Node.js 23.6 or newer
- QEMU installed:
Install
Configuration
Behavior
- One warm VM is kept per runtime scope.
- The scoped runtime root is mounted at
/workspace. - VM egress is open by default. Use
secretswith per-hosthostsrestrictions to limit where credentials can flow. - Secrets are exposed through HTTP hooks inside the VM — the agent never sees raw secret values.
- VMs stop after
idleMswith no use. SetidleMs: falseto keep them until app shutdown. - Extra host directories can be mounted with
mounts. - Timed out, cancelled, or crashed VM executions close the VM; the next call starts a fresh one.
Management Hooks
Cold Start Behavior
When a managed runtime (Docker or Gondolin) is starting up, heypi emits a progress event rendered asruntimeStarting. This defaults to "Preparing runtime..." and can be customized or disabled:
Attachment Handling
Inbound attachments are stored in a scoped tree separate from the runtime workspace. When heypi inlines an attachment:| Attachment type | Handling |
|---|---|
| Text-like files | Inlined as text into the prompt |
| Images | Passed to Pi as image inputs |
| PDFs / Office documents | Converted to Markdown (optional) |
| Unsupported binaries | Kept as attachment references |
Optional Document Conversion
Enable PDF and Office document conversion:heypi-convert-document wrapper uses Microsoft MarkItDown through Python. Prewarm it during deploy to avoid first-run latency:
Document conversion requires Python 3 plus either
uv or MarkItDown already installed in your Python environment.