Views run in sandboxed iframes where direct downloads (Documentation Index
Fetch the complete documentation index at: https://docs.skybridge.tech/llms.txt
Use this file to discover all available pages before exploring further.
<a download>, URL.createObjectURL) are blocked. The useDownload hook returns a download function that asks the host to save one or more files to the user’s filesystem. The host shows a confirmation dialog before initiating the download.
This hook is not available on the Apps SDK. Calling
download from ChatGPT will return { isError: true }Basic usage
Returns
DownloadParams
contents: (EmbeddedResource | ResourceLink)[]: one or more resources to download.
DownloadResult
isError?: boolean=trueif the user cancelled or the host denied. Transport errors (timeout, lost connection) throw an exception.
Resource shapes
Inline text — EmbeddedResource
For content generated in the view (CSV, JSON, markdown):
Inline binary — EmbeddedResource
For binary data, pass base64 in blob:
Resource link — ResourceLink
When the file already lives on a server, let the host fetch it directly:
resource_link is not supported by Claude.Notes
- Must be user-initiated (button click, menu action). Hosts will reject calls fired from effects on mount.
- The
uriis a filename hint: the host derives the suggested save name from the last path segment. - For large binary content (more than a few hundred KB), prefer
resource_linkover inlining base64.