ZhuXinAI/sidesight ↗★ 2

sidesight

为纯文本编程Agent提供视觉辅助通道 适合需要让不支持多模态的编程模型通过OCR识别图片的用户。

包名
sidesight
兼容性
待验证
版本
0.1.3
许可证
MIT
最近更新
2026年8月14日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:ZhuXinAI/sidesight

Configuration

Precedence is CLI flags, environment variables, saved user config, then profile defaults. sidesight setup writes provider settings to ~/.sidesight/config.json with directory mode 0700 and file mode 0600. Set SIDESIGHT_CONFIG_DIR or SIDESIGHT_CONFIG_FILE to use another location. Use sidesight config init to create a non-secret template and sidesight config show to inspect resolved values.

Important variables:

SIDESIGHT_API_KEY
SIDESIGHT_BASE_URL
SIDESIGHT_MODEL
SIDESIGHT_PROFILE
SIDESIGHT_PROVIDER           # cloud/auto by default; local selects native OCR
SIDESIGHT_ALLOWED_DIRS       # optional; needed for media outside the current directory
SIDESIGHT_MAX_IMAGE_MB       # default 10
SIDESIGHT_MAX_VIDEO_MB       # default 50
SIDESIGHT_MAX_ZOOM_ROUNDS    # default 3
SIDESIGHT_TIMEOUT_SECONDS    # default 120
SIDESIGHT_DROP_DIR
SIDESIGHT_FFMPEG_PATH

Provider compatibility at a glance:

ProfileDefault endpointDefault modelImagesNative video
opencode-goOpenCode Go /v1mimo-v2.5OpenAI-compatible image_urlNo; bounded ffmpeg frames
generichttp://localhost:8000/v1vision-modelOpenAI-compatible image_urlNo; bounded ffmpeg frames
localon-devicemacos-visionmacOS Vision OCR onlyNo

Any provider that accepts the documented OpenAI-compatible multimodal chat-completions shape can use generic.

SIDESIGHT_ALLOWED_DIRS is not required for the usual case: by default the current working directory is allowed. Set it when an image or video lives elsewhere, for example export SIDESIGHT_ALLOWED_DIRS="$HOME/Screenshots:$PWD" on Unix-like systems. Keeping the allowlist narrow prevents accidental access to unrelated local files.

Normalized regions use x,y,width,height in the range 0..1, measured from the full original image:

sidesight ocr screenshot.png --region 0.65,0.70,0.35,0.30 \
  --question "Read every visible character"

overview makes one bounded pass. normal, fine, and auto may inspect a bounded full-resolution crop. Crops are always made from the original, never from a resized crop. Zoom rounds, provider calls, image count, dimensions, media sizes, video frames, and output tokens are bounded.