{"skill":{"slug":"deshell","displayName":"deshell - the web & search in markdown","summary":"Fetch web pages as clean Markdown and search the web via the DeShell proxy","description":"---\nname: deshell\ndescription: Fetch web pages as clean Markdown and search the web via the DeShell proxy\nversion: 1.5.0\nmetadata:\n  openclaw:\n    emoji: \"🔍\"\n    requires:\n      bins:\n        - \"node\"\n        - \"npm\"\n        - \"curl\"\n      env:\n        - \"DESHELL_API_KEY\"\n        - \"DESHELL_PROXY_URL\"\n    primaryEnv: \"DESHELL_API_KEY\"\n    install:\n      - kind: node\n        package: \"@deshell/mcp\"\n        bins: [deshell]\n---\n\n# DeShell Skill\n\nGives agents discoverable, consistent access to the DeShell proxy — no manual URL construction, no remembering headers or API keys.\n\nDeShell converts web pages into clean Markdown, saving 60–80% of tokens for LLM consumption.\n\n## Setup\n\n1. Get your API key from https://deshell.ai (sign up or use your existing key)\n2. Install the `deshell` CLI manually (one-time):\n\n   ```bash\n   npm install @deshell/mcp\n   ```\n3. Set the `DESHELL_API_KEY` environment variable\n\n## Commands\n\n```bash\n# Fetch any URL as clean Markdown\ndeshell fetch https://example.com\n\n# Search the web and get results as Markdown\ndeshell search \"best practices for Go error handling\"\n\n# Multi-word queries work naturally — no quoting needed\ndeshell search top 10 AI companies 2025\n\n# Take a screenshot of a web page and return it as an image\ndeshell screenshot https://example.com\n\n# Render a web page (such as a single page javascript app) before trying to extract markdown\ndeshell render https://example.com\n\n# Fetch a URL and return its raw content bypassing any attempt to render markdown\ndeshell raw https://example.com\n\n# Fetch a URL and return its content without using the cache\ndeshell nocache https://example.com\n```\n\n## Options\n\n| Environment Variable | Default | Description |\n|---------------------|---------|-------------|\n| `DESHELL_API_KEY`   | (none) | API key |\n| `DESHELL_PROXY_URL` | `https://proxy.deshell.ai/` | Proxy base URL |\n| `DESHELL_EXTRA_HEADERS` | (none) | Comma-separated extra headers in `Header-Name:value` format |\n\n## Output\n\n- `deshell fetch` — returns page content as Markdown on stdout\n- `deshell search` — returns search results with titles, URLs, descriptions, and page content as Markdown on stdout\n- Errors are written to stderr; non-zero exit code on failure\n\n## Extra Headers\n\nTo pass additional DeShell headers, use comma-separated `Header-Name:value` pairs:\n\n```bash\n# Single header\nDESHELL_EXTRA_HEADERS=\"X-DeShell-No-Cache:true\" deshell fetch https://example.com\n\n# Multiple headers\nDESHELL_EXTRA_HEADERS=\"X-DeShell-No-Cache:true,X-DeShell-Max-Tokens:2000\" deshell fetch https://example.com\n```\n\n## Examples\n\n```bash\n# Research a topic\ndeshell search \"OpenClaw agent framework\"\n\n# Read documentation\ndeshell fetch https://docs.github.com/en/rest\n\n# Force fresh fetch (bypass cache)\nDESHELL_EXTRA_HEADERS=\"X-DeShell-No-Cache:true\" deshell fetch https://news.ycombinator.com\n```\n\n## Fallback — Direct curl\n\nIf you prefer not to install npm packages, you can call the proxy directly with curl:\n\n```bash\n# Fetch a page\ncurl -s \"https://proxy.deshell.ai/https://example.com\" \\\n  -H \"X-DeShell-Key: YOUR_API_KEY\"\n\n# Search the web\ncurl -s \"https://proxy.deshell.ai/search?q=your+query\" \\\n  -H \"X-DeShell-Key: YOUR_API_KEY\" \\\n  -H \"Accept: text/markdown\"\n```\n","tags":{"latest":"1.5.0"},"stats":{"comments":0,"downloads":313,"installsAllTime":0,"installsCurrent":0,"stars":0,"versions":8},"createdAt":1771518658025,"updatedAt":1778491585715},"latestVersion":{"version":"1.5.0","createdAt":1771568304978,"changelog":"No changes detected in this version.\n\n- No file changes were made between versions 1.4.2 and 1.5.0.","license":null},"metadata":{"setup":[{"key":"DESHELL_API_KEY","required":true},{"key":"DESHELL_PROXY_URL","required":true}],"os":null,"systems":null},"owner":{"handle":"mikel","userId":"s171cwwn9rzvm31q31d7vzt5px884yja","displayName":"Mikel Lindsaar","image":"https://avatars.githubusercontent.com/u/3366?v=4"},"moderation":null}