Home
Softono

Jina Cli

Open source MIT Go
301
Stars
27
Forks
2
Issues
1
Watchers
5 months
Last Commit

 About Jina Cli

A lightweight CLI tool wrapping Jina AI Reader API for AI Agents. Fetch and parse any URL into LLM-friendly formats (Markdown/Text/HTML). Perfect for reading X(Twitter), blogs, and news sites.

Platforms

Web Self-hosted

Languages

Go

Links

Need Help Installing Jina Cli?

We provide expert installation service for this software. Our team will install, configure, and secure Jina Cli on your server. plans start at just $30.

jina

为 AI Agent 打造的网页阅读 CLI 工具

License: MIT GitHub Release Go Version CLI

English | 中文


中文

简介

jina 是一个轻量级的命令行工具,封装了 Jina AI Reader API,可以将任意 URL 转换为 LLM 友好的输入格式。特别适合阅读 X (Twitter)、博客、新闻网站等复杂网页。

核心功能:

  • read - 读取 URL 内容,输出 Markdown/Text/HTML 格式
  • search - 网络搜索,自动获取并处理搜索结果

安装指南

jina 有三种独立的安装方式,根据你的使用场景选择:

方式一:OpenClaw Skill(推荐本地 AI 助理)

什么是 OpenClaw?

OpenClaw 是一个本地 AI 助理(可以理解为"有终端权限的 Claude"),运行在你的机器上。它通过 Skills 插件扩展能力,支持 9000+ 个技能插件。

适用场景:本地 AI 助理、自动化工作流、文件系统操作

安装方式 - 直接复制 skill 文件:

# 创建 jina-cli skill 目录并下载
mkdir -p ~/.openclaw/workspace/skills/jina-cli
curl -o ~/.openclaw/workspace/skills/jina-cli/SKILL.md \
  https://raw.githubusercontent.com/geekjourneyx/jina-cli/main/skills/jina-cli/SKILL.md

验证安装

# 启动 OpenClaw
openclaw

# 在 OpenClaw 中直接使用 jina 命令
# skill 会自动从 ~/.openclaw/workspace/skills/jina-cli/ 加载

你将获得

  • ✅ 本地 AI 助理直接调用 jina readjina search
  • ✅ 无需安装 CLI 二进制
  • ✅ 可以处理本地文件、执行脚本等

方式二:Claude Code Skill(推荐用于 AI 辅助开发)

适用场景:在 Claude Code 中使用 AI 协助你处理网页内容

安装步骤

# 1. 确保已安装 Node.js 和 Claude Code
node --version
# v18.0.0 或更高版本

# 2. 安装 jina skill
npx skills add https://github.com/geekjourneyx/jina-cli --skill jina-cli

安装后验证

# 在 Claude Code 中可以直接使用
# 无需额外操作,skill 会自动加载

你将获得

  • ✅ 在 Claude Code 中直接调用 jina readjina search 命令
  • ✅ AI 会自动理解 jina 的功能和使用方式
  • ✅ 无需手动安装 CLI 二进制文件

方式三:CLI 二进制文件(推荐用于终端使用)

适用场景:在终端/脚本中使用,或与其他工具集成

一键安装(Linux/macOS)

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

安装脚本会自动:

  1. 检测你的系统架构(Linux/macOS,amd64/arm64)
  2. 下载对应平台的二进制文件
  3. 安装到 ~/.local/bin/jina~/bin/jina
  4. 提示如何添加到 PATH(如需要)

验证安装

# 检查是否安装成功
jina --version
# 预期输出: jina version 1.0.0 (构建时间: ..., 提交: ...)

# 测试基本功能
jina read --url "https://example.com"

手动安装

如果自动安装失败,可以手动下载:

# 1. 下载对应平台的二进制
# Linux amd64:
wget https://github.com/geekjourneyx/jina-cli/releases/latest/download/jina-linux-amd64 -O jina
chmod +x jina
sudo mv jina /usr/local/bin/

# macOS ARM64 (Apple Silicon):
wget https://github.com/geekjourneyx/jina-cli/releases/latest/download/jina-darwin-arm64 -O jina
chmod +x jina
sudo mv jina /usr/local/bin/

# 2. 验证安装
jina --version

从源码构建

