Docs/Vulgr Agent (CLI)

Tools and permissions

The ten agent tools, the agent's own PTY sessions, and the fail-closed permission policy.

Tools

ToolWhat it does
readReads a file.
globFinds files by pattern (respects ignore rules).
grepSearches file contents.
editMakes a targeted change to an existing file.
writeCreates or overwrites a file.
exec_commandRuns a command in one of the agent’s own PTY sessions.
write_stdinSends input to, and reads more output from, a running session.
read_blockReads a command block’s output.
update_planKeeps the agent’s step-by-step plan up to date.
ask_userAsks you a question and waits for the answer.

The agent’s own shells

Agent commands never run in your shell and are never typed into your prompt. Each exec_command runs in a separate PTY session owned by the agent, which can be sandboxed. A long-running command returns a session_id; the agent follows it with write_stdin instead of blocking.

Errors

A failing tool doesn’t crash the turn. The error goes back to the model as an is_error result, so it can read it and try something else.

Permissions

permissions/ has two parts: command classification and a policy.

Classification

Every command is classified as one of:

ClassMeaning
readonlyOnly reads (for example ls, cat, git status).
shell-stateChanges the shell’s state (for example cd, export).
dangerousCan destroy data or change the system.
unknownNot recognised.

Classification is fail-closed: anything not recognised is unknown and treated with caution, never assumed safe.

Modes

ModeBehaviour
askAsks before anything that isn’t safe.
acceptEditsFile edits are accepted automatically; other actions still ask.
planThe agent plans but doesn’t change anything.
yoloEverything is allowed.

Rule precedence

deny > ask > allow. A deny rule always wins, then ask, then allow. Protected paths stay protected whatever the mode.

Edit this page on GitHub ↗