dsh-plugins/dsh-auxiliary ↗★ 12
@dsh-plugin/dsh-auxiliary
DeepSeek Harness plugin that uses configured model providers for image analysis and context compaction. 提供图像分析和上下文精简功能,适合需要处理多模态输入或长文本优化的任务。
같은 패키지 이름의 다른 저장소
설치
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:dsh-plugins/dsh-auxiliaryConfiguration
All fields are optional; defaults are shown.
- name: '@dsh-plugin/dsh-auxiliary'
config:
vision:
maxTokens: 2048 # inspect_image output cap (provider/model written by the settings page)
handoff: true # text-only main models may reference chat images via describe_image
skipWhenMainModelSupportsImage: false # image-capable main models get no vision tools/prompt injected
tool:
enabled: true # register the inspect_image tool
maxImageBytes: 10485760 # per-file size cap
timeoutMs: 120000 # cooperative tool-call budget
compact:
enabled: false # reroute compaction summaries to an auxiliary model
provider: "" # e.g. deepseek-official (a registered provider route id)
model: "" # e.g. deepseek-chat (a model id on that provider)
approve:
enabled: false # give @dsh-plugin/dsh-approve-for-me's reviews a dedicated model
provider: "" # e.g. deepseek-official (a registered provider route id)
model: "" # e.g. deepseek-chat (a model id on that provider)
subagent:
enabled: false # route delegated subagents to a dedicated model
provider: "" # e.g. deepseek-official
model: "" # e.g. deepseek-chat
title:
enabled: false # route session-title calls to a dedicated model
provider: "" # e.g. deepseek-official
model: "" # e.g. deepseek-chat
imagegen:
enabled: false # register generate_image with a dedicated image model
provider: "" # e.g. lanqin-gpt (an OpenAI-compatible provider route)
model: "" # e.g. gpt-image-2 (marked Allow image generation)
engine:
enabled: false # optional compression engine (mutually exclusive with dsh-compaction-basic)
thresholdRatio: 0.8
retainRatio: 0.16
maxTokens: 8192
compactionRetries: 1
maxOverflowRetries: 1
auto: true
compressPrompt: "..." # custom compression instruction
Settings page: Auxiliary Models

The plugin ships a web settings section (Settings → Auxiliary Models). Configure providers and models in the Models page first, then use the feature cards here: each card has its own enable switch and provider/model picker. The picker presents all currently available models together, grouped by provider (the image-generation card lists only models marked Allow image generation). A saved route that is temporarily absent from the catalog is kept and is never replaced automatically.
Marking models in the catalog
For a user-configured llm-pi-ai model, open its model settings under
Settings → Models → Provider → Customized settings → Models → Model
settings:
- Allow image input writes the canonical
inputdeclaration ([text, image]when checked,[text]when cleared) — consumed byinspect_imageand the main chat composer. Enable only when the upstream endpoint actually accepts images. - Allow image generation writes
imageGeneration: true— the mark that makes the model selectable in the Image-generation model card. Enable only when the upstream endpoint actually generates images.
The checkboxes are injected into every user-owned llm-pi-ai model row, inside
the same capacity disclosure as the Context window and Max output tokens
fields, so they stay out of the way until that row fold is expanded. A model you
are adding inside the custom-provider create card gets working checkboxes
too; a row added without a model id shows both checkboxes disabled inside that
fold until an id is typed, and editing an existing model id carries its saved
capability marks to the new id. A changed mark is recorded in the browser first
and written after the page saves the provider settings (Apply), so you can edit
other model fields alongside image capabilities without tripping the page's own
"settings changed elsewhere" revision conflict. Rows that cannot carry the
marks explain why instead of staying silent: DeepSeek-official (or any
non-pi-ai adapter) rows show a notice that the marks are llm-pi-ai-only, and
pi-ai catalog rows not yet saved into the user section say to save the model
first.
The same fold also exposes thinking-level configuration: a list of rows
adds/removes levels (only off, minimal, low, medium, high, xhigh,
max), a pencil button batch-edits text such as [low, high, max] and rejects
the whole input when any entry is invalid, and the default-thinking dropdown
offers only the levels present in the list. New models start with an empty list
and no default. These read and write the OFFICIAL model reasoningEfforts
field (level → same-name wire token, off → null) and the provider-level
reasoning default — the very data pi-ai uses to decide whether a model is a
reasoning model and to render the composer's reasoning-effort picker, so this
editor is just an authoring surface for the official mechanism, with no
plugin-owned storage. Changes are still written only after the provider card
Apply closes, so they never race the page's revision checks.
Previous versions stored the levels in plugin-owned fields (
thinkingLevels/defaultThinkingLevel); the first save after upgrading migrates them to the official fields and drops the old ones.