Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.234 Home All releases olderv2.1.233 v2.1.235newer
Claude Code v2.1.234

Artifacts can now carry uploaded images, video, PDFs and fonts

Use it now
Useful4 Signal4
Artifacts Notable not in their notes

Claude can now upload, list, read and delete images, video, PDFs and fonts attached to your published artifacts.

CLAUDE_CODE_ARTIFACT_ASSETS
What

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.

Details
  • 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, after for 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 .partial file 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.
Evidence

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.

See this entry in the whole of v2.1.234 →