git clone https://github.com/geekjourneyx/jina-cli.git
cd jina-cli
go build -o jina ./cli
sudo mv jina /usr/local/bin/

三种安装方式对比

特性 OpenClaw Skill Claude Code Skill CLI 二进制
安装位置 ~/.openclaw/workspace/skills/jina-cli/ ~/.claude/skills/ ~/.local/bin/jina
使用环境 OpenClaw 本地 AI 助理 Claude Code 任何终端/脚本
AI 集成 AI 自动理解功能 AI 自动理解功能 需要手动调用
文件权限 ✅ 可访问本地文件系统 ❌ 受限 ✅ 完整权限
脚本执行 ✅ 可执行脚本 ❌ 受限 ✅ 完整权限
更新方式 重新下载/npx skills update npx skills update 重新运行安装脚本
适用场景 本地 AI 助理、自动化 AI 辅助开发 脚本集成、日常使用

推荐选择

  • OpenClaw → 最强能力,本地运行,可操作文件系统
  • Claude Code → 开发体验好,AI 辅助编码
  • CLI 二进制 → 最轻量,适合脚本集成

注意:三种方式完全独立,可以同时安装,互不干扰。


快速开始

读取网页内容

# 读取单个 URL
jina read --url "https://example.com"

# 读取 X (Twitter) 帖子
jina read -u "https://x.com/user/status/123456789" --with-alt

# 输出 Markdown 格式
jina read -u "https://example.com" --output markdown

# 保存到文件
jina read -u "https://example.com" --output-file result.md

批量处理

# 从文件读取 URL 列表
cat > urls.txt << EOF
https://example.com/page1
https://example.com/page2
https://x.com/user/status/123
EOF

jina read --file urls.txt

网络搜索

# 搜索关键词
jina search --query "golang latest news"

# 限定搜索站点
jina search -q "AI developments" --site techcrunch.com --site theverge.com

# 限制结果数量
jina search -q "climate change" --limit 10

配置管理

配置文件位于 ~/.jina-reader/config.yaml

# 查看所有配置
jina config list

# 设置配置项
jina config set timeout 60
jina config set with-generated-alt true

# 获取单个配置
jina config get timeout

# 查看配置文件路径
jina config path

配置项说明

配置项 环境变量 默认值 说明
api_base_url JINA_API_BASE_URL https://r.jina.ai/ Read API 地址
search_api_url JINA_SEARCH_API_URL https://s.jina.ai/ Search API 地址
default_response_format JINA_RESPONSE_FORMAT markdown 响应格式
default_output_format JINA_OUTPUT_FORMAT json 输出格式
timeout JINA_TIMEOUT 30 请求超时(秒)
with_generated_alt JINA_WITH_GENERATED_ALT false 启用图片描述
proxy_url JINA_PROXY_URL "" 代理服务器
api_key JINA_API_KEY "" API 密钥(用于更高速率限制)

优先级: 命令行参数 > 环境变量 > 配置文件 > 默认值

API Key 使用

添加 API Key 可以获得更高的速率限制:

# 方式 1:配置文件设置
jina config set api_key jina_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# 方式 2:环境变量
export JINA_API_KEY=jina_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# 方式 3:命令行参数
jina read -u "https://example.com" -k jina_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

获取 API Key:访问 Jina AI Reader 注册并获取。

输出格式

JSON 格式(默认)

{
  "success": true,
  "data": {
    "url": "https://example.com",
    "title": "Example Domain",
    "content": "# Example Domain\n\nThis domain is..."
  }
}

Markdown 格式

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

输出:

# Example Domain

**Source**: https://example.com

---

# Example Domain

This domain is for use in illustrative examples...

高级用法

禁用缓存

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

使用代理

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

CSS 选择器提取

# 只提取指定元素
jina read -u "https://example.com" --target-selector "article.main"

# 等待元素加载
jina read -u "https://example.com" --wait-for-selector "#content"

处理 SPA 应用

# 对于带 hash 路由的 SPA,使用 POST 方法
jina read -u "https://example.com/#/route" --post

设置 Cookie

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

与 AI Agent 集成

# 在 Claude Code 或其他 AI 工具中使用
jina read -u "https://x.com/elonmusk/status/123456" --output json

