zcXie777/dsh-image-reader
Give DeepSeek Harness agents native image reading: a read_image tool backed by any OpenAI-compatible vision endpoint.
이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.
업스트림에서 중국어 README를 제공하지 않아 저장소 원본 내용을 표시합니다.
dsh-image-reader
Give a text-only DeepSeek Harness agent the ability to read images directly: one model-facing read_image tool that asks any OpenAI-compatible vision endpoint about an image by its workspace path.
Why
DeepSeek Harness is "everything is a plugin". This bundle mounts a single tool so the model can look at a screenshot, diagram, or photograph and answer questions about it, instead of only ever reasoning over text.
Verification status
- Verified locally:
npm run typecheck,npm run build, andnpm test(16 tests) all pass. - Not yet verified: a real end-to-end read against a live vision endpoint. The request/response logic is covered by a mocked-fetch unit test, but the plugin has not been smoke-tested inside a running dsh profile against a real multimodal model. Do that once with a real
VISION_API_KEYbefore relying on it.
Install
git clone https://github.com/zcXie777/dsh-image-reader.git
cd dsh-image-reader
npm install
npm run build # lib/ is not committed; build once after cloning
cd ..
dsh plugin --profile web add "$PWD/dsh-image-reader"
dsh plugin --profile headless add "$PWD/dsh-image-reader"
dsh --profile web --dump-config | grep image-reader
Restart a running Web profile after installing.
Configure
provider.baseUrl and provider.model are required; the plugin never assumes a vendor. Override them in the profile patch row with the same id:
- id: image-reader
config:
provider:
baseUrl: https://api.openai.com/v1
model: gpt-4o-mini
apiKeyEnv: VISION_API_KEY
lang: zh
timeoutMs: 60000
maxImageBytes: 10485760
allowedDirs: []
Set the key in the environment before starting the profile:
export VISION_API_KEY=sk-...
Use
In a conversation, point the model at an image path and ask:
read_image image="screenshot.png" query="What error is shown in this dialog?"
read_image image="diagram.png"
Configuration fields
| Field | Default | Contract |
|---|---|---|
provider.baseUrl | — (required) | OpenAI-compatible chat/completions base URL |
provider.model | — (required) | Multimodal model name |
provider.apiKeyEnv | VISION_API_KEY | Environment variable holding the API key |
lang | zh | Answer language: zh or en |
timeoutMs | 60000 | Whole-request deadline, 1000–600000 ms |
maxImageBytes | 10485760 | Encoded-byte limit per image |
allowedDirs | [] | Extra realpath-resolved input roots; the workspace is always allowed |
Security
- Inputs resolve against the workspace and
allowedDirsthroughrealpath, so a symlink cannot escape the fence. - Images are size-limited and extension-checked before upload.
- The key is read from the environment per call, never stored in config.
Development
npm install
npm run typecheck
npm run build
Publish
Tag the repo with the dsh-plugin topic so it is discoverable, and publish to npm when ready.
License
MIT
보안 및 설치 증거
이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.
공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.
저장소가 MIT 라이선스를 선언했습니다.
최근 180일 내 코드 업데이트가 있습니다.
재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.
검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.