Skills jina
Web reading and searching via Jina AI APIs. Fetch clean markdown from URLs (r.jina.ai), web search (s.jina.ai), or deep multi-step research (DeepSearch).
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/adhishthite/jina-ai" ~/.claude/skills/openclaw-skills-jina && rm -rf "$T"
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/adhishthite/jina-ai" ~/.openclaw/skills/openclaw-skills-jina && rm -rf "$T"
skills/adhishthite/jina-ai/SKILL.mdJina AI — Reader, Search & DeepSearch
Web reading and search powered by Jina AI. Requires
JINA_API_KEY environment variable.
Trust & Privacy: By using this skill, URLs and queries are transmitted to Jina AI (jina.ai). Only install if you trust Jina with your data.
Model Invocation: This skill may be invoked autonomously by the model without explicit user trigger (standard for integration skills). If you prefer manual-only invocation, disable model invocation in your OpenClaw skill settings.
Get your API key: https://jina.ai/ → Dashboard → API Keys
External Endpoints
This skill makes HTTP requests to the following external endpoints only:
| Endpoint | URL Pattern | Purpose |
|---|---|---|
| Reader API | | Sends URL content request to Jina for conversion to markdown |
| Search API | | Sends search query to Jina for web search results |
| DeepSearch API | | Sends research question to Jina for multi-step research |
No other external network calls are made by this skill.
Security & Privacy
- Authentication: Only your
is transmitted to Jina's servers (viaJINA_API_KEY
header)Authorization - Data sent: URLs and search queries you provide are sent to Jina's servers for processing
- Local files: No local files are read or transmitted by this skill
- Local storage: No data is stored locally beyond stdout output
- Environment access: Scripts only access the
environment variable; no other env vars are readJINA_API_KEY - Cookies: Cookies are not forwarded by default; the
header is available for authenticated content but is opt-in onlyX-Set-Cookie
Endpoints
| Endpoint | Base URL | Purpose |
|---|---|---|
| Reader | | Convert any URL → clean markdown |
| Search | | Web search with LLM-friendly results |
| DeepSearch | | Multi-step research agent |
All endpoints accept
Authorization: Bearer $JINA_API_KEY.
Reader API (r.jina.ai
)
r.jina.aiFetches any URL and returns clean, LLM-friendly content. Works with web pages, PDFs, and JS-heavy sites.
Basic Usage
# Plain text output curl -s "https://r.jina.ai/https://example.com" \ -H "Authorization: Bearer $JINA_API_KEY" \ -H "Accept: text/plain" # JSON output (includes url, title, content, timestamp) curl -s "https://r.jina.ai/https://example.com" \ -H "Authorization: Bearer $JINA_API_KEY" \ -H "Accept: application/json"
Or use the helper script:
scripts/jina-reader.sh <url> [--json]
Parameters (via headers or query params)
Content Control
| Header | Query Param | Values | Default | Description |
|---|---|---|---|---|
| | , , , , , , , | | Output format |
| | , , , , | | Image handling |
| | , , , | | Link handling |
| | / | | Auto-caption images |
| | | - | Append links section |
| | / | | Append images section |
| | number | - | Max tokens for response |
CSS Selectors
| Header | Query Param | Description |
|---|---|---|
| | Only extract matching elements |
| | Wait for elements before extracting |
| | Remove elements before extraction |
Browser & Network
| Header | Query Param | Description |
|---|---|---|
| | Page load timeout (1-180s) |
| | When page is "ready" (, , etc.) |
| | Bypass cached content |
| | Country code or for proxy |
| | Forward cookies for authenticated content |
Common Patterns
# Extract main content, remove navigation elements curl -s "https://r.jina.ai/https://example.com/article" \ -H "Authorization: Bearer $JINA_API_KEY" \ -H "X-Retain-Images: none" \ -H "X-Remove-Selector: nav, footer, .sidebar, .ads" \ -H "Accept: text/plain" # Extract specific section curl -s "https://r.jina.ai/https://example.com" \ -H "Authorization: Bearer $JINA_API_KEY" \ -H "X-Target-Selector: article.main-content" # Parse a PDF curl -s "https://r.jina.ai/https://example.com/paper.pdf" \ -H "Authorization: Bearer $JINA_API_KEY" \ -H "Accept: text/plain" # Wait for dynamic content curl -s "https://r.jina.ai/https://spa-app.com" \ -H "Authorization: Bearer $JINA_API_KEY" \ -H "X-Wait-For-Selector: .loaded-content" \ -H "X-Respond-Timing: network-idle"
Search API (s.jina.ai
)
s.jina.aiWeb search returning LLM-friendly results with full page content.
Basic Usage
# Plain text curl -s "https://s.jina.ai/your+search+query" \ -H "Authorization: Bearer $JINA_API_KEY" \ -H "Accept: text/plain" # JSON curl -s "https://s.jina.ai/your+search+query" \ -H "Authorization: Bearer $JINA_API_KEY" \ -H "Accept: application/json"
Or use the helper script:
scripts/jina-search.sh "<query>" [--json]
Search Parameters
| Param | Values | Description |
|---|---|---|
| domain | Limit to specific site |
| , , | Search type |
/ | 0-20 | Number of results |
| country code | Geo-location (e.g. , ) |
| extension | Filter by file type |
| string | Must appear in title |
All Reader parameters also work on search results.
Common Patterns
# Site-scoped search curl -s "https://s.jina.ai/OpenAI+GPT-5?site=reddit.com" \ -H "Authorization: Bearer $JINA_API_KEY" \ -H "Accept: text/plain" # News search curl -s "https://s.jina.ai/latest+AI+news?type=news&num=5" \ -H "Authorization: Bearer $JINA_API_KEY" \ -H "Accept: application/json" # Search for PDFs curl -s "https://s.jina.ai/machine+learning+survey?filetype=pdf&num=5" \ -H "Authorization: Bearer $JINA_API_KEY"
DeepSearch
Multi-step research agent that combines search + reading + reasoning. OpenAI-compatible chat completions API.
curl -s "https://deepsearch.jina.ai/v1/chat/completions" \ -H "Authorization: Bearer $JINA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "jina-deepsearch-v1", "messages": [{"role": "user", "content": "Your research question here"}], "stream": false }'
Or use the helper script:
scripts/jina-deepsearch.sh "<question>"
Use for complex research requiring multiple sources and reasoning chains.
Helper Scripts
| Script | Purpose |
|---|---|
| Read any URL as markdown |
| Web search |
| Deep multi-step research |
| Python reader (no deps beyond stdlib) |
Rate Limits
- Free (no key): 20 RPM
- With API key: Higher limits, token-based pricing
API Docs
- Reader: https://jina.ai/reader
- Search: https://s.jina.ai/docs
- OpenAPI specs: https://r.jina.ai/openapi.json | https://s.jina.ai/openapi.json
When to Use
| Need | Use |
|---|---|
| Fetch a URL as markdown | Reader — better than web_fetch for JS-heavy sites |
| Web search | Search — LLM-friendly results |
| Complex multi-source research | DeepSearch |
| Parse a PDF from URL | Reader — pass PDF URL directly |
| Screenshot a page | Reader with |
| Extract structured data | Reader with param |