update_active_file
Replace the whole content of the note currently open in the live Obsidian session (write_note in overwrite mode, aimed at the active note). Overwriting a non-empty note requires human confirmation bound to the resolved note: a confirmation raised while one note was active cannot be redeemed once another is. Same prev_hash compare-and-swap, snapshot, memoryDefense and provenance rules as write_note; get_active_file returns the content_hash to pass as prev_hash. Refuses a non-markdown active file.
| Domain | workspace |
| Scopes | write:notes |
| Access | write |
| Tags | writes, destructive, hitl, domain:workspace, plugin-bridge |
| Profile | full only |
Annotations
Section titled “Annotations”| Annotation | Value |
|---|---|
| Read-only | no |
| Destructive | yes |
| Idempotent | no |
| Accepts an idempotency key | yes |
Idempotent is the advisory MCP idempotentHint. Destructive is also yes for a tool that
asks for confirmation only on some calls.
Confirmation (human in the loop)
Section titled “Confirmation (human in the loop)”The handler asks for confirmation only when a call crosses a boundary (for example an overwrite, a folder-boundary crossing or a bulk-cost floor); other calls need none.
- The confirmation binds to the vault paths the call names, which are also checked against the folder ACL.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
vault |
string |
— | Vault id. May be omitted when only one vault is available. length 1–64; pattern ^[a-z0-9_-]+$ |
|
content |
string |
yes | — | — |
prev_hash |
string |
— | — | |
options |
object |
{} |
— | |
options.idempotency_key |
string |
— | length 1–128 | |
options.create_dirs |
boolean |
true |
— | |
elicit_token |
string |
— | pattern ^[a-f0-9]{32}$ |
|
provenance |
enum |
"authored" |
One of: "authored", "agent_synthesis" |
|
response_format |
enum |
— | concise returns only the high-signal fields; detailed (the shipped default) returns the full payload. Errors and safety warnings are never trimmed. When omitted, the server’s tools.defaults.responseFormat applies. One of: "concise", "detailed" |
|
verbosity |
enum |
— | Legacy alias for response_format: terse = concise, full = detailed. One of: "full", "terse" |
Output
Section titled “Output”| Field | Type | Always present | Description |
|---|---|---|---|
vault |
string |
yes | — |
path |
string |
yes | — |
created |
boolean |
— | |
mode_used |
enum |
One of: "create", "overwrite" |
|
content_hash |
string |
yes | — |
prev_hash |
string | null |
— | |
bytes_written |
number |
— | |
quality_warning |
object | null |
— | |
quality_warning.flags |
string[] |
with parent | — |
quality_warning.computed_at |
number |
with parent | — |
poison_assessment |
object | null |
— | |
poison_assessment.risk |
enum |
with parent | One of: "none", "suspect", "high" |
poison_assessment.signals |
string[] |
with parent | — |
redactions |
integer |
range ≥ 0 |
Related tools
Section titled “Related tools”Other tools in the workspace domain: add_bookmark, append_active_file, append_to_periodic_note, create_periodic_note, delete_active_file, find_or_create_periodic_note, get_active_file, get_periodic_note, list_bookmarks, list_periodic_notes, list_workspaces, open_workspace, patch_active_file, remove_bookmark, resolve_daily_note, save_workspace.
Back to the tool catalog.