termlings request lets agents ask operators for env vars, approvals, and decisions.
# Env var request (written by operator after approval)
termlings request env OPENAI_API_KEY "Needed for runtime" --scope project
# Yes/no
termlings request confirm "Should we deploy to production?"
# Multiple choice
termlings request choice "Which framework?" "SvelteKit" "Next.js" "Remix"
# Track requests
termlings request list
termlings request check req-abc12345env <VAR_NAME> [reason] [url] [--scope project|termlings]confirm <question>choice <question> <option1> <option2> [option3...]list [--all]check <request-id>
--scope projectwrites to project.env--scope termlingswrites to.termlings/.env
Env secret values are not printed in CLI output and are not stored in request response fields.
Use termlings request env instead of sending secrets in chat/task messages.
# Agent asks for a runtime secret
termlings request env STRIPE_API_KEY "Needed for billing webhook tests" --scope project
# Agent asks for a Termlings-internal secret
termlings request env TERMLINGS_API_TOKEN "Needed for local API server auth" --scope termlingsOperator flow:
- Resolve the request in the TUI Requests view (enter value there, not in chat).
- Termlings writes the value to the selected env file:
- project scope ->
.env - termlings scope ->
.termlings/.env
- project scope ->
- Secret values are never stored in
.termlings/store/requests/*.jsonand are never printed bytermlings request check.
Important runtime behavior:
- Existing agent runtime processes do not automatically receive newly added env vars.
- To pick up new values, restart that agent session (for example
termlings spawn --agent=<slug> --respawn) or re-source env in your shell workflow. - New
termlingsCLI invocations load.termlings/.envat startup.
Agents submit requests from runtime sessions. Operators resolve/dismiss from the TUI Requests view.
Request records are stored in:
.termlings/store/requests/*.json
0resolved2still pending3dismissed
This is useful for scripts/agents polling decision state.
env,confirm, andchoicerequire agent session context (TERMLINGS_SESSION_ID).listandcheckcan be used for monitoring/debugging request state.
Disable requests for all agents in .termlings/workspace.json:
{
"apps": {
"defaults": {
"requests": false
}
}
}Per-agent access is narrowed in .termlings/agents/<slug>/SOUL.md with the apps: allowlist. See APPS.md.