Introduction

In the context of DeepSeek Harness (DSH) plugins, agents frequently need to handle URLs: reading the body content of public web pages, organizing page links, parsing RSS 2.0 / Atom feeds, or checking HTTP status codes, response headers, and redirect chains. dsh-webfetch provides a set of read-only tools to convert http/https URLs into Markdown or plain text content suitable for subsequent processing, while preserving necessary links and response information.

What is it

dsh-webfetch is the web reading plugin for DeepSeek Harness. It is used to scrape web pages and extract Markdown or plain text body content, collect page links, parse RSS 2.0 / Atom feeds, and check HTTP headers and redirect chains without downloading the body content.

The plugin has zero runtime dependencies, is licensed under MIT, and requires Node >= 20. The repository address is TYEclipse/dsh-webfetch.

Core Features

web_fetch

web_fetch is used to fetch http/https pages and extract Markdown or plain text body content.

It only reads parsable response types, covering text/html and text/plain. There is a length limit on the extracted body content; excessively long content will be restricted in the returned result.

web_links is used to collect links on the page and parse the links into absolute URLs.

It deduplicates and limits the number of returned items, making it suitable for viewing which external addresses a page points to.

web_feed

web_feed is used to parse RSS 2.0 / Atom feeds and return structured entries.

It accepts RSS/Atom/XML types, making it suitable for processing blogs, news feeds, or other subscription streams.

web_headers

web_headers is used to probe HTTP status codes, response headers, and redirect chains.

It does not download the page body, making it suitable for checking if a target address is available, if a redirect occurs, or viewing necessary response header information before getting content.

Proxy and Security Limits

dsh-webfetch has built-in HTTP/HTTPS proxy support.

Its access scope is limited to http/https, and it rejects file:, ftp:, javascript:, and similar addresses. The plugin does not send credentials: it rejects URLs containing credentials and does not append cookies or authorization headers.

At the same time, the plugin has limits on request timeout, redirect jumps, response size, and extracted text length.

Installation and Activation

In the DSH plugin system, the plugin can be installed by profile:

dsh plugin --profile web add github:TYEclipse/dsh-webfetch

After installation, web_fetch, web_links, web_feed, and web_headers can be used as DSH agent tools.

Typical Usage

The following examples are used to explain the functional boundaries of each tool.

Read a public repository page:

agent: web_fetch("https://github.com/deepseek-ai/deepseek-harness")

web_fetch will read the readable content of the target page and return the body suitable for summaries, Q&A, or further processing.

Read a feed and limit the number of items:

agent: web_feed("https://blog.example.com/feed.xml", maxItems: 5)

web_feed will parse the RSS 2.0 / Atom feed and return a limited number of structured entries.

Check the status and redirect of a download link:

agent: web_headers("https://example.com/downloads/latest")

web_headers will check HTTP status, response headers, and the redirect chain, rather than downloading the full body.

Suitable Scenarios and Notes

dsh-webfetch is suitable for the following scenarios:

  1. Reading public http/https web pages and organizing the body content into Markdown or plain text.
  2. Collecting page links, parsing them into absolute URLs, and deduplicating them.
  3. Parsing RSS 2.0 / Atom feeds.
  4. Checking HTTP status codes, response headers, and redirect chains of URLs.

Usage notes:

  1. The plugin runs with the permissions of the current dsh process; the source code and MIT license should be checked before installation.
  2. It only supports http/https and is not suitable for file:, ftp:, javascript:, and similar addresses.
  3. It does not send credentials and does not append cookies or authorization headers, so it is not suitable for scraping pages that depend on a logged-in state.
  4. web_fetch and web_links only parse text/html and text/plain; web_feed accepts RSS/Atom/XML types.
  5. Request timeout, redirect jumps, response size, and extracted text length all have upper limits.

Conclusion

The value of dsh-webfetch lies in turning “reading a URL” into a stable capability within the DSH plugin: read-only, low dependency, and clear boundaries. It is suitable for web body extraction, page link organization, RSS/Atom feed parsing, and HTTP status and redirect checking.

GitHub: https://github.com/TYEclipse/dsh-webfetch

DSH Community Directory: Can be searched by plugin name dsh-webfetch; the directory page is a separate site and has no official affiliation with DeepSeek / Huanfang.