Mechanisms
Hashline edits
The edit and write tools accept hashline patches, which are addressed by content rather than by line number. Before writing, the native layer checks the patch against the current file. If they do not match, the tool fails and returns recovery context to the model instead of writing a corrupted file.
See Editing and repair and The hashline edit engine.
Tool approval tiers
tools.approvalMode is one of plan, ask, ask-command, auto, or yolo.
auto is the default. Three aliases are accepted: always-ask for ask, and
write and auto-edit for ask-command. The tiers are read, write, and exec.
Four checks apply in every mode, and no mode disables them:
- Per-tool overrides in
tools.approval. - The working-directory boundary.
- The secret-use boundary.
bash-guard.ts, which forces a prompt on a destructive command such as a recursive delete of the home directory.yolodoes not lift it.
bashInterceptor.enabled, off by default, adds a pattern check on top: a shell
command that matches bashInterceptor.patterns is blocked with a message that
states the dedicated tool to use instead.
See Approvals and /settings -> Interaction ->
Approvals.
Model slots and helpers
Model configuration separates the session model from per-feature helpers:
- The default model is set with
/modelor--modeland persists asdefaultModel. - Helpers pin a model to one feature, such as
titlefor session titles oradvisorfor review, underagent.helpers. Unset, a helper runs the session’s model. See Models, helpers, and profiles. - Overrides are explicit subsystem policies.
compaction.modeloverrides the interactive model for compaction, otherwise compaction inherits it. Agent models are configured via agent policies in settings. - Cycling rotates through the scoped models (
--models), else the available models, bound toapp.model.cycleForward.
Provider-neutral loop
The agent loop, TUI, session format, MCP, skills, hooks, and extensions operate independently of specific model providers. Providers are configured in the active profile agent directory through config.yml or /setup, with account management via /providers.
Engine modes
Compaction, goal continuation, plan mode, vibe mode, and task agents are implemented in the session and tool layer, not only in prompt text. Goal mode can keep an idle session moving toward a stored objective. Plan mode writes a plan file and holds back mutation until the resolve and approval paths complete.
Profiles
Every profile, including default, is stored at ~/.veyyon/profiles/<name>/agent/, which holds its settings, sessions, MCP config, skills, and hooks. See Profiles and File locations.