About unblind
unblind is a Claude skill that routes image analysis through a vision API and returns text. It supports description, OCR, UI review, chart data, object detection, and image comparison, while requiring use of its bundled script.
Key features
- 01Route images to a vision API
- 02Describe images and extract text
- 03Review UI layouts and UX
- 04Analyze charts and detect objects
- 05Compare images
Use cases
- 01Extract text from an image
- 02Review a screen layout
- 03Describe an image or compare images
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ santazuki/ unblind --skill unblindAfter installing, type/unblindin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
.gitignoreLICENSEREADME.mdTEST.mdinstall.sh.github/workflows/publish.ymlci.ymldisplay/2026-05-30-provider-v3-protocol-driven-design.mdprovider-optimization.mddocs/test-results/gpt-rebuttal-report.mdstep1-logger-errorHandler.mdstep15-validation-tests.mdstep11-health-config.mdstep10-cache.mdstep14-phase0-silent.mdstep13-openai-provider.mdstep12-cache-granularity.mdstep16-ci-circuitbreaker-fix.mdstep17-phase3-chain-registry.mdstep18-phase5-test.mdstep3-credentialManager.mdstep19-gemini-provider.mdstep2-config.mdstep6-provider-mimo.mdstep4-retry.mdstep7-orchestrator.mdstep5-imageProcessor.mdstep9-regression.mdstep8-cli.mdresources/troubleshooting.mdDetails
From the project READMEUnblind
Route images to vision API. Never pretend to see. Never Read/Edit settings.json.
Iron Rules
- Phase 0 mandatory every invocation
- NEVER Read/Edit
~/.claude/settings.json - Config via CLI (
--config,--set-model) ornode -e, never via tools - Never preamble. Never hallucinate. Always invoke bundled script.
- Tool reads API key from env automatically
Quick Start
User sends image → Unblind routes to Mimo/OpenAI → returns text. OCR → extracts all text. ui-review → critiques layout/UX. describe → detailed description.
Phase 0: Self-Healing
0.1 Health check
node -e "const fs=require('fs');const os=require('os');const p=require('path').join(os.homedir(),'.claude','settings.json');const s=JSON.parse(fs.readFileSync(p,'utf8'));const issues=[];if(!s.env?.MIMO_API_KEY) issues.push('KEY_MISSING');if(!s.env?.MIMO_VISION_MODEL||s.env.MIMO_VISION_MODEL==='mimo-v2.5-pro') issues.push('MODEL_MISSING');const a=s.permissions?.allow||[];if(!a.some(x=>x.includes('unblind'))) issues.push('PERM_MISSING');if(issues.length) console.log(issues.join(' '));" 2>/dev/null
- Empty → healthy, skip to Phase 1
KEY_MISSING→ 0.3 |MODEL_MISSING→ 0.5 |PERM_MISSING→ 0.4
0.2 Version check
cd ~/.claude/skills/unblind && git fetch 2>/dev/null && behind=$(git rev-list HEAD..origin/master --count 2>/dev/null) && [ "$behind" -gt 0 ] && echo "NEEDS_UPDATE $behind"
NEEDS_UPDATE <N>→ 🐌unblind 有 N 个更新没拿... git pull 一下嘛~(不阻塞)
0.3-0.9 Repair → Phase 1
See resources/phase0-details.md. All healthy → Phase 1.
Phase 1-4: Analyze
- Detect image path from
[Image: source: <path>]. Must be absolute, supported ext, no shell metacharacters. - Classify mode:
describe(default),ocr,ui-review,chart-data,object-detect,compare. - Execute:
node ~/.claude/skills/unblind/scripts/unblind.mjs '<path>' <mode>— no preamble. - Report: print stdout. API key error → back to 0.3.
Resources
resources/phase0-details.md— 完整 Phase 0 流程、CLI 参考、边缘场景resources/troubleshooting.md— 修复命令、常见错误、Node.js 配置resources/best_practices.md— 模型选择、token 优化、调试README.md— 安装指南、安全验证
Comments
Markdown supported