jina-cli

SKILL.md

jina - Web Content Reader & Search

CLI tool for reading web content and performing AI-powered web searches.

Quick start

macOS/Linux:

curl -fsSL https://raw.githubusercontent.com/geekjourneyx/jina-cli/main/scripts/install.sh | bash

Windows (Go required):

# 1. Install via Go
go install github.com/geekjourneyx/jina-cli/cli@latest

# 2. Rename and add to PATH (One-time setup)
cd "$HOME/go/bin"; mv cli.exe jina.exe
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$HOME\go\bin", "User")

Basic usage:

# Read a URL
jina read --url "https://example.com"

# Search the web
jina search --query "golang latest news"

Commands

Command Purpose
read Extract and convert content from URLs to LLM-friendly format
search Search the web with AI-powered result processing
config Manage settings (set/get/list/path)

Read command

Extract content from any URL:

# Basic read
jina read --url "https://example.com"

# Read with image captioning (Requires API Key)
jina read -u "https://x.com/user/status/123" --with-alt

# Batch process from file
jina read --file urls.txt

# Output as Markdown
jina read -u "https://example.com" --output markdown

# Save to file
jina read -u "https://example.com" --output-file result.md

Response formats

The API can return content in different formats via --format:

  • markdown - Default, LLM-friendly Markdown
  • html - Raw HTML
  • text - Plain text
  • screenshot - URL to a screenshot

Advanced options

# Bypass cache
jina read -u "https://example.com" --no-cache

# Use proxy
jina read -u "https://example.com" --proxy "http://proxy.com:8080"

# CSS selector extraction
jina read -u "https://example.com" --target-selector "article.main"

# Wait for element to load
jina read -u "https://example.com" --wait-for-selector "#content"

# Forward cookies
jina read -u "https://example.com" --cookie "session=abc123"

# POST method for SPA with hash routing
jina read -u "https://example.com/#/route" --post

Search command

Search the web with automatic content fetching from top results:

# Basic search
jina search --query "golang latest news"

# Restrict to specific sites
jina search -q "AI developments" --site techcrunch.com --site theverge.com

# Limit results
jina search -q "climate change" --limit 10

# Output format
jina search -q "news" --output markdown

Site filtering

Use multiple --site flags to restrict search to specific domains:

jina search -q "startup funding" --site techcrunch.com --site theverge.com --site wired.com

Configuration

Config file: ~/.jina-reader/config.yaml

Priority: Command args > Environment vars > Config file > Defaults

Environment variables:

  • JINA_API_BASE_URL - Read API URL (default: https://r.jina.ai/)
  • JINA_SEARCH_API_URL - Search API URL (default: https://s.jina.ai/)
  • JINA_TIMEOUT - Request timeout in seconds (default: 30)
  • JINA_WITH_GENERATED_ALT - Enable image captioning (default: false)
  • JINA_OUTPUT_FORMAT - Output format: json/markdown (default: json)
  • JINA_PROXY_URL - Proxy server URL

Config commands:

# Set API Key (Required for --with-alt)
jina config set key your_jina_api_key

# Set configuration
jina config set timeout 60
jina config set with-generated-alt true

# View configuration
jina config list
jina config get timeout
jina config path

Troubleshooting

401 Authentication Required

If you receive a 401 Unauthorized error when using --with-alt, ensure you have a valid API key configured: jina config set key YOUR_API_KEY

Command not found (Windows)

If jina is not recognized after go install, ensure $HOME\go\bin is in your system PATH and the binary is named jina.exe (defaults to cli.exe).

Output formats

JSON format (default, machine-readable):

{
  "success": true,
  "data": {
    "url": "https://example.com",
    "content": "# Extracted Content\n\n...",
    "title": "Page Title"
  }
}

Markdown format (human-readable):

jina read -u "https://example.com" --output markdown

Common use cases

Reading social media posts

# X (Twitter) posts
jina read -u "https://x.com/elonmusk/status/123456" --with-alt

# The --with-alt flag enables VLM image captioning for embedded images

Reading articles/blogs

# Standard article
jina read -u "https://blog.example.com/article"

# With specific format
jina read -u "https://example.com" --format text --output markdown

Research workflows

# 1. Search for topic
jina search -q "quantum computing 2025" --limit 10

# 2. Read specific results
jina read --file search_results.txt

Batch processing

Create a file with one URL per line:

cat > urls.txt << EOF
https://example.com/page1
https://example.com/page2
https://x.com/user/status/123
EOF

jina read --file urls.txt --output markdown

Project structure

cli/
├── main.go              # Root command
├── read.go              # read command
├── search.go            # search command
├── config.go            # config command
└── pkg/
    ├── api/client.go    # Jina API HTTP client
    ├── config/          # Config file management
    └── output/          # JSON/Markdown formatter

Implementation notes

  • Go 1.24+ required
  • Zero dependencies except Cobra
  • Single binary distribution
  • Config stored as simple key=value format (no YAML library dependency)

For API details: See cli/pkg/api/client.go

Weekly Installs
1
GitHub Stars
7
First Seen
4 days ago
Installed on
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1