Markdown Browser
by @2233admin
Wrapper skill for OpenClaw web_fetch results. Use when you need MECE post-processing on fetched pages: policy decision from Content-Signal, privacy redaction...
clawhub install markdown-browserπ About This Skill
name: markdown-browser description: "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."
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
1. Fetch layer (official, exclusive)
web_fetch to retrieve the page.2. Policy layer (these skills)
Content-Signal and compute policy_action.ai-input semantics: allow_input, block_input, needs_review.3. Privacy layer (these skills)
4. Normalization layer (these skills)
contentType=text/markdown, keep content as-is.contentType=text/html, convert with turndown as fallback enhancement.Execution Order
1. Call official web_fetch.
2. Pass the result JSON into this wrapper.
3. Optionally pass Content-Signal and x-markdown-tokens header values if available.
4. 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:
web_fetch_result (required): JSON payload returned by OpenClaw web_fetch.content_signal_header (optional): raw Content-Signal header string.markdown_tokens_header (optional): raw x-markdown-tokens header value.Output:
contentformat (markdown | html-fallback | text)token_estimate (number | null)content_signalpolicy_actionsource_url (redacted)status_codefallback_usedCLI Usage
# Install runtime dependency once inside the skill directory
npm install --omit=dev1) 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"