Skills markdown-browser
Wrapper skill for OpenClaw web_fetch results. Use when you need MECE post-processing on fetched pages: policy decision from Content-Signal, privacy redaction, optional markdown normalization fallback, and stable output schema without re-implementing network fetch.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/2233admin/markdown-browser" ~/.claude/skills/openclaw-skills-markdown-browser && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/2233admin/markdown-browser" ~/.openclaw/skills/openclaw-skills-markdown-browser && rm -rf "$T"
manifest:
skills/2233admin/markdown-browser/SKILL.mdsource content
Markdown Browser Skills
This skill is an orchestration layer, not a replacement fetcher. It always keeps official
web_fetch as the fetch source of truth.
MECE Architecture
- Fetch layer (official, exclusive)
- Use OpenClaw
to retrieve the page.web_fetch - Do not call direct HTTP fetch inside this skill for normal operation.
- Policy layer (these skills)
- Parse
and computeContent-Signal
.policy_action - Current action focuses on
semantics:ai-input
,allow_input
,block_input
.needs_review
- Privacy layer (these skills)
- Redact path/fragment/query values in output URL fields.
- Keep URL shape useful for debugging without leaking sensitive values.
- Normalization layer (these skills)
- If
, keep content as-is.contentType=text/markdown - If
, convert withcontentType=text/html
as fallback enhancement.turndown - For other content types, pass through text.
Execution Order
- Call official
.web_fetch - Pass the result JSON into this wrapper.
- Optionally pass
andContent-Signal
header values if available.x-markdown-tokens - Use the returned normalized object for downstream agent logic.
Wrapper Tool
process_web_fetch_result({ web_fetch_result, content_signal_header, markdown_tokens_header })
Input:
(required): JSON payload returned by OpenClawweb_fetch_result
.web_fetch
(optional): rawcontent_signal_header
header string.Content-Signal
(optional): rawmarkdown_tokens_header
header value.x-markdown-tokens
Output:
content
(format
|markdown
|html-fallback
)text
(token_estimate
)number | nullcontent_signalpolicy_action
(redacted)source_urlstatus_codefallback_used
CLI Usage
# Install runtime dependency once inside the skill directory npm install --omit=dev # 1) Obtain a web_fetch payload first (from OpenClaw runtime) # 2) Save it as /tmp/web_fetch.json # 3) Run wrapper post-processing node browser.js \ --input /tmp/web_fetch.json \ --content-signal "ai-input=yes, search=yes, ai-train=no" \ --markdown-tokens "1820"