# 搜索最新信息
jina search -q "golang 1.24 release notes" --output json

命令参考

jina - CLI tool for Jina AI Reader and Search APIs

Usage:
  jina [command]

Available Commands:
  read        Extract and convert content from URLs
  search      Search the web with AI-powered results
  config      Manage configuration
  completion  Generate shell completion
  help        Help about any command

Flags:
  -a, --api-base string   API base URL (overrides config)
  -k, --api-key string    API key (overrides config)
  -o, --output string     Output format: json, markdown (default "json")
  -v, --verbose           Verbose output
  -h, --help              help for jina
      --version           version for jina

开发

# 运行测试
go test ./...

# 运行测试并计算覆盖率
go test -cover ./...

# 构建
go build -o jina ./cli

# 交叉编译
GOOS=linux GOARCH=amd64 go build -o jina-linux-amd64 ./cli
GOOS=darwin GOARCH=arm64 go build -o jina-darwin-arm64 ./cli
GOOS=windows GOARCH=amd64 go build -o jina-windows-amd64.exe ./cli

项目结构

jina-cli/
├── cli/
│   ├── main.go          # 入口
│   ├── read.go          # read 命令
│   ├── search.go        # search 命令
│   ├── config.go        # config 命令
│   └── pkg/
│       ├── api/         # HTTP 客户端
│       ├── config/      # 配置管理
│       └── output/      # 输出格式化
└── scripts/
    └── install.sh       # 安装脚本

许可证

MIT License

致谢


💰 打赏

如果该项目帮助了您,欢迎请作者喝杯咖啡 ☕️

微信打赏

微信打赏码


🧑‍💻 作者

geekjourneyx

关注公众号,获取更多 AI 编程、AI 工具与 AI 出海建站的实战分享:

公众号:极客杰尼


English

Overview

jina is a lightweight CLI tool that wraps the Jina AI Reader API to convert any URL into LLM-friendly input. Perfect for reading X (Twitter), blogs, news sites, and other complex web pages.

Features:

  • read - Extract content from URLs in Markdown/Text/HTML format
  • search - Search the web with AI-powered result processing

Installation Guide

jina offers two independent installation methods. Choose based on your use case:

Method 1: Claude Code Skill (Recommended for AI-Assisted Development)

Use case: Using jina within Claude Code with AI assistance

Installation steps:

# 1. Ensure Node.js and Claude Code are installed
node --version
# v18.0.0 or higher

# 2. Install jina skill
npx skills add https://github.com/geekjourneyx/jina-cli --skill jina-cli

Verify installation:

# You can now use jina commands directly in Claude Code
# No additional steps needed, skill loads automatically

You get:

  • ✅ Direct access to jina read and jina search commands in Claude Code
  • ✅ AI automatically understands jina's functionality
  • ✅ No manual CLI binary installation required

Method 2: CLI Binary (Recommended for Terminal/Scripting)

Use case: Using in terminal/scripts, or integrating with other tools

One-line Installation (Linux/macOS)

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

The installation script automatically:

  1. Detects your system architecture (Linux/macOS, amd64/arm64)
  2. Downloads the appropriate binary for your platform
  3. Installs to ~/.local/bin/jina or ~/bin/jina
  4. Prompts to add to PATH if needed

Verify Installation

# Check if installation succeeded
jina --version
# Expected output: jina version 1.0.0 (build: ..., commit: ...)

# Test basic functionality
jina read --url "https://example.com"

Manual Installation

If auto-install fails, download manually:

# 1. Download binary for your platform
# Linux amd64:
wget https://github.com/geekjourneyx/jina-cli/releases/latest/download/jina-linux-amd64 -O jina
chmod +x jina
sudo mv jina /usr/local/bin/

# macOS ARM64 (Apple Silicon):
wget https://github.com/geekjourneyx/jina-cli/releases/latest/download/jina-darwin-arm64 -O jina
chmod +x jina
sudo mv jina /usr/local/bin/

# 2. Verify installation
jina --version

Build from Source

git clone https://github.com/geekjourneyx/jina-cli.git
cd jina-cli
go build -o jina ./cli
sudo mv jina /usr/local/bin/

Comparison

