Settings Reference¶
Gear icon → Inline Agents.
Plugin-wide¶

| Setting | Default | |
|---|---|---|
| Default Agent | Claude Code | Which CLI agent note buttons run when they don't specify their own agent: line. |
| Auto-approve by default | Off | When on, buttons run with permission checks bypassed unless a button sets autoApprove: false. When off, the agent asks before each tool use, right in the terminal, unless a button sets autoApprove: true. |
| Allow JavaScript expressions in prompts | Off | Gates {{= expression }} segments in prompt: templates. Plain {{ file.basename }}-style lookups always work regardless of this setting — see Context and Templating. |
Per provider (Claude Code / OpenCode)¶

| Setting | ||
|---|---|---|
| Connection status dot | green/red next to the provider name | Whether the configured binary actually runs (<bin> --version exits 0) — not an auth check. Refreshed on Settings open and via the ↻ button. |
| Binary path | text field | Absolute path to the executable, or a bare command name to rely on PATH. Falls back through known install locations and finally PATH lookup if the configured path doesn't exist — see Claude Code and OpenCode. |
| Model mappings | dynamic list | Name → model string pairs a button's model: line resolves against — see Model Mappings. |
OpenCode's model dropdown is a live list from opencode models:

Agent runtimes¶
A second way to run a button — hand its prompt off to an HTTP agent runtime (OpenClaw, Hermes Agent, any OpenAI-compatible endpoint) instead of the inline terminal. Full detail in Agent Runtimes; summary here:
| Setting | ||
|---|---|---|
| Default target | dropdown, Terminal plus every configured runtime name |
What a button without a target: line uses, and what an unknown target: name falls back to. |
| (toggle next to it) | on by default | The default for a button's open: line when it's missing or malformed. |
Per runtime: Name, Kind (OpenClaw hook / OpenAI-compatible chat), Base URL, Agent ID or model, Token required, Send session key as x-openclaw-session-key (chat kind only), Send session id as X-Hermes-Session-Id (chat kind only, default off), Token (masked, per-device secret storage), Thread-URL template (placeholders {agentId}, {sessionKey}, {sessionKeyPath}, {sessionId}) |
— | Add, edit or remove a runtime (no reordering — remove and re-add to change order). Two runtimes can't share a name. |
| Test connection | button, per runtime | Checks reachability and the token without sending a prompt. |
Where each setting lives in the source¶
For contributors: the whole tab is AgentConsoleSettingTab in src/settings.ts, using the classic imperative display() API rather than the declarative getSettingDefinitions() one — the model-mapping list (dynamically added/removed rows, a custom dropdown with a per-option copy button, live status dots) needs DOM control the declarative control types can't express. One trade-off: this tab doesn't appear in Obsidian's own in-app settings search.