tristan-mcinnis/dsh-browser-vision ↗★ 0
dsh-browser-vision
Browser tool for DeepSeek Harness that can see the page: drives a real Chrome over CDP with browser-use and reads it with deepseek-v4-flash-vision-exp, so canvas text, text inside images and rendered charts are readable. Schema-driven JSON extraction, Markdown output, and per-run token/cost accounting.
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:tristan-mcinnis/dsh-browser-vision说明文档
阅读完整 README ↗then parse $result with jq: .result, .steps, .usage.cost_usd, .error
```python
## Configuration
| Variable | Default | Meaning |
|---|---|---|
| `DEEPSEEK_API_KEY` | — | required (or `DEEPSEEK_API_KEY_OP`) |
| `DEEPSEEK_API_KEY_OP` | — | 1Password CLI secret reference (`op://Vault/Item/field`) resolved via `op read` |
| `DEEPSEEK_BASE_URL` | `https://api.deepseek.com` | OpenAI-compatible endpoint |
| `DEEPSEEK_MODEL` | `deepseek-v4-flash` | model used when vision is `off` |
| `DEEPSEEK_VISION_MODEL` | `deepseek-v4-flash-vision-exp` | model used when vision is `auto` or `on` |
| `DSBROWSER_VISION_MODE` | `auto` | `off` · `auto` · `on` (legacy `DSBROWSER_USE_VISION=true/false` still parses) |
| `DSBROWSER_SCREENSHOT_SIZE` | — | `WIDTHxHEIGHT` to downscale screenshots before upload |
| `HEADLESS` | `true` | headless browser (vision works either way) |
| `MAX_STEPS` | `20` | max agent steps per task |
| `DSBROWSER_CHROME_ARGS` | `--password-store=basic,--use-mock-keychain` | extra Chrome flags; defaults keep Chromium off the macOS keychain |
| `DSBROWSER_FLASH_MODE` | `true` | browser-use flash-mode prompt optimization |
| `DSBROWSER_USE_THINKING` | `false` | agent step-by-step thinking (slower, sometimes better) |
| `DSBROWSER_USE_JUDGE` | `false` | extra judge pass to validate completion (slower, costs more) |
| `DSBROWSER_ENABLE_PLANNING` | `false` | planner sub-agent for long tasks (slower) |
| `DSBROWSER_DISABLE_THINKING` | `true` | disable DeepSeek's native reasoning (`thinking: disabled`); ~10x fewer tokens and much lower latency |