Feature OpenClaw Skill Claude Code Skill CLI Binary
Install location ~/.openclaw/workspace/skills/jina-cli/ ~/.claude/skills/ ~/.local/bin/jina
Environment OpenClaw local AI assistant Claude Code Any terminal/script
AI integration AI understands functionality AI understands functionality Manual invocation
File system access ✅ Full access ❌ Limited ✅ Full access
Script execution ✅ Can run scripts ❌ Limited ✅ Full access
Updates Re-download / npx skills update npx skills update Re-run install script
Best for Local AI assistant, automation AI-assisted development Script integration, daily use

Recommendations:

  • OpenClaw → Most capable, runs locally, full system access
  • Claude Code → Best dev experience, AI-assisted coding
  • CLI Binary → Lightweight, perfect for scripts

Note: The three methods are completely independent. Install any or all without conflicts.


Quick Start

Read Web Content

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

# Read X (Twitter) post
jina read -u "https://x.com/user/status/123456789" --with-alt

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

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

Batch Processing

# Read from URL list file
cat > urls.txt << EOF
https://example.com/page1
https://example.com/page2
https://x.com/user/status/123
EOF

jina read --file urls.txt

Web Search

# Search for a query
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

Configuration

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

# List all configuration
jina config list

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

# Get single configuration
jina config get timeout

# Show config file path
jina config path

Configuration Options

Key Env Var Default Description
api_base_url JINA_API_BASE_URL https://r.jina.ai/ Read API URL
search_api_url JINA_SEARCH_API_URL https://s.jina.ai/ Search API URL
default_response_format JINA_RESPONSE_FORMAT markdown Response format
default_output_format JINA_OUTPUT_FORMAT json Output format
timeout JINA_TIMEOUT 30 Request timeout (seconds)
with_generated_alt JINA_WITH_GENERATED_ALT false Enable image captioning
proxy_url JINA_PROXY_URL "" Proxy server
api_key JINA_API_KEY "" API key for higher rate limits

Priority: CLI args > Env vars > Config file > Defaults

API Key Usage

Adding an API key provides higher rate limits:

# Method 1: Set via config file
jina config set api_key jina_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# Method 2: Set via environment variable
export JINA_API_KEY=jina_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# Method 3: Pass via command line
jina read -u "https://example.com" -k jina_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Get your API key: Visit Jina AI Reader to sign up.

Output Formats

JSON Format (Default)

{
  "success": true,
  "data": {
    "url": "https://example.com",
    "title": "Example Domain",
    "content": "# Example Domain\n\nThis domain is..."
  }
}

Markdown Format

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

Output:

# Example Domain

**Source**: https://example.com

---

# Example Domain

This domain is for use in illustrative examples...

Advanced Usage

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

# Extract specific element only
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"

Handle SPA Apps

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

Set Cookie

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

AI Agent Integration

# Use with Claude Code or other AI tools
jina read -u "https://x.com/elonmusk/status/123456" --output json

# Search for latest information
jina search -q "golang 1.24 release notes" --output json

Command Reference

jina - CLI tool for Jina AI Reader and Search APIs

Usage:
  jina [command]

Available Commands:
  read        Extract and convert content from URLs
  search      Search the web with AI-powered results
  config      Manage configuration
  completion  Generate shell completion
  help        Help about any command

Flags:
  -a, --api-base string   API base URL (overrides config)
  -k, --api-key string    API key (overrides config)
  -o, --output string     Output format: json, markdown (default "json")
  -v, --verbose           Verbose output
  -h, --help              help for jina
      --version           version for jina

Development

# Run tests
go test ./...

# Run tests with coverage
go test -cover ./...

# Build
go build -o jina ./cli

# Cross-compile
GOOS=linux GOARCH=amd64 go build -o jina-linux-amd64 ./cli
GOOS=darwin GOARCH=arm64 go build -o jina-darwin-arm64 ./cli
GOOS=windows GOARCH=amd64 go build -o jina-windows-amd64.exe ./cli

License

MIT License

Acknowledgments


💰 Sponsor

If this project helped you, consider buying me a coffee ☕️

WeChat Pay

WeChat Pay QR Code


👨‍💻 Author

geekjourneyx

Follow for more insights on AI coding, AI tools, and AI-powered global website building:

WeChat Official Account: Geek Journey