Claude can now upload, list, read and delete images, video, PDFs and fonts attached to your published artifacts.
What's wrong with this entry?
The tool that publishes artifacts to claude.ai gained four actions for that artifact's file store: upload_asset sends a local file and returns a _blob/<id> URL the page can reference, list_assets enumerates them, read_asset saves one back to disk (default the working directory, named by its 32-character asset id) and delete_asset removes one permanently. Uploads cap at 20971520 bytes, or 2097152 for SVG. Set CLAUDE_CODE_ARTIFACT_ASSETS to turn the actions off; they are otherwise present.
- Accepted extensions are a fixed list:
.png,.jpg,.jpeg,.gif,.webp,.svg,.mp4,.webm,.pdf,.woff2,.woff,.ttf,.otf. Anything else is refused, as are network and UNC paths. - The actions also need the account to have the "assets" capability; without it the call fails as unavailable. The extra schema fields (
asset_id,out_dir,afterfor paging) appear only when that capability is on. - Permissions are tracked per artifact and separately from artifact database access, with their own consent maps for upload and read, plus separate human-consent variants. Deletes are irreversible and every delete asks separately; reading your own artifact's assets needs no extra approval while another person's asks once per artifact; uploads either ask each time or are approved for the session.
- Reading the source file is still checked against your Read rules ("reading file_path is blocked by a Read permission rule — the upload was not attempted"), and saving an asset is checked against Edit rules. Downloads land in a
.partialfile and are moved into place. - Results report id, content type, sha256 and a files/bytes quota. Transcript lines read "uploaded … as …", "listed N assets", "saved …", "asset deleted", "no such asset" and "no assets listed". New telemetry:
artifact_asset_upload,artifact_asset_list,artifact_asset_read,artifact_asset_delete.
read_asset only: directory to save the file into (default: the working directory). The file is named by the asset id plus the extension for its type., "no assets listed", artifactAssetUploadHumanConsentSlugs, artifact_asset_upload, 'upload_asset' adds one local media, PDF, or font file to an existing artifact, asset_upload_read_denied, For 'upload_asset', the local image, video, PDF, or font file to upload., upload_asset", "list_assets", "read_asset", "delete_asset
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
Related
Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.
-
v2.1.246
upload_asset parameter now lists text formats
Both mention asset