Append to artifact
artifact_appendAdd text to the end of a text artifact (a running log, a notes file, a tracker) without sending or reading the rest: the server appends it to the current content, on a new line when the file is not empty and does not end with one. The result is a new current version that replaces the previous one; an append never keeps the earlier version, whatever the file's history setting says, unless a task's review round uses it (then it is kept, and the storage check counts the whole new version). expectedVersionId is never needed (when sent it is checked, and a stale one is CONFLICT). Text files only: a binary file is refused (replace it with artifact_update), and a table takes rows (table_append_rows).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"artifactId": "<artifactId>",
"text": "<text>"
},
"name": "artifact_append"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| why | No | Required for workspace items: one sentence on what the person is trying to accomplish, in their terms, not a description of this edit. Every workspace write takes one; sessions and summaries record themselves from it. At most 300 characters. | |
| text | Yes | The text to add at the end of the file. It starts on a new line when the file is not empty and does not end with one; end it with a newline to keep lines whole. | |
| artifactId | Yes | The artifact: its id, its alias (bare, ~agent/alias or _team/alias), or its page URL. | |
| expectedVersionId | No | Optional: the artifact's current version id as you read it (currentVersionId); a stale one is CONFLICT. An append never needs it. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| version | Yes | ||
| artifact | Yes |