Publish Artifact
publish_artifactPublish a file into the user's myartefacts dump by pasting its contents. For a file already on disk, use create_upload_url instead: it avoids sending the whole file through this call. Pass text files as content, binary files (images, PDFs) as content_base64. Passing an existing slug publishes a new version of that artifact at the same URL. Set share to get a public share_url you can send to people; if the agent may not share yet, share_note says why. File it into a project: call list_projects first to pick one; project_note in the answer flags a project this just started.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Override the detected kind, e.g. "Deck" or "App" for an HTML file. | |
| slug | No | Stable id for the artifact. Reuse it to publish a new version at the same URL. Omit to create a new artifact. | |
| share | No | Turn on the public share link, for an artifact you are about to send to someone. Anyone with the link can view it. | |
| title | No | Short human title. Defaults to the HTML <title> or first Markdown heading. | |
| prompt | No | The request that produced this artifact. | |
| content | No | The file contents, for text files (HTML, Markdown, SVG, CSV, JSON). | |
| project | No | Project path to file it under, e.g. "RentOS" or "RentOS/Backlinks" (up to 3 levels). Call list_projects first and use the most specific existing project that fits; start a subproject of an existing one before a new top-level project. Matching ignores case and punctuation. | |
| summary | No | One or two sentences on what this is. | |
| filename | Yes | File name with extension, e.g. "pricing-page.html" or "notes.md". The extension decides how it renders. | |
| content_base64 | No | Base64-encoded file contents, for binary files (PNG, JPEG, PDF). | |
| project_description | No | One sentence on what belongs in the project, used when this starts a new one (or it has no description yet). |