move_note
Move or rename a note
Writes: one commit per change Can remove or replace Idempotent
Description
What the model reads, word for word:
Moves a note to a new path, or renames it, updating links to it.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
from |
string |
yes | The note to move, as a path relative to the vault root, for example “projects/apollo/plan.md”. Or a whole folder, without a trailing slash, for example “projects/apollo”. |
to |
string |
yes | Where it should be afterwards, as a path relative to the vault root: ending in .md for a note, a folder path for a folder. Missing folders are created. The target must not exist yet — except for a rename that only changes upper and lower case. |
summary |
string |
yes | Git history. First line: what changed, at most 60 characters, no client or project (the server adds it), e.g. “Moved the plan into its own folder”. More lines, optional: why. |
type |
string |
Change the note’s type, as its type field in the frontmatter. The note must meet the new type’s schema, and the target must match a place of the new type. | |
repo |
"handbook" | "projects" |
yes | The repository this call works in. One of the repositories the person can read; the values above are Acme’s. |
Result
As structuredContent and, the same, as a text block.
| Field | Type | Description |
|---|---|---|
from |
string |
Where the note or folder was. |
to |
string |
Where it is now. |
files |
number |
|
links |
number |
How many references were changed, across all files. |
updated |
object[] |
|
updated[].path |
string |
|
updated[].links |
number |
|
updated[].repo |
string |
|
commit |
string |
Hash of the commit that holds the move and every changed reference, as Git recorded it. |
outsideReferences |
number |
References to the moved note in files outside the open folders (folders in .vault/settings.jsonc), which this move could not update. 0 without folders configured, or when there are none; their paths are never named, since a path outside the open folders reads as missing. |
note |
string |
|
repo |
string |
As listed
The entry in tools/list, captured from the service for Acme’s two repositories.
{
"name": "move_note",
"title": "Move or rename a note",
"description": "Moves a note to a new path, or renames it, updating links to it.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"from": {
"type": "string",
"description": "The note to move, as a path relative to the vault root, for example \"projects/apollo/plan.md\". Or a whole folder, without a trailing slash, for example \"projects/apollo\"."
},
"to": {
"type": "string",
"description": "Where it should be afterwards, as a path relative to the vault root: ending in .md for a note, a folder path for a folder. Missing folders are created. The target must not exist yet — except for a rename that only changes upper and lower case."
},
"summary": {
"type": "string",
"minLength": 1,
"description": "Git history. First line: what changed, at most 60 characters, no client or project (the server adds it), e.g. \"Moved the plan into its own folder\". More lines, optional: why."
},
"type": {
"description": "Change the note's type, as its type field in the frontmatter. The note must meet the new type's schema, and the target must match a place of the new type.",
"type": "string"
},
"repo": {
"type": "string",
"description": "The repository this call works in.",
"anyOf": [
{
"const": "handbook",
"description": "How Acme works: onboarding, processes and policies."
},
{
"const": "projects",
"description": "One folder per project: plans, decisions and meeting notes."
}
]
}
},
"required": [
"from",
"to",
"summary",
"repo"
]
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": true,
"idempotentHint": true,
"openWorldHint": false
},
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "Where the note or folder was."
},
"to": {
"type": "string",
"description": "Where it is now."
},
"files": {
"type": "number"
},
"links": {
"type": "number",
"description": "How many references were changed, across all files."
},
"updated": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"links": {
"type": "number"
},
"repo": {
"type": "string"
}
},
"required": [
"path",
"links"
],
"additionalProperties": false
}
},
"commit": {
"type": "string",
"description": "Hash of the commit that holds the move and every changed reference, as Git recorded it."
},
"outsideReferences": {
"type": "number",
"description": "References to the moved note in files outside the open folders (`folders` in .vault/settings.jsonc), which this move could not update. 0 without folders configured, or when there are none; their paths are never named, since a path outside the open folders reads as missing."
},
"note": {
"type": "string"
},
"repo": {
"type": "string"
}
},
"required": [
"from",
"to",
"links",
"updated",
"commit",
"outsideReferences"
],
"additionalProperties": false
}
}