vision

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Vision (delegated image understanding)

Vision(委托式图片理解)

You do not have native vision, but you can still "see" an image by running the bundled script, which sends the image to a configurable OpenAI-compatible vision model and returns a text answer.
您不具备原生视觉能力,但可以通过运行附带的脚本“看见”图片,该脚本会将图片发送至可配置的兼容OpenAI的视觉模型,并返回文本结果。

When to use

使用场景

Use this skill whenever a task requires understanding image content and you cannot view it directly, for example:
  • The user uploads or points to an image / screenshot / photo and asks what's in it.
  • You need to read text inside an image (OCR).
  • You need to diagnose an error from a screenshot.
  • You need to understand a UI mockup, diagram, chart, or scanned document.
  • You need to compare what an image shows against code or expected output.
当任务需要理解图片内容而您无法直接查看时,即可使用此技能,例如:
  • 用户上传或指向某张图片/截图/照片并询问其中内容。
  • 您需要提取图片中的文字(OCR)。
  • 您需要通过截图诊断错误。
  • 您需要理解UI原型、示意图、图表或扫描文档。
  • 您需要对比图片显示内容与代码或预期输出。

How to use

使用方法

Run the script with the Bash tool. Pass the image (local path or http(s) URL) and a clear, specific instruction describing what you need to know:
bash
python3 "$CLAUDE_SKILL_DIR/scripts/see.py" <image_path_or_url> "your question"
If
$CLAUDE_SKILL_DIR
is not set in your environment, use the relative path to this skill folder, e.g.
python3 scripts/see.py ...
from the skill directory, or the absolute path where the skill is installed.
Examples:
bash
undefined
使用Bash工具运行脚本。传入图片(本地路径或http(s) URL)以及清晰、明确的指令说明您需要了解的信息:
bash
python3 "$CLAUDE_SKILL_DIR/scripts/see.py" <image_path_or_url> "your question"
如果您的环境中未设置
$CLAUDE_SKILL_DIR
,请使用此技能文件夹的相对路径,例如在技能目录下使用
python3 scripts/see.py ...
,或使用技能安装的绝对路径。
示例:
bash
undefined

Describe an image

描述图片内容

python3 scripts/see.py ./photo.jpg "Describe this image in detail"
python3 scripts/see.py ./photo.jpg "Describe this image in detail"

OCR — extract text

OCR——提取文字

python3 scripts/see.py ./receipt.png "Transcribe all text exactly, preserving layout"
python3 scripts/see.py ./receipt.png "Transcribe all text exactly, preserving layout"

Diagnose an error screenshot

诊断错误截图

python3 scripts/see.py ./error.png "What error is shown and what is the likely cause?"
python3 scripts/see.py ./error.png "What error is shown and what is the likely cause?"

Read a chart into structured data

将图表内容转换为结构化数据

python3 scripts/see.py ./chart.png "Extract every series, label, and value as a markdown table"
python3 scripts/see.py ./chart.png "Extract every series, label, and value as a markdown table"

Remote image

远程图片

python3 scripts/see.py "https://example.com/diagram.png" "Explain this architecture diagram"

The script prints the model's answer to stdout. Read that answer and use it to
continue the task. Ask a focused question rather than a generic "describe" when
you need something specific (a value, a status, an error message) — you get
better results and spend fewer tokens.
python3 scripts/see.py "https://example.com/diagram.png" "Explain this architecture diagram"

脚本会将模型的结果打印到标准输出。读取该结果并继续完成任务。当您需要特定信息(某个数值、状态、错误信息)时,请提出针对性问题,而非泛泛的“描述”——这样能获得更好的结果,且消耗更少的token。

Configuration (required, set once)

配置(必填,仅需设置一次)

The script reads its config from environment variables or a
.claude/settings.json
env
block (same variable names as the vision-mcp-server MCP, so config carries over). Resolution order: an explicit environment variable wins; otherwise the script reads
.claude/settings.json
, searching from the current directory upward and then
~/.claude/
.
VariableRequiredExample
VISION_BASE_URL
yes
http://localhost:1234/v1/chat/completions
VISION_MODEL
yes
Qwen3-VL-32B
,
gpt-4o
,
glm-4v
, ...
VISION_API_KEY
no*your API key (*optional for local servers)
VISION_MAX_TOKENS
no
4096
VISION_TEMPERATURE
no
0.2
VISION_DETAIL
no
auto
|
low
|
high
VISION_TIMEOUT
no
120
VISION_BASE_URL
must be the full chat-completions endpoint (
.../v1/chat/completions
), not just the base URL.
Set them in your shell profile, or in the MCP/agent
env
block, or inline:
bash
export VISION_BASE_URL=http://localhost:1234/v1/chat/completions
export VISION_MODEL=Qwen3-VL-32B
export VISION_API_KEY=sk-...        # optional for local
Or put them in
.claude/settings.json
(project-level, or global
~/.claude/
):
jsonc
{
  "env": {
    "VISION_BASE_URL": "http://localhost:1234/v1/chat/completions",
    "VISION_MODEL": "Qwen3-VL-32B",
    "VISION_API_KEY": "sk-..."
  }
}
脚本从环境变量
.claude/settings.json
env
块中读取配置(变量名称与vision-mcp-server MCP相同,因此配置可通用)。优先级:显式设置的环境变量优先;否则脚本会从当前目录向上搜索
.claude/settings.json
,若未找到则查找
~/.claude/
目录下的文件。
变量名是否必填示例
VISION_BASE_URL
http://localhost:1234/v1/chat/completions
VISION_MODEL
Qwen3-VL-32B
,
gpt-4o
,
glm-4v
, ...
VISION_API_KEY
否*您的API密钥(*本地服务器可选)
VISION_MAX_TOKENS
4096
VISION_TEMPERATURE
0.2
VISION_DETAIL
auto
|
low
|
high
VISION_TIMEOUT
120
VISION_BASE_URL
必须是完整的聊天补全端点(
.../v1/chat/completions
),而非仅基础URL。
您可以在shell配置文件中设置这些变量,或在MCP/agent的
env
块中设置,也可直接在命令行中设置:
bash
export VISION_BASE_URL=http://localhost:1234/v1/chat/completions
export VISION_MODEL=Qwen3-VL-32B
export VISION_API_KEY=sk-...        # 本地服务器可选
或者将其放入
.claude/settings.json
中(项目级或全局
~/.claude/
目录下):
jsonc
{
  "env": {
    "VISION_BASE_URL": "http://localhost:1234/v1/chat/completions",
    "VISION_MODEL": "Qwen3-VL-32B",
    "VISION_API_KEY": "sk-..."
  }
}

Notes

注意事项

  • Pure Python standard library — no
    pip install
    needed.
  • Local files are auto-converted to a base64 data URL; http(s) URLs are passed through.
  • If the script reports a missing variable or an unreachable endpoint, fix the config above and retry. Add
    --dry-run
    to inspect the request without sending it:
    python3 scripts/see.py --dry-run img.png "test"
    .
  • 基于纯Python标准库——无需执行
    pip install
    安装依赖。
  • 本地文件会自动转换为base64数据URL;http(s)URL会直接传递。
  • 如果脚本提示缺少变量或端点不可达,请修复上述配置并重试。添加
    --dry-run
    参数可在不发送请求的情况下检查请求内容:
    python3 scripts/see.py --dry-run img.png "test"