Tools · Documents and apps
build_artifact
Can wait for approvalCreate a deliverable (report, page, code, diagram, data) with a stable id, then update or rewrite it; every change is saved as a new version.
When to use: Use this when the user needs a deliverable rather than only conversational text; keep one id per deliverable and update it.
Example
Run for real by scripts/tool-examples.py in a small demo project, with Haiku 5.5 where the tool calls a model. The output is exactly what the tool returned.
The call
{
"tool": "build_artifact",
"arguments": {
"id": "plans-table",
"action": "create",
"title": "Plans",
"type": "markdown",
"content": "| Plan | Seats | Price |\n|---|---|---|\n| Starter | 1–10 | $12 |\n| Team | 10+ | $29 |\n"
}
}Real output
Created artifact 'plans-table' v1 (markdown, 4 lines): <project>/.shipit_workspace/plans-table/v1.md
Parameters
| Name | Type | Description |
|---|---|---|
| id* | string | Stable short name, e.g. 'q3-report'. Reuse it to change the artifact. |
| action | string | create (default), update (replace exact text), or rewrite (replace all).createupdaterewrite |
| title | string | Human-readable title. |
| type | string | What the content is.markdownhtmlsvgmermaidjsoncsvtextcode |
| language | string | For type=code, e.g. 'python'. |
| content | string | Full content, for create and rewrite. |
| old_text | string | For update: exact text to replace, unique in the artifact. |
| new_text | string | For update: the replacement. |
* required
More in Documents and apps
Build documents, dashboards and small apps people can open.