WebFetch
A Claude Code tool, read out of the shipped bundle. It has been in the build since v2.1.138, including the newest one read.
Live-edit would be blocked on workshop pages so changes go through the validating publish path.
Not Anthropic's. This is the line from the earliest changelog entry here that named it, v2.1.219.
In the changelogs
119Releases whose published page names WebFetch.
-
v2.1.307
WebFetch now says when a page came from an older stored copy or could not be fetched
WebFetch results can now note that a page came from a stored copy with its retrieval date, and a failure at the site returns a 'Not Fetched' answer
found in this entry's text
-
v2.1.307
Web fetch results record when the page was retrieved
WebFetch results now include the time the page was retrieved, and failures at the target site through the remote proxy are reported separately
found in this entry's text
-
v2.1.305
The note on cut-off web pages is built differently
The note Claude Code adds when a fetched web page is cut short is now built from different values, and one prompt detail is no longer recorded
found in this entry's text
-
v2.1.304
Artifact tools from an MCP server can stand in for the built-in ones
When an MCP server supplies artifact tools, Claude Code can hide its built-in artifact tools and apply your permission rules to the MCP ones instead
found in this entry's text
-
v2.1.300
WebFetch won't quickly retry a page that just failed
If a URL failed earlier in the session, WebFetch skips a quick second attempt and tells the model to say the page could not be read
found in this entry's text
-
v2.1.300
Web fetches in remote sessions now remember which addresses failed
When web fetches go through the remote-session proxy, Claude Code now tidies the address first and records which addresses failed and why
found in this entry's text
-
v2.1.299
WebFetch proxy routing is now switched on by an environment variable
Routing WebFetch through the CCR proxy now depends on
CLAUDE_CODE_WEBFETCH_USE_CCR_PROXYinstead of being worked out from session statefound in this entry's text
-
v2.1.299
Subagents told not to retry when a web fetch is not approved
When a subagent's web page fetch is not approved, it is now told not to retry and to report the blocked address
found in this entry's text, named in this entry
-
v2.1.299
New guidance tells Claude which web addresses to fetch
New instruction text says
WebFetchis for links you gave or a tool returned, and that recalled or edited links may need approvalfound in this entry's text, named in this entry
-
v2.1.295
Permission requests sent to SDK hosts gain a title and can clear themselves
Permission requests sent to programs running Claude Code now include a title, and a pending one is dropped if a recheck allows the call
found in this entry's text
-
v2.1.295
Web-fetch agent is told to read the page rather than answer from memory
The built-in web-fetch agent's guidance now says to read the page instead of answering from memory, and a follow-up hint is sometimes left out
found in this entry's text
-
v2.1.293
Turning off Bash in Desktop managed settings now also turns off PowerShell
In Desktop managed configuration, disabling the Bash tool now also disables PowerShell, and auto mode has a new default rule
found in this entry's text
-
v2.1.292
WebFetch page reading can be held at a usage limit, behind an off switch
The check that makes Claude Code wait out a usage limit now also covers WebFetch reading a fetched page, under a remote switch that is off by default
found in this entry's text
-
v2.1.292
WebFetch approval prompts remember answers and can show one at a time
WebFetch URL approval prompts now remember approved addresses and can retry without asking, and a switch can make them appear one at a time
found in this entry's text
-
v2.1.292
Web fetch permission prompts can be asked one at a time
Behind a server switch, WebFetch asks about blocked URLs one prompt at a time and reuses approvals for requests still waiting
found in this entry's text
-
v2.1.290
WebFetch refuses hook approvals that attach arguments it can't check
If a PermissionRequest hook approves a web fetch but attaches arguments WebFetch can't check, Claude Code now denies the fetch
found in this entry's text
-
v2.1.290
WebFetch can continue reading a long page from where it stopped
WebFetch now accepts an optional offset, a character position, so Claude can keep reading a page too long for one call
found in this entry's text
-
v2.1.290
WebFetch can continue reading a long page from where it was cut off
WebFetch can now return a page starting from a given character, so Claude can read past the part that was cut off
found in this entry's text
-
v2.1.290
WebFetch calls show an offset in detailed view
When showing a WebFetch call in detail, Claude Code now includes the offset value if one was given
found in this entry's text
-
v2.1.290
Claude stops trying Chrome tools when the browser connection has failed
When Claude in Chrome is on but its connection failed, Claude is told to skip the browser tools and use WebFetch and WebSearch
found in this entry's text
-
v2.1.287
WebFetch's redirect and error handling was tidied up
The part of WebFetch that handles redirects and HTTP errors now refers to its values consistently
found in this entry's text
-
v2.1.287
Web fetches and searches can now report that they stepped aside for your message
In stream-json output, a WebFetch or WebSearch result can now carry detachedToolCall: true, meaning it is still running
found in this entry's text
-
v2.1.287
Tool calls moved to the background can no longer stop to ask you questions
A tool call moved to the background can no longer ask you a question later, and headless sessions can move tool calls to the background
found in this entry's text
-
v2.1.286
WebFetch approval prompts report more about waiting and subagents
Usage reports from WebFetch approval prompts now say whether a subagent asked, how many prompts were open and how long it waited
found in this entry's text
-
v2.1.286
WebFetch permission prompts now record how long they waited
Claude Code now records how long a WebFetch permission prompt waited for an answer, whether approved, denied or timed out
found in this entry's text
-
v2.1.286
Permission prompts for fetching other people's artifacts are decided differently
When WebFetch reads an artifact made by someone else, Claude Code now weighs more settings in deciding which permission prompt to show
found in this entry's text
-
v2.1.285
Turn off web page fetching with CLAUDE_CODE_DISABLE_WEB_FETCH
Setting the environment variable CLAUDE_CODE_DISABLE_WEB_FETCH turns off WebFetch, the tool Claude uses to download web pages
found in this entry's text
-
v2.1.285
Strict sandbox network allowlist now ignores domains allowed by a project
Under
sandbox.network.strictAllowlistor an admin mandate, websites allowed in project or local settings are no longer addedfound in this entry's text
-
v2.1.285
Web fetches of artifact links now follow your file-read permission rules
When Claude fetches an artifact link, your permission rules for reading artifact files now apply, and a rate-limited check gets its own error code
found in this entry's text
-
v2.1.285
Claude Code records why a web page fetch was denied or skipped
Claude Code now has named records for each reason a WebFetch source check can be denied, time out or be skipped
found in this entry's text
-
v2.1.285
Web fetching may follow a few more links and stops sooner on failures
The helper behind WebFetch may now follow about five same-site links, must not guess URLs, and retries a failed fetch at most once
found in this entry's text
-
v2.1.285
Claude Code help skill can only fetch pages from Claude's docs sites without asking
The built-in skill that answers questions about Claude Code now has web fetching approved only for code.claude.com and platform.claude.com
found in this entry's text
-
v2.1.285
WebFetch says when its domain check is rate-limited
When too many domain checks come from your network, WebFetch now says it is temporarily rate-limited instead of showing a general network error
found in this entry's text
-
v2.1.285
Unanswered WebFetch permission questions can be withdrawn in remote sessions
In remote sessions, an unanswered WebFetch permission question can now be withdrawn, and one kind of denial now fails without asking
found in this entry's text
-
v2.1.285
Reworded refusal when your organization blocks fetching arbitrary web addresses
The WebFetch refusal for an organization policy that blocks arbitrary web addresses now comes from a shared template starting "Arbitrary-URL egress"
found in this entry's text
-
v2.1.285
Sandbox status shown to host apps now describes the rules actually enforced
The sandbox status that Claude Code reports to host apps now describes the enforced rules and gains a field for allowing all Unix sockets
found in this entry's text
-
v2.1.284
In Projects sessions, web fetch and search can't be allowed permanently
In a Projects session, permission to fetch web pages or search the web can only be granted for that session, and plugins cannot grant it
found in this entry's text
-
v2.1.284
Always allow for web fetches and searches lasts only for the session in some cases
In certain sessions, choosing to always allow WebFetch or WebSearch now lasts only for that session and is not saved to your settings
found in this entry's text
-
v2.1.284
Hooks cannot grant web fetching or searching in Projects sessions
In Projects sessions, a
PermissionRequesthook can no longer approve WebFetch or WebSearch or loosen their rulesfound in this entry's text
-
v2.1.282
WebFetch can skip a repeated fetch and point back to the earlier result
In some hosted sessions, WebFetch now returns an "Already fetched" note instead of fetching the same page with the same prompt again
found in this entry's text
-
v2.1.282
Artifact read denials now say when ownership couldn't be confirmed
When no one can answer a permission prompt, the refusal to read an artifact now separates unconfirmed ownership from someone else's artifact
found in this entry's text
-
v2.1.282
WebFetch and artifact-read permission rules can now apply to each other
WebFetch permission checks can now match rules for reading artifacts, and artifact reads can be checked against WebFetch rules
found in this entry's text
-
v2.1.282
Reading an artifact after a new-comments notification now needs explicit approval
Fetching an artifact because of a new-comments notification now needs explicit approval, and is refused where no one can answer the prompt
found in this entry's text
-
v2.1.282
WebFetch can skip a repeat fetch and point back to the earlier result
With
CLAUDE_CODE_PROJECTS_SESSIONset, WebFetch can skip fetching the same page with the same request again and refer Claude to the earlier resultfound in this entry's text
-
v2.1.281
WebFetch dedup shadow telemetry
WebFetch now measures how often the same web page is fetched again, without changing what it returns
found in this entry's text
-
v2.1.277
Artifact tool's 'read' action documents supported URL formats and tool preference
Artifact tool's 'read' action now documents which claude.ai link formats it supports
found in this entry's text
-
v2.1.277
WebFetch tool description reworks its claude.ai-artifact exception into a general mode parameter
WebFetch's internal prompt-building switched from a simple on/off flag to a named mode string
found in this entry's text
-
v2.1.277
claude.ai artifact links: explicit tool-routing guidance added
Claude is now told to read claude.ai artifact links with the Artifact tool or WebFetch, never curl or a headless browser
found in this entry's text
-
v2.1.277
New per-tool "backgrounding" policy field, most tools opt out
Tools now declare a backgrounding policy; most tools opt out of running in the background
found in this entry's text
-
v2.1.277
New tool
backgroundingfield controls detach/self/never execution modeTools gain a
backgroundingsetting controlling whether they can keep running in the backgroundfound in this entry's text
-
v2.1.277
Per-tool 'backgrounding' classification rolled out across nearly all built-in tools
Nearly every built-in tool now carries a 'backgrounding' classification of never, self, or detach
found in this entry's text
-
v2.1.274
WebFetch of artifacts gains a public-read consent path with new gates
WebFetch of artifacts gets a dedicated consent flow for reading artifacts owned by another organization
found in this entry's text
-
v2.1.271
Multi-file WebFetch/asset reads get bulk save messaging
Multi-file reads now show bulk "saved N of M files" messaging
found in this entry's text
-
v2.1.269
WebFetch permission check extracted into a reusable checkPermissions function
WebFetch's permission logic is now a reusable function that can re-check permissions after a redirect
found in this entry's text
-
v2.1.269
WebFetch/artifact-read tool also moves to
create()instance pattern with new renderToolUseMessage and prompt hookThe WebFetch tool moves to the newer
create()internal structure and gains a verbose-mode message and prompt hookfound in this entry's text
-
v2.1.268
Artifact read permission check for WebFetch now runs a deny check both before and after network egress probing
WebFetch's permission check for reading claude.ai artifacts now re-checks deny rules after probing network access
found in this entry's text
-
v2.1.268
WebFetch requests now enforce a deadline/timeout
WebFetch requests now enforce a timeout and fail with a clear deadline error if exceeded
found in this entry's text
-
v2.1.268
WebFetch now explicitly blocks dotless/localhost hostnames with a dedicated error
WebFetch now gives a specific error for localhost and other dotless hostnames, pointing to curl instead
found in this entry's text
-
v2.1.268
New telemetry event tengu_web_fetch_transport records outcome and duration of the raw HTTP fetch
A new telemetry event records the outcome and duration of each raw WebFetch network request
found in this entry's text
-
v2.1.265
WebFetch's claude.ai artifact exception widened to cover shorter artifact URLs
WebFetch's exception for claude.ai artifact links now also matches the shorter claude.ai/artifact/{id} URL form
found in this entry's text
-
v2.1.260
New skipWebFetchPreflight setting
A new setting skips WebFetch's safety check against api.anthropic.com for firewalled deployments.
found in this entry's text
-
v2.1.260
WebFetch artifact tool can now resolve file paths inside an artifact URL
WebFetch can now resolve a file path inside an artifact URL and save it locally.
found in this entry's text
-
v2.1.260
WebFetch of claude.ai artifacts: new consent flow for reading others' artifacts while network access is off
Reading someone else's artifact now clearly states whether network access is on or off first.
found in this entry's text
-
v2.1.259
claude-api built-in agent tool access tightened
The built-in claude-api agent lost Read, Grep and Glob and now only has WebFetch scoped to one docs domain.
found in this entry's text, named in this entry
-
v2.1.257
WebFetch of Artifacts now asks confirmation before reading content owned by others
WebFetch now asks before pulling in an artifact owned by someone else, and denies artifacts from another org.
found in this entry's text, named in this entry
-
v2.1.257
New confirmation gate for fetching other users' shared artifacts via WebFetch
WebFetch checks an artifact's share entry and forces an ask, or a denial for another org, before its content enters the conversation.
found in this entry's text, named in this entry
-
v2.1.251
Subagents can start without a prompt when every URL in them is already allowed
Subagents launch without a prompt when every URL in them is already allowed.
found in this entry's text
-
v2.1.251
Auto mode can skip the subagent-spawn prompt for URL-only Task prompts
In auto mode, subagents whose prompt is only allowed URLs skip the spawn permission ask.
found in this entry's text
-
v2.1.248
New
--restrictedsession modeNew --restricted flag starts a locked-down session with no shell tools and no settings files.
found in this entry's text
-
v2.1.239
Reading someone else's artifact asks you once, then remembers for the conversation
Reading someone else's published page now asks you once, then remembers for the rest of the conversation.
found in this entry's text
-
v2.1.239
read_decisionsartifact action folded into page-data readsThe separate read-decisions artifact action is gone, and change notices now mention someone saving from the page.
found in this entry's text
-
v2.1.239
Artifact tool gains a
readaction, with multi-file browsing and delete built but gated offClaude can now read back a published artifact's contents; browsing, multi-file publishing and deletion are built but off.
found in this entry's text
-
v2.1.239
Artifact failure messages point at the tool's own read action instead of WebFetch
Failed artifact publishes now tell Claude to re-read via the artifact tool, not WebFetch.
found in this entry's text
-
v2.1.233
Notification hook fires when a permission prompt is left unanswered
Under SDK or stream-json hosts, a pending permission request triggers your Notification hook after six seconds.
found in this entry's text
-
v2.1.233
WebFetch cache lifetime is now configurable
You can set how long WebFetch keeps pages cached, in milliseconds.
found in this entry's text
-
v2.1.232
WebFetch validates redirect targets before showing them
Redirected fetches now tell you the page moved and was not fetched for you automatically.
found in this entry's text
-
v2.1.232
Forked skills and custom agents get an explicitly computed tool list
Forked agents get their tool list computed for them, which decides whether they can fetch web pages.
found in this entry's text
-
v2.1.232
WebFetch reports which local files a fetch actually wrote
Web fetches of non-text content now list exactly which local files they wrote to disk.
found in this entry's text
-
v2.1.232
Web-fetch quoting rules moved to one shared constant
Quoting rules for fetched pages now live in one shared block used by both fetch paths.
found in this entry's text
-
v2.1.232
Blocking web fetches with a PreToolUse hook now explains the consequence
Blocking a web fetch via a hook now tells Claude that's the only fetch route, so it stops retrying.
found in this entry's text
-
v2.1.232
Crash recovery gives different advice for agents launched by WebFetch
Crash recovery now separates agents that WebFetch started and advises you differently on each.
found in this entry's text
-
v2.1.232
WebFetch subagents keep a list of the files they saved
Fetch tasks list the files they saved instead of pointing at a made-up output file.
found in this entry's text
-
v2.1.232
Files saved by WebFetch are labelled as untrusted web content
Files WebFetch saves are now labelled untrusted web content with their exact paths listed.
found in this entry's text
-
v2.1.232
WebFetch refuses redirects that leave a trusted docs path
WebFetch now blocks redirects that jump off the trusted docs path onto other pages.
found in this entry's text
-
v2.1.232
Truncated agent reports no longer point at a file that is not there
A truncated subagent report now says the earlier part is unavailable instead of naming a missing file.
found in this entry's text
-
v2.1.232
WebFetch no longer auto-allows all of go.dev and pkg.go.dev
WebFetch now prompts for pkg.go.dev and go.dev URLs outside the doc and ref paths.
found in this entry's text
-
v2.1.232
A built-in "web-fetch" subagent that takes over page fetching, off by default
A built-in web-fetch agent can take over page fetching and summarise pages, off by default.
found in this entry's text
-
v2.1.232
Web fetching can be routed through a built-in agent
Fetches can be handed to a dedicated agent, but the server flag defaults off.
found in this entry's text
-
v2.1.232
WebFetch can save binary responses to disk
Fetches can save PDFs and other binaries to disk when the fetch agent is on.
found in this entry's text
-
v2.1.229
Caches moved from module globals onto the session
Web fetch and user context caches are now per session, so forked sessions no longer share them.
found in this entry's text
-
v2.1.229
Per-session tool state stops caches leaking between sessions
Caches now live per session, so parallel sessions in one process stop contaminating each other.
found in this entry's text
-
v2.1.224
Artifact publish errors say whether retrying can help
Artifact publish errors now say whether retrying will help, based on the HTTP status.
found in this entry's text
-
v2.1.219
live-edit refused on workshop pages
Live-edit would be blocked on workshop pages so changes go through the validating publish path.
found in this entry's text
-
v2.1.219
New sandbox setting: network.strictAllowlist
Set strictAllowlist to have the sandbox flat-out deny hosts outside your allowed domains instead of prompting.
found in this entry's text
-
v2.1.219
Smaller adjustments
Small polish: credit labels, an extra help link, bigger artifact fetch limit, safer MCP environment handling.
found in this entry's text
-
v2.1.218
Artifact Tool:
read_page_dataActionfound in this entry's text
-
v2.1.218
Workshop Skill: Secure Decision Reading (Rebuilt)
found in this entry's text
-
v2.1.207
Walnut Spire (
plugin evalGeneral Availability) [In Development]found in this entry's text
-
v2.1.203
claude.com/docs Added to WebFetch Pre-Approved Domains
found in this entry's text
-
v2.1.179
Artifact Share Status Display
found in this entry's text
-
v2.1.176
WebFetch: Artifact URLs Are Now Fetchable
found in this entry's text
-
v2.1.166
WebFetch proxy for first-party users
found in this entry's text
- v2.1.132
-
v2.1.132
WebFetch HTTP Error Results
found in this entry's text
-
v2.1.120
Lean Prompt Mode (Condensed Tool Descriptions)
found in this entry's text
- v2.1.70
-
v2.1.61
Built-in tools no longer deferred by default
found in this entry's text
-
v2.1.14
WebFetch GitHub URL Guidance
found in this entry's text
-
v2.0.60
WebFetch Documentation Mode
found in this entry's text
-
v1.0.120
Tool Output Schemas
found in this entry's text
-
v1.0.77
Permission Reasoning Display
found in this entry's text
-
v1.0.46
Performance Improvements
found in this entry's text
-
v0.2.96
Domain Whitelist for WebFetch
found in this entry's text
-
v0.2.54
WebFetch Improvements
found in this entry's text
-
v0.2.51
Improvements
found in this entry's text
-
v0.2.43
Domain Fetch Verification
found in this entry's text
-
v0.2.42
WebFetch Security Enhancement
found in this entry's text
-
v0.2.40
Security Enhancements
found in this entry's text
-
v0.2.36
Bug Fixes
found in this entry's text
First cited
8The earliest release whose published evidence quoted WebFetch was v2.1.224, 7 Aug 2026. That is the oldest release this project wrote about it, so it is a floor on the name's age and not the release that introduced it. It is not a presence reading: which builds carried the name is the table below.
2 further spans in the ledger name it. The list above is the earliest first and stops at 6.
Presence across releases
2Build by build
265One row per release since the first build this name was read out of. Absent means the build was read and the name was not in it, never mined means no bundle for that release was ever archived, and a declared type or a default is only ever what that release's own bundle stated.
Read out of the published npm bundle release by release, and out of Anthropic's own documentation as this site captured it. Nothing on this page is a description anybody here wrote about what the tool does. All tools.