Create Upload Url
create_upload_urlPublish a file that is already on disk without pasting it into a tool call. Returns a one-time upload_url and a ready curl command: run the command and the file is published, with the answer (slug, share_url) printed by curl. No token is needed for the upload. Takes the same fields as publish_artifact, minus the contents; passing an existing slug publishes a new version at the same URL. Prefer this over publish_artifact for any file you wrote to disk, and always for large or binary files. Call list_projects first to pick its project; project_note warns when the upload would start a new one.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Override the detected kind, e.g. "Deck" or "App" for an HTML file. | |
| path | No | Where the file is on disk, used to fill in the curl command. Defaults to `filename`. | |
| 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 once the file arrives. 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. | |
| 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". The extension decides how it renders. | |
| project_description | No | One sentence on what belongs in the project, used when this starts a new one (or it has no description yet). |