{"_id":"@blopus-ai/openclaw-plugin","_rev":"8-8eddc26320b26d8a8bb0bca21cf6cd8f","name":"@blopus-ai/openclaw-plugin","dist-tags":{"latest":"0.3.3"},"versions":{"0.1.6":{"name":"@blopus-ai/openclaw-plugin","version":"0.1.6","keywords":["openclaw","openclaw-plugin","clawhub","blopus","search","web-search","news-search","fetch","agent-tools","mcp"],"author":{"name":"Blopus"},"license":"MIT","_id":"@blopus-ai/openclaw-plugin@0.1.6","maintainers":[{"name":"blopus-ai","email":"blopussearch@gmail.com"}],"homepage":"https://blopus.ai","bugs":{"url":"https://github.com/blopus-ai/openclaw-plugin/issues"},"dist":{"shasum":"194afbddd1c31b512b1bd15d3bb86eeadaf87875","tarball":"https://registry.npmjs.org/@blopus-ai/openclaw-plugin/-/openclaw-plugin-0.1.6.tgz","fileCount":8,"integrity":"sha512-rzG/S2qrDr0UR8oDXH4w7w84uItAPFWiWQeZe3c379cklJJG/7fNHFxKYEhNTE0k8gmH0evJgdvyO60kqkfUag==","signatures":[{"sig":"MEYCIQDWfMfTqFD7dN7kDYoXkdgRKALUblRvG8/q+2XE+mAOMwIhAN9Fi7akx9/6jbO4jTLLLrw8ghnujbU3Uv92kd7EdqN+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53725},"main":"./dist/index.js","type":"module","gitHead":"5f5d9748efaaf6f6730bf85567347027d90837a5","scripts":{"build":"tsc index.ts --outDir dist --target es2022 --module es2022 --moduleResolution bundler --skipLibCheck"},"_npmUser":{"name":"blopus-ai","email":"blopussearch@gmail.com"},"openclaw":{"icon":"./icon.svg","build":{"openclawVersion":"1.0.0"},"compat":{"pluginApi":"1.0.0"},"extensions":["./index.ts"],"runtimeExtensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blopus-ai/openclaw-plugin.git","type":"git"},"_npmVersion":"11.13.0","description":"Give your agent the open web: search, read full pages, and pull images — from an index Blopus crawls itself, not a reseller of another engine's results. blopus_search (freshness windows, domain filters, inline full text, hero images) + blopus_fetch (compl","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","openclaw":"*"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-plugin_0.1.6_1787021259149_0.6634908548229483","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@blopus-ai/openclaw-plugin","version":"0.1.7","keywords":["openclaw","openclaw-plugin","clawhub","blopus","search","web-search","news-search","fetch","agent-tools","mcp"],"author":{"name":"Blopus"},"license":"MIT","_id":"@blopus-ai/openclaw-plugin@0.1.7","maintainers":[{"name":"blopus-ai","email":"blopussearch@gmail.com"}],"homepage":"https://blopus.ai","bugs":{"url":"https://github.com/blopus-ai/openclaw-plugin/issues"},"dist":{"shasum":"1bece288d5cd4a722947d7943b846fa6be4d2878","tarball":"https://registry.npmjs.org/@blopus-ai/openclaw-plugin/-/openclaw-plugin-0.1.7.tgz","fileCount":8,"integrity":"sha512-9e9Ccw16maNVaeSB19O1jWSeTXfuXV9HOK1fBrPCJ86PLdN4BAOP9U5tp9DGbIAoRWPURr3j28/jSOaiWGzayg==","signatures":[{"sig":"MEQCIDFZmgtWfqx6NpQ1WBQT3KLn5tVYiMCBx+bcHGE3eHgFAiBU7OqKcEuYevSEpTo3peXlGrnJ6x03RRDmMu6GV6l6Qg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55475},"main":"./dist/index.js","type":"module","gitHead":"f400c6d8337892506df4bf265491543a190d7f16","scripts":{"build":"tsc index.ts --outDir dist --target es2022 --module es2022 --moduleResolution bundler --skipLibCheck"},"_npmUser":{"name":"blopus-ai","email":"blopussearch@gmail.com"},"openclaw":{"icon":"./icon.svg","build":{"openclawVersion":"1.0.0"},"compat":{"pluginApi":"1.0.0"},"extensions":["./index.ts"],"runtimeExtensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blopus-ai/openclaw-plugin.git","type":"git"},"_npmVersion":"11.13.0","description":"Give your agent the open web: search, read full pages, and pull images — from an index Blopus crawls itself, not a reseller of another engine's results. blopus_search (freshness windows, domain filters, inline full text, hero images) + blopus_fetch (compl","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","openclaw":"*"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-plugin_0.1.7_1787032771582_0.5136548204298572","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@blopus-ai/openclaw-plugin","version":"0.2.0","keywords":["openclaw","openclaw-plugin","clawhub","blopus","search","web-search","news-search","fetch","agent-tools","mcp"],"author":{"name":"Blopus"},"license":"MIT","_id":"@blopus-ai/openclaw-plugin@0.2.0","maintainers":[{"name":"blopus-ai","email":"blopussearch@gmail.com"}],"homepage":"https://blopus.ai","bugs":{"url":"https://github.com/blopus-ai/openclaw-plugin/issues"},"dist":{"shasum":"1ebabcc9c916e7d640353b69d90285a2981953a8","tarball":"https://registry.npmjs.org/@blopus-ai/openclaw-plugin/-/openclaw-plugin-0.2.0.tgz","fileCount":8,"integrity":"sha512-8mA9ezu3nMaphbto5H1W53MWXWEwkw/G4aJagp1Qf1nI/FFBtl+/VqZuP7QUbxJMGRLzChYo1GIw2tPIjrwBGg==","signatures":[{"sig":"MEUCIQCqdl6g71WjdzHmjKugmW/wR2hiz2iSHcvBDEzD0gs68wIgeNCkG/XytboXdhCxNmA5xOg/iURLznSAlp1h/+paANI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61622},"main":"./dist/index.js","type":"module","gitHead":"f400c6d8337892506df4bf265491543a190d7f16","scripts":{"build":"tsc index.ts --outDir dist --target es2022 --module es2022 --moduleResolution bundler --skipLibCheck"},"_npmUser":{"name":"blopus-ai","email":"blopussearch@gmail.com"},"openclaw":{"icon":"./icon.svg","build":{"openclawVersion":"1.0.0"},"compat":{"pluginApi":"1.0.0"},"extensions":["./index.ts"],"runtimeExtensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blopus-ai/openclaw-plugin.git","type":"git"},"_npmVersion":"11.13.0","description":"Give your agent the open web: search, read full pages, and pull images — from an index Blopus crawls itself, not a reseller of another engine's results. blopus_search (freshness windows, domain filters, inline full text, hero images) + blopus_fetch (compl","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2"},"peerDependencies":{"typebox":"*","openclaw":"*"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-plugin_0.2.0_1787124185247_0.5665999688707786","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@blopus-ai/openclaw-plugin","version":"0.2.1","keywords":["openclaw","openclaw-plugin","clawhub","blopus","search","web-search","news-search","fetch","agent-tools","mcp"],"author":{"name":"Blopus"},"license":"MIT","_id":"@blopus-ai/openclaw-plugin@0.2.1","maintainers":[{"name":"blopus-ai","email":"blopussearch@gmail.com"}],"homepage":"https://blopus.ai","bugs":{"url":"https://github.com/blopus-ai/openclaw-plugin/issues"},"dist":{"shasum":"c28e15c936b31f54859cec456f97c284d8483bf1","tarball":"https://registry.npmjs.org/@blopus-ai/openclaw-plugin/-/openclaw-plugin-0.2.1.tgz","fileCount":8,"integrity":"sha512-Xnj6fKVGjPSmvuL3rhH6Zk2uWPGDwtS5/sDxByjLCqxHuFFmnuxnviJdtRX05CLJvE0J1x3ND4ERe3fDo0LUdQ==","signatures":[{"sig":"MEUCIQCo928sZCmaRyt+Nz02vJr0XqWdE+XpXXCfox5jJ5JrsAIgF9Hx9JSqbMBGb7okVnKviiF+E3Gl4DmyvTD20l6Q6Bo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63571},"main":"./dist/index.js","type":"module","gitHead":"26aa8fa3e2cefe5a0533f549df7e28a11ab976a6","scripts":{"build":"tsc index.ts --outDir dist --target es2022 --module es2022 --moduleResolution bundler --skipLibCheck"},"_npmUser":{"name":"blopus-ai","email":"blopussearch@gmail.com"},"openclaw":{"icon":"./icon.svg","build":{"openclawVersion":"1.0.0"},"compat":{"pluginApi":"1.0.0"},"extensions":["./index.ts"],"runtimeExtensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blopus-ai/openclaw-plugin.git","type":"git"},"_npmVersion":"11.13.0","description":"Give your agent the open web: search, read full pages, and pull images — from an index Blopus crawls itself, not a reseller of another engine's results. blopus_search (freshness windows, domain filters, inline full text, hero images) + blopus_fetch (compl","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2"},"peerDependencies":{"typebox":"*","openclaw":"*"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-plugin_0.2.1_1787450594787_0.4401748564645984","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@blopus-ai/openclaw-plugin","version":"0.3.0","keywords":["openclaw","openclaw-plugin","clawhub","blopus","search","web-search","news-search","fetch","agent-tools","mcp"],"author":{"name":"Blopus"},"license":"MIT","_id":"@blopus-ai/openclaw-plugin@0.3.0","maintainers":[{"name":"blopus-ai","email":"blopussearch@gmail.com"}],"homepage":"https://blopus.ai","bugs":{"url":"https://github.com/blopus-ai/openclaw-plugin/issues"},"dist":{"shasum":"196a7dea30083c7dc1ea43674ee42cf437aca299","tarball":"https://registry.npmjs.org/@blopus-ai/openclaw-plugin/-/openclaw-plugin-0.3.0.tgz","fileCount":8,"integrity":"sha512-OpMvQe7WJHaYPN0aXrQQcXpLGGhPfHeED5qdLrsJ1RDV6vvnq6j1j2lE9i9y34rmU5cQWRcPRA46w+y/qq8baA==","signatures":[{"sig":"MEYCIQDIVb7mzmJAJV6/NRO+dJULflRGA/EmQTFjh8IYCmylTgIhAIDp8rY11nETZ7fb/uDSKkJW092ekhRodFcL6O5kAl1t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72668},"main":"./dist/index.js","type":"module","gitHead":"69bb474a749488b0c06f9fe6639a1e5a41233198","scripts":{"build":"tsc index.ts --outDir dist --target es2022 --module es2022 --moduleResolution bundler --skipLibCheck"},"_npmUser":{"name":"blopus-ai","email":"blopussearch@gmail.com"},"openclaw":{"icon":"./icon.svg","build":{"openclawVersion":"1.0.0"},"compat":{"pluginApi":"1.0.0"},"extensions":["./index.ts"],"runtimeExtensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blopus-ai/openclaw-plugin.git","type":"git"},"_npmVersion":"11.13.0","description":"Give your agent the open web: search, read full pages, and pull images — from an index Blopus crawls itself, not a reseller of another engine's results. blopus_search (freshness windows, domain filters, inline full text, hero images) + blopus_fetch (compl","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2"},"peerDependencies":{"typebox":"*","openclaw":"*"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-plugin_0.3.0_1787451721024_0.6315532237106667","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@blopus-ai/openclaw-plugin","version":"0.3.1","keywords":["openclaw","openclaw-plugin","clawhub","blopus","search","web-search","news-search","fetch","agent-tools","mcp"],"author":{"name":"Blopus"},"license":"MIT","_id":"@blopus-ai/openclaw-plugin@0.3.1","maintainers":[{"name":"blopus-ai","email":"blopussearch@gmail.com"}],"homepage":"https://blopus.ai","bugs":{"url":"https://github.com/blopus-ai/openclaw-plugin/issues"},"dist":{"shasum":"eff6198f1572ccadbcba517a4d034d03f2a31c11","tarball":"https://registry.npmjs.org/@blopus-ai/openclaw-plugin/-/openclaw-plugin-0.3.1.tgz","fileCount":8,"integrity":"sha512-5/RoYMBUc4nCfWOx2mnG6+AzwYRFx9np8bG3a7XIADE6LnjbwYULNZfSuENnHQXtdvNcTa9afW4PqMCNoriBNw==","signatures":[{"sig":"MEUCIQC+wWFPwwXFtS77fFhgw4NuqkFzG1/pjsNTp1/bJC1rbQIgVlzAGXeZfGG6bmxhzTUl+L3RoShKsY+rUguLAH/+XxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72840},"main":"./dist/index.js","type":"module","gitHead":"24574c3847505213abc0b10a6e2d7ccea82ebab3","scripts":{"build":"tsc index.ts --outDir dist --target es2022 --module es2022 --moduleResolution bundler --skipLibCheck"},"_npmUser":{"name":"blopus-ai","email":"blopussearch@gmail.com"},"openclaw":{"icon":"./icon.svg","build":{"openclawVersion":"2026.7.1-2","pluginSdkVersion":"2026.7.1-2"},"compat":{"pluginApi":">=2026.3.24","minGatewayVersion":"2026.3.24"},"extensions":["./index.ts"],"runtimeExtensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blopus-ai/openclaw-plugin.git","type":"git"},"_npmVersion":"11.13.0","description":"Give your agent the open web: search, read full pages, and pull images — from an index Blopus crawls itself, not a reseller of another engine's results. blopus_search (freshness windows, domain filters, inline full text, hero images) + blopus_fetch (compl","directories":{},"_nodeVersion":"24.16.0","dependencies":{"typebox":"1.3.15"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2"},"peerDependencies":{"openclaw":">=2026.3.24"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-plugin_0.3.1_1787722002073_0.3006682116234345","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@blopus-ai/openclaw-plugin","version":"0.3.2","keywords":["openclaw","openclaw-plugin","clawhub","blopus","search","web-search","news-search","fetch","agent-tools","mcp","image-search","web-fetch","news","agent","rag"],"author":{"name":"Blopus"},"license":"MIT","_id":"@blopus-ai/openclaw-plugin@0.3.2","maintainers":[{"name":"blopus-ai","email":"blopussearch@gmail.com"}],"homepage":"https://blopus.ai","bugs":{"url":"https://github.com/blopus-ai/openclaw-plugin/issues"},"dist":{"shasum":"40e96407c7b37efe04ba37ecea8b8be4ee0ea89a","tarball":"https://registry.npmjs.org/@blopus-ai/openclaw-plugin/-/openclaw-plugin-0.3.2.tgz","fileCount":8,"integrity":"sha512-P+tuPnWDbGiWv1SCJUqFjogqTIYQOQ2uukeECmK7fp5Ge5eBTsCHx1em4B6kJG3UWHBzvyLN7eaFcNeHRaaIkA==","signatures":[{"sig":"MEUCIQChY0naO1AzUnE5HvvT9JUI2irIRpEuhFhpl2FcL4wcJAIgDpejLp7G+iIG8JRrl/RjZ4MYs8pab1Gkkrhyq5usQuc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73842},"main":"./dist/index.js","type":"module","gitHead":"24574c3847505213abc0b10a6e2d7ccea82ebab3","scripts":{"build":"tsc index.ts --outDir dist --target es2022 --module es2022 --moduleResolution bundler --skipLibCheck"},"_npmUser":{"name":"blopus-ai","email":"blopussearch@gmail.com"},"openclaw":{"icon":"./icon.svg","build":{"openclawVersion":"2026.7.1-2","pluginSdkVersion":"2026.7.1-2"},"compat":{"pluginApi":">=2026.3.24","minGatewayVersion":"2026.3.24"},"extensions":["./index.ts"],"runtimeExtensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/blopus-ai/openclaw-plugin.git","type":"git"},"_npmVersion":"11.13.0","description":"The web search API for all your agents. Search, read full pages, and find real images — over an index Blopus crawls itself rather than reselling another engine, so nobody else's quotas or price changes sit between your agent and the web. blopus_search cov","directories":{},"_nodeVersion":"24.16.0","dependencies":{"typebox":"1.3.15"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2"},"peerDependencies":{"openclaw":">=2026.3.24"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-plugin_0.3.2_1787722477016_0.47828870670258317","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@blopus-ai/openclaw-plugin","version":"0.3.3","description":"The web search API for all your agents. Search, read full pages, and find real images — over an index Blopus crawls itself rather than reselling another engine, so nobody else's quotas or price changes sit between your agent and the web. blopus_search cov","type":"module","main":"./dist/index.js","license":"MIT","homepage":"https://blopus.ai","repository":{"type":"git","url":"git+https://github.com/blopus-ai/openclaw-plugin.git"},"keywords":["openclaw","openclaw-plugin","clawhub","blopus","search","web-search","news-search","fetch","agent-tools","mcp","image-search","web-fetch","news","agent","rag"],"peerDependencies":{"openclaw":">=2026.7.1"},"openclaw":{"compat":{"pluginApi":">=2026.7.1","minGatewayVersion":"2026.7.1"},"build":{"openclawVersion":"2026.7.1-2","pluginSdkVersion":"2026.7.1-2"},"icon":"./icon.svg","extensions":["./index.ts"],"runtimeExtensions":["./dist/index.js"]},"bugs":{"url":"https://github.com/blopus-ai/openclaw-plugin/issues"},"author":{"name":"Blopus"},"scripts":{"build":"tsc index.ts --outDir dist --target es2022 --module es2022 --moduleResolution bundler --skipLibCheck"},"devDependencies":{"typescript":"^7.0.2"},"dependencies":{"typebox":"1.3.15"},"gitHead":"e49d09cd9564dc9e9f07a0894b117034e45663e1","_id":"@blopus-ai/openclaw-plugin@0.3.3","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-HL2Bn6QXvHEj3cPXJzK6efklXpOZ+eNTNXyCanaUteSQ0E4/Kmei1bJJsEaWyU0sfAtcDLIfu9+e1B4NwsIjiQ==","shasum":"587cb6fc880244c98e8123b8db9675fa94974fbe","tarball":"https://registry.npmjs.org/@blopus-ai/openclaw-plugin/-/openclaw-plugin-0.3.3.tgz","fileCount":8,"unpackedSize":73839,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC1vrKfuBQ/0iq1SDyaY5tM02DjxbWTuJvW+gJRWhmC8wIhAIIqCyzrzwFXqvWp70BYeXhT8lS1gbJN/q9G0Q5B1U2M"}]},"_npmUser":{"name":"blopus-ai","email":"blopussearch@gmail.com"},"directories":{},"maintainers":[{"name":"blopus-ai","email":"blopussearch@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openclaw-plugin_0.3.3_1787722745354_0.02402860365736137"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-18T02:47:38.939Z","modified":"2026-08-26T05:39:05.672Z","0.1.6":"2026-08-18T02:47:39.314Z","0.1.7":"2026-08-18T05:59:31.722Z","0.2.0":"2026-08-19T07:23:05.396Z","0.2.1":"2026-08-23T02:03:14.937Z","0.3.0":"2026-08-23T02:22:01.158Z","0.3.1":"2026-08-26T05:26:42.222Z","0.3.2":"2026-08-26T05:34:37.165Z","0.3.3":"2026-08-26T05:39:05.512Z"},"bugs":{"url":"https://github.com/blopus-ai/openclaw-plugin/issues"},"author":{"name":"Blopus"},"license":"MIT","homepage":"https://blopus.ai","keywords":["openclaw","openclaw-plugin","clawhub","blopus","search","web-search","news-search","fetch","agent-tools","mcp","image-search","web-fetch","news","agent","rag"],"repository":{"type":"git","url":"git+https://github.com/blopus-ai/openclaw-plugin.git"},"description":"The web search API for all your agents. Search, read full pages, and find real images — over an index Blopus crawls itself rather than reselling another engine, so nobody else's quotas or price changes sit between your agent and the web. blopus_search cov","maintainers":[{"name":"blopus-ai","email":"blopussearch@gmail.com"}],"readme":"<img src=\"https://raw.githubusercontent.com/blopus-ai/openclaw-plugin/master/icon.svg\" alt=\"Blopus\" width=\"72\" height=\"72\">\n\n# Blopus for OpenClaw\n\n## Give OpenClaw the power of search\n\nAn OpenClaw agent without search is reasoning from memory alone — it can't tell you what\nhappened this morning, can't read the page you're asking about, and can't cite anything.\n\nThis plugin fixes that with two tools. Your agent **searches the live web**, **reads whole\npages** instead of guessing from snippets, and **pulls images** it can show you. All from an\nindex Blopus crawls itself — so when coverage or freshness needs to improve, we improve it,\nrather than waiting on whoever we'd otherwise be reselling.\n\n→ **[blopus.ai](https://blopus.ai)**\n\n---\n\n## How it compares\n\n| Capability | **Blopus** | Brave | Tavily | Exa | Serper / SerpAPI |\n|---|---|---|---|---|---|\n| Runs its own search index | **✓** | ✓ | ~ | ✓ | — |\n| Made for AI agents | **✓** | ~ | ✓ | ✓ | — |\n| Pulls full pages, not just links | **✓** | — | ✓ | ✓ | — |\n| Connects in one line | **✓** | ~ | ~ | ~ | — |\n| Flat price · hard cap · no surprises | **✓** | — | — | — | ~ |\n| Live usage, with alerts | **✓** | ~ | ~ | ~ | ~ |\n| Image search | **✓** *(beta)* | ✓ | ? | ? | ? |\n| **Cost per 1,000 searches** | **~$1.65–2.33** | ~$3–9 | ~$5–8 | ~$7 | ~$0.30–1 |\n| **Starts at** | **$7/mo** | ~$5 credit | $30/mo | usage-based | $25/mo |\n\n✓ full · ~ partial or varies by tier · — not offered · ? unverified\n\nTwo rows matter most for agents. **Full page retrieval** — Brave doesn't offer it, so you end\nup bolting a scraper onto your search calls. And **flat pricing with a hard cap** — an agent\nin a loop is the fastest way to an unexpected bill, and a hard cap means that can't happen.\n\nCurrent figures and tiers: **[blopus.ai](https://blopus.ai)**.\n\n---\n\n## What your agent gets\n\n| | Tool | What it does |\n|---|---|---|\n| 🔍 | **`blopus_search`** | Web and news search. Freshness windows, domain include/exclude, inline full text, topic filters, minimum length. |\n| 🖼️ | **`blopus_images`** *(beta)* | Search the image index itself. Ranks pictures **of** the subject, with captions written to be rendered. |\n| 🏷️ | **`blopus_topics`** | The vocabulary for the `topics` filters. **Free** — it costs no credits. |\n| 📄 | **`blopus_fetch`** | The complete text of any indexed page. Batch up to 50 URLs in a single call. |\n\n## Why it's different\n\n**It's our own index.** Most search APIs resell someone else's results, which means you\ninherit their ranking, their gaps, and their pricing floor. Blopus runs its own crawler, so\ncoverage and freshness are ours to improve — and we do, continuously.\n\n**`blopus_fetch` has no equivalent in most search APIs.** Search gives you snippets; agents\nneed the actual page. Instead of a search call plus N scrapes with N sets of failures, you\nbatch up to 50 URLs into **one** call at the price of one search.\n\n**Built for agents, not for humans clicking links.** Results are ranked for machine reading,\nsnippets are sized for context windows, and the pricing model is designed so an agent can't\naccidentally burn credits (see below).\n\n## Setup\n\n### 1. Generate an API key\n\n1. Go to **[blopus.ai](https://blopus.ai)** and sign in (or create an account)\n2. Open **API keys** in the dashboard\n3. Click **Create API key**, give it a **Key name** — e.g. `openclaw` — and create it\n4. Click **Reveal** and copy the key. It starts with `blp_live_`\n\nKeep it somewhere safe: treat it like a password. You can create separate keys per\nintegration and revoke any of them from **Active keys** without affecting the others.\n\n### 2. Enable the plugin in OpenClaw\n\nInstall it:\n\n```bash\nopenclaw plugins install clawhub:@blopus-ai/openclaw-plugin\n```\n\nThen add your key to the plugin config:\n\n```json\n{\n  \"blopus\": {\n    \"apiKey\": \"blp_live_xxxxxxxxxxxxxxxxxxxx\"\n  }\n}\n```\n\nOptional — override the API base URL (rarely needed):\n\n```json\n{\n  \"blopus\": {\n    \"apiKey\": \"blp_live_xxxxxxxxxxxxxxxxxxxx\",\n    \"baseUrl\": \"https://api.blopus.ai\"\n  }\n}\n```\n\n### 3. Check it works\n\nAsk your agent to search for something recent — for example *\"what happened in the markets\ntoday?\"* It should call `blopus_search` and come back with dated results and source domains.\n\n**If it says Blopus needs an API key**, the plugin loaded but the config isn't being read —\nconfirm the key sits under a `blopus` object and that you restarted the agent after editing.\n\n**If you get an HTTP 401**, the key is wrong or was revoked. Generate a new one under\n**API keys → Create API key** and replace it.\n\n**If you get an HTTP 429 or a quota error**, you've hit your plan's limit. Check **Overview**\nand **Billing** in the dashboard.\n\n## Capabilities in detail\n\n### `blopus_search`\n\n| Parameter | Use it when |\n|---|---|\n| `query` | The search itself. |\n| `news_only` | The question is about an **event** — what happened, who announced what, market reaction, election results. |\n| `freshness` | Bound recency: `pd` (24h), `pw`, `pm`, `p3m`, `p1y`, `all`. |\n| `include_domains` / `exclude_domains` | Constrain to trusted sources, or filter noise. |\n| `include_content` | Return full page text inline instead of snippets — one call instead of search + fetch. |\n| `include_images` *(beta)* | Attach each result's hero image URL, plus width and height. |\n| `topics` / `exclude_topics` | Scope to (or away from) whole subject areas, e.g. `['cybersecurity']`. Source-level: describes what a publication covers, not what an article is about. |\n| `min_words` | Only return pages with at least N words. Use `120` when the user wants something to read — it drops tag listings and stubs. Leave it off for breaking news. |\n| `count` | Results to return. |\n\nEvery result carries `title`, `url`, `snippet`, `domain`, `published_at` and a relevance\n`score`. With `include_images`, results also carry `image`, `image_w`, `image_h` — `image`\nmay be `null`, since not every page has one, so check before rendering.\n\n### `blopus_images`\n\n| Parameter | Use it when |\n|---|---|\n| `query` | What the picture should show. |\n| `count` | Images to return. Rounds up to a block of 10. |\n| `max_syndication` | Cap on how many pages an image may appear on. Default `30`, which suppresses stock photography and site furniture. Lower it for something distinctive. |\n\nEach result carries `caption`, `url`, `width`, `height`, `title`, `page_url`, `page_title` and\n`domain`.\n\n**Render with `caption`, not `title`.** `title` is the raw `alt` attribute and is empty or a\nmangled filename on roughly a quarter of images; `caption` is written to be shown:\n\n```\n![caption](url)\n```\n\nNever let an agent invent an image URL — a guessed one 404s and renders as a broken image.\n\n### `blopus_topics`\n\n| Parameter | Use it when |\n|---|---|\n| `min_docs` | Hide labels too small to be useful. Default `1000` (~1,260 topics); `100000` gives ~110 of only the largest areas. |\n\nReturns topic **names**, ready to pass straight to `topics` / `exclude_topics`.\n\n**This call is free** — it is not billed. That is deliberate: topics match *exactly*, so a wrong\nguess returns zero results that look identical to a genuine no-match. Charging for the lookup\nwould guarantee guessing. Call it once when you need a value you are unsure of and reuse the\nanswer; there is no reason to call it repeatedly.\n\nA topic describes what a **publication** covers, not what an individual article is about.\n`ai` means \"pages from AI-focused sites\" — broader and coarser than \"pages about AI\". Use it to\nscope or de-noise a search, never instead of putting the subject in the query.\n\n### `blopus_fetch`\n\nPass `url` for one page, or `urls` for a batch of up to 50. **Always prefer the batch** — it\nis a single lookup and costs the same as one search, whereas looping single fetches costs one\neach. URLs not in the index come back in `failed_results` and are not charged.\n\n## Cost model worth knowing\n\n`blopus_topics` is **not billed at all**. Everything else: results are billed **per block of 10**. `count: 1` and `count: 10` cost exactly the same, so\nthere is no reason for an agent to ask for fewer than 10. A 50-URL `blopus_fetch` batch costs\nthe same as one search. This is deliberate — agents shouldn't have to optimise against a\npricing model to avoid waste.\n\n## Two different things called \"images\"\n\nThese are not the same feature, and picking the wrong one produces confidently wrong pictures:\n\n| | `blopus_images` | `blopus_search` + `include_images` |\n|---|---|---|\n| What it searches | the **image index** | the **web index** |\n| What you get back | pictures *of* the subject, with captions | whatever hero image those articles happened to use |\n| Ask it for *\"blue birds\"* | photographs of blue birds | press photos from Blue Bird Corporation |\n| Use it when | the user wants to **see** something | you are reading articles anyway and a thumbnail is a bonus |\n\nSo: *\"show me…\"*, *\"what does X look like\"*, *\"find a photo of X\"* → **`blopus_images`**.\nReading and summarising, with an illustration alongside → `include_images`.\n\nBlopus stores image **URLs only** — never copies of the images themselves. Both are marked beta\nbecause coverage is still growing across the index; the fields are stable.\n\n## Also available over MCP\n\nOpenClaw speaks MCP natively, so you can skip the plugin entirely if you prefer:\n\n```\nhttps://mcp.blopus.ai/mcp\nAuthorization: Bearer blp_live_...\n```\n\nSame tools, same key.\n\n## More\n\n- **[blopus.ai](https://blopus.ai)** — API keys, pricing, and how the index is built\n- **[docs.blopus.ai](https://docs.blopus.ai)** — full API reference, Python and TypeScript SDKs\n- Also ships as `blopus` on PyPI and npm, plus a hosted MCP endpoint\n\nQuestions or something broken? **[Open an issue](https://github.com/blopus-ai/openclaw-plugin/issues).**\n","readmeFilename":"README.md"}