agentissimo.yaml
agentissimo.yaml lives in a repository’s .agentissimo/ directory
(.agentissimo/agentissimo.yaml) — the same dotted-directory convention as
.claude/ or .cursor/. It is committed and shared with the team. A legacy
copy at the repository root still loads; when both exist, the .agentissimo/
file wins. Per-developer overrides live in the app data folder
(<data_dir>/projects/<id>/local.yaml) — same schema, per-field local-wins
precedence.
Agentissimo seeds a minimal committed file on first open (git repos only), with
just version and defaultBase. Everything else is optional and defaults
sensibly when omitted.
Minimal file
Section titled “Minimal file”version: 1defaultBase: origin/mainFull reference
Section titled “Full reference”version: 1
# Branch new work targets. Seeded as origin/<default-branch>.defaultBase: origin/main
# Spec-driven framework. Currently: openspec.specFramework: openspec
# Which agent CLI runs the work. Omit → claude-code.agentDriver: kind: claude-code # claude-code | codex | cursor | copilot | pi model: claude-opus-4-8 # optional; omit → driver default allowedTools: [Read, Edit, Bash] # optional tool allowlist
# Branch/PR host. Omit → { host: gh, autoPushOnArchive: false }.lifecycle: host: gh defaultBase: origin/release # override PR target only autoPushOnArchive: false # push branch after archive — opt-in
# Attention chimes. Omit → enabled with sensible defaults.chimes: enabled: true events: [needs-input, error, pr-opened] sinks: [os-notify, browser-audio] debounceMs: 500 audio: { enabled: true, preset: default } notify: { enabled: true }
# Inline Terminal AI. Omit → enabled.terminalAi: enabled: true model: claude-haiku-4-5 # omit → driver picks a cheap default question: { enabled: true } errorAssist: { enabled: true, minExitCode: 1 } destructiveGuard: { enabled: true, mode: confirm } # confirm | warn | off greeting: { enabled: true } tui: { enabled: false } # opt-in ratatui frame around the shell
# Omnibox search fallback. %s = URL-encoded query.browser: searchTemplate: https://www.google.com/search?q=%s
# Workspace-scoped settings.workspace: # Shell command run once in a new worktree after it is created. # A committed script needs a one-time per-repo approval before its first run. startupScript: npm installField notes
Section titled “Field notes”version— schema version. Currently1.defaultBase— base branch for new workspaces and PR targets.agentDriver— see Add a driver and Model selection & effort.lifecycle.autoPushOnArchive— defaults tofalse; the daemon pushes the branch after archive only when you opt in.chimes— see Configure chimes.terminalAi.destructiveGuard.mode—confirmblocks a matched command pending a y/N,warnruns it and prints a recovery note,offdisables it.terminalAi.tui.enabled— wraps new terminals in a ratatui frame: the accent header on top, the live shell inside (every trigger keeps working), and a status line — pressCtrl+Gto ask Agentissimo without touching the shell. Off by default.workspace.startupScript— a shell command run once in a newly-created worktree (working directory = the worktree). It runs in the background; the workspace is usable immediately, and the workspace’s Setup section shows its progress and log. A committed script runs on every teammate’s machine, so its first run per repo waits for a one-time approval; a script set only in the gitignoredlocal.yamlis self-authored and runs without approval. A non-zero exit is surfaced as a warning and never removes the worktree.
A malformed file surfaces a banner naming the parse error rather than silently falling back.