xiincs/vision
Call vision models (Doubao, Qwen, OpenAI) to analyze images. Use when you need to understand screenshots, UI layouts, diagrams, or any image content. Supports png/jpg/webp/gif.
npx skills add https://github.com/xiincs/claude-code-vision-skill --skill vision
Multi-provider vision tool. Call various vision models to describe images. Feed it a prompt + image path, get back a text description.
If you can already see and understand the image yourself (native multimodal model), skip this tool — analyze it directly.
A SessionStart hook normally announces this session's routing status up front. If that context isn't visible (e.g. compacted out of a long conversation, or the hook isn't installed), check before calling this tool:
python vision.py --check-routing
native → you already have native image understanding this session; don't call this tool.external (default) → proceed with the quick start below.python vision.py [--provider <name>] <image_path> <prompt>
When --provider is omitted, the provider is resolved by: --provider flag > VISION_PROVIDER env > first API key found.
DOUBAO_API_KEYdoubao-seed-2-0-pro-260215DOUBAO_BASE_URLDASHSCOPE_API_KEYqwen-vl-maxDASHSCOPE_BASE_URLqwen-vl-max, qwen-vl-plus, qvq-maxOPENAI_API_KEYgpt-4oOPENAI_BASE_URLANTHROPIC_API_KEYclaude-sonnet-5ANTHROPIC_BASE_URLanthropic package (pip install anthropic); it's imported lazily so other providers work without it.Any --provider name outside the built-in four is resolved dynamically from
environment variables named after it — no code changes needed:
| Env Var | Required | Notes |
|---------|----------|-------|
| {NAME}_API_KEY | yes | checked at request time, same as built-ins |
| {NAME}_BASE_URL | yes | no default — arbitrary endpoint |
| {NAME}_MODEL | yes | no default (or set global VISION_MODEL instead) |
| {NAME}_PROTOCOL | no | openai (default) or anthropic — picks the request shape |
openai covers essentially every OpenAI-compatible endpoint (vLLM, Ollama,
LiteLLM, OpenRouter, Azure OpenAI, self-hosted proxies, ...). Use
{NAME}_PROTOCOL=anthropic only if the endpoint speaks the Anthropic Messages
API shape.
export MYAPI_API_KEY="sk-xxx"
export MYAPI_BASE_URL="https://my-endpoint.example.com/v1"
export MYAPI_MODEL="my-vision-model"
python vision.py --provider myapi "screenshot.png" "describe this"
If {NAME}_BASE_URL or {NAME}_MODEL is missing, the tool prints exactly which
variables to set instead of a generic "unknown provider" error.
| Env Var | Scope | Default |
|----------|-------|---------|
| VISION_PROVIDER | Default provider (built-in or custom name) | auto-detect (built-ins only) |
| VISION_MODEL | Override model (all providers) | provider default |
| {PROVIDER}_MODEL | Override model (per provider) | — |
| {PROVIDER}_BASE_URL | Override/define endpoint (per provider) | built-in default, or required for custom |
| {PROVIDER}_PROTOCOL | Request shape for a custom provider: openai \| anthropic | openai |
| VISION_TEMPERATURE | Response creativity 0–1 | 0 |
| VISION_MAX_TOKENS | Max response tokens | 4096 |
Note: auto-detect (no --provider / VISION_PROVIDER set) only scans the four
built-in providers' API keys — a custom provider must always be named explicitly.
# Auto-detect provider from API keys
python vision.py "screenshot.png" "Describe the page layout and any visible UI issues."
# Explicit provider
python vision.py --provider qwen "mockup.png" "List all components, colors, and spacing patterns."
# Custom model
QWEN_MODEL=qvq-max python vision.py --provider qwen "diagram.png" "Explain the architecture."
# GPT-4o for visual regression
python vision.py -p openai "after.png" "Compare with app design spec, flag differences."
# Fully custom provider (self-hosted, third-party proxy, any OpenAI-compatible endpoint)
MYAPI_API_KEY=sk-xxx MYAPI_BASE_URL=https://host/v1 MYAPI_MODEL=my-model \
python vision.py --provider myapi "ui.png" "Analyze layout issues"
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Improves the quality of images, especially screenshots, by enhancing resolution, sharpness, and clarity. Perfect for preparing images for presentations, documentation, or social media posts.
Downloads videos from YouTube and other platforms for offline viewing, editing, or archival. Handles various formats and quality options.
Lightweight WSI tile extraction and preprocessing. Use for basic slide processing tissue detection, tile extraction, stain normalization for H&E images. Best for simple pipelines, dataset preparation, quick tile-based analysis. For advanced spatial proteomics, multiplexed imaging, or deep learning pipelines use pathml.
Microscopy data management platform. Access images via Python, retrieve datasets, analyze pixels, manage ROIs/annotations, batch processing, for high-content screening and microscopy workflows.
Python library for working with DICOM (Digital Imaging and Communications in Medicine) files. Use this skill when reading, writing, or modifying medical imaging data in DICOM format, extracting pixel data from medical images (CT, MRI, X-ray, ultrasound), anonymizing DICOM files, working with DICOM metadata and tags, converting DICOM images to other formats, handling compressed DICOM data, or processing medical imaging datasets. Applies to tasks involving medical image analysis, PACS systems, radiology workflows, and healthcare imaging applications.
This skill should be used when working with pre-trained transformer models for natural language processing, computer vision, audio, or multimodal tasks. Use for text generation, classification, question answering, translation, summarization, image classification, object detection, speech recognition, and fine-tuning models on custom datasets.
Take xiincs/vision from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference pip.
Without those the skill loads but fails at the first command.