Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Architecture at a glance

Veyyon ships as the veyyon CLI (Bun + TypeScript, Rust helpers). Subsystems map each has a handbook page and matching engineering notes under docs/.

The request path

            ┌──────────────────────────────────────────────────────────────┐
prompt ──► │  veyyon (packages/coding-agent)                              │
            │    │                                                          │
            │    ▼                                                          │
            │  AgentSession turn loop                                      │
            │    │   model stream → tools (read, bash, edit, …)            │
            │    ▼                                                          │
            │  hashline / handlers ──► filesystem (approval-gated)         │
            └──────────────────────────────────────────────────────────────┘

Subsystems

SubsystemResponsibilityChapter
Edit engine (@veyyon/hashline)Default hashline edit pathEdit engine
SessionsSession trees, compactionCompaction & memory
MCPMCP client integrationMCP
ConfigSettings and profilesConfig
Memoryoff / local / mnemopi / hindsightMemory
GoalsGoal cards and budgetsGoal state

Design rules

  1. One primary edit path. Hashline is the default edit surface; alternate edit.mode values exist for compatibility.
  2. Explicit failures. Invalid config, stale hashline tags, and denied actions return actionable errors to the operator or model. Denied tools do not auto-escalate permissions.

Tool-call argument repair (alias maps, strict unknown-key rejection, parse leniency) runs at the dispatch seam in packages/coding-agent/src/repair/schema-repair.ts. See Repair. Providers and models: Providers.