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.
New in this build: CLAUDE_CODE_ARTIFACT_ASSETS