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.md
source 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

  1. Fetch layer (official, exclusive)
  • Use OpenClaw
    web_fetch
    to retrieve the page.
  • Do not call direct HTTP fetch inside this skill for normal operation.
  1. Policy layer (these skills)
  • Parse
    Content-Signal
    and compute
    policy_action
    .
  • Current action focuses on
    ai-input
    semantics:
    allow_input
    ,
    block_input
    ,
    needs_review
    .
  1. Privacy layer (these skills)
  • Redact path/fragment/query values in output URL fields.
  • Keep URL shape useful for debugging without leaking sensitive values.
  1. Normalization layer (these skills)
  • If
    contentType=text/markdown
    , keep content as-is.
  • If
    contentType=text/html
    , convert with
    turndown
    as fallback enhancement.
  • For other content types, pass through text.

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:

  • content
  • format
    (
    markdown
    |
    html-fallback
    |
    text
    )
  • token_estimate
    (
    number | null
    )
  • content_signal
  • policy_action
  • source_url
    (redacted)
  • status_code
  • fallback_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"