{"id":"7b70ee82-429d-4a1a-8ae3-be821f4e936d","slug":"clawhub-webkixi-claw-markdown-preview","name":"Claw Markdown Preview","description":"\"预览这个 markdown 文件\" / \"打开 markdown 预览\" or   \"preview this markdown file\", \"open markdown preview\",","canonicalUrl":"https://www.xpersona.co/agent/clawhub-webkixi-claw-markdown-preview","sourceUrl":"https://clawhub.ai/webkixi/claw-markdown-preview","homepage":"https://clawhub.ai/webkixi/skills/claw-markdown-preview","source":"CLAWHUB","vendor":{"slug":"clawhub","label":"Clawhub","url":"https://clawhub.ai/webkixi/skills/claw-markdown-preview"},"protocols":["OPENCLEW"],"capabilities":[],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":"1.4.15","freshnessAt":"2026-10-09T19:25:01.855Z","freshnessLabel":"Oct 9, 2026","securityReviewed":true,"openapiReady":false,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"OpenClaw"},{"label":"Freshness","value":"Oct 9, 2026"},{"label":"Vendor","value":"Clawhub"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"1.4.15"}],"factsPreview":[{"factKey":"vendor","category":"vendor","label":"Vendor","value":"Clawhub","href":"https://clawhub.ai/webkixi/skills/claw-markdown-preview","sourceUrl":"https://clawhub.ai/webkixi/skills/claw-markdown-preview","sourceType":"profile","confidence":"medium","observedAt":"2026-10-09T19:25:01.855Z","isPublic":true},{"factKey":"protocols","category":"compatibility","label":"Protocol compatibility","value":"OpenClaw","href":"https://www.xpersona.co/api/v1/agents/clawhub-webkixi-claw-markdown-preview/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/clawhub-webkixi-claw-markdown-preview/contract","sourceType":"contract","confidence":"medium","observedAt":"2026-10-09T19:25:01.855Z","isPublic":true},{"factKey":"traction","category":"adoption","label":"Adoption signal","value":"2.1K downloads","href":"https://clawhub.ai/webkixi/claw-markdown-preview","sourceUrl":"https://clawhub.ai/webkixi/claw-markdown-preview","sourceType":"profile","confidence":"medium","observedAt":"2026-10-09T19:25:01.855Z","isPublic":true},{"factKey":"latest_release","category":"release","label":"Latest release","value":"1.4.15","href":"https://clawhub.ai/webkixi/claw-markdown-preview","sourceUrl":"https://clawhub.ai/webkixi/claw-markdown-preview","sourceType":"release","confidence":"medium","observedAt":"2026-07-17T03:20:29.074Z","isPublic":true},{"factKey":"handshake_status","category":"security","label":"Handshake status","value":"UNKNOWN","href":"https://www.xpersona.co/api/v1/agents/clawhub-webkixi-claw-markdown-preview/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/clawhub-webkixi-claw-markdown-preview/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true}],"highlights":["2.1K downloads","Trust evidence available"],"agentCard":{"name":"Claw Markdown Preview","description":"\"预览这个 markdown 文件\" / \"打开 markdown 预览\" or   \"preview this markdown file\", \"open markdown preview\",","source":"CLAWHUB","sourceId":"clawhub:s171neyed37y95yer64vfgs0j9880zss:claw-markdown-preview","homepage":"https://clawhub.ai/webkixi/skills/claw-markdown-preview","repository":"https://clawhub.ai/webkixi/claw-markdown-preview","documentation":"https://www.xpersona.co/agent/clawhub-webkixi-claw-markdown-preview","protocols":["OPENCLEW"],"examples":[{"kind":"example","language":"bash","snippet":"# 单实例清理：只终止上一次本技能启动的预览实例（PID 文件精确定位），不误伤其他进程。整条命令以 python3 常驻结尾。（脱离托管由 python 内部实现跨平台双 fork/detach，不依赖 shell setsid，多行 if 块部分环境识别不到 python3）。\n[ -f /tmp/claw-markdown-preview.pid ] && OLD_PID=$(cat /tmp/claw-markdown-preview.pid 2>/dev/null) && [ -n \"$OLD_PID\" ] && kill -0 \"$OLD_PID\" 2>/dev/null && kill \"$OLD_PID\" 2>/dev/null; rm -f /tmp/claw-markdown-preview.pid; python3 scripts/preview_server.py --file \"<MD_FILE_PATH>\" --no-open --heartbeat-timeout 7200 > /tmp/claw-md-preview.log 2>&1"},{"kind":"example","language":"bash","snippet":"# 就绪轮询：服务绑定端口后即可响应，不必固定等待 2 秒（跨平台通用，不依赖任何运行时专属能力）\nPORT=8765\nfor i in $(seq 1 20); do\n  if curl -s -o /dev/null -w '%{http_code}' --max-time 1 \"http://127.0.0.1:$PORT/\" | grep -q 200; then\n    break\n  fi\n  sleep 0.1\ndone\n# 若默认端口仍未就绪（如端口冲突），从日志提取实际端口\nif ! curl -s -o /dev/null -w '%{http_code}' --max-time 1 \"http://127.0.0.1:$PORT/\" | grep -q 200; then\n  PORT=$(grep -oE '127\\.0\\.0\\.1:[0-9]+' /tmp/claw-md-preview.log | head -1 | sed 's/.*://')\nfi\n# 记录本次实例 PID，供下次重启时精准终止（替代 pkill 全杀）\nlsof -iTCP:$PORT -sTCP:LISTEN -t | head -1 > /tmp/claw-markdown-preview.pid\nopen \"http://127.0.0.1:$PORT\""}]}}