dsh-resource-guard
v0.1.7
Published
DeepSeek Harness plugin: intelligently guards local-model memory (semaphore + memory budget + queue + live overview) so image/voice/LLM tasks never exhaust RAM. Exposes the dsh_resource tool and a resourceGuard service other plugins consume.
Maintainers
Readme
dsh-resource-guard
DeepSeek Harness plugin that intelligently guards local-model memory. It acts as a semaphore + memory budget so image generation, voice synthesis and local LLM tasks can never exhaust RAM on the same machine — for example, it refuses a new local image job while a local LLM is already loaded.
Features
resourceGuardservice — other plugins callctx.get("resourceGuard")toacquire()/release()reservations before starting a local model.dsh_resourcetool — model-callable:status,models,reserve,release.- Settings section — configure the policy and memory budget from the Harness settings UI, with a live RAM/reservation overview.
- Three policies —
auto(one local model within budget),strict(one at a time),off(no guarding).
Install
dsh plugin --profile web add dsh-resource-guardThen add dsh-resource-guard to dsh.profile.bundles and dependencies in
~/.dsh/profiles/web/package.json, and run dsh plugin --profile web install.
Usage
Ask the agent:
dsh_resource action=status— RAM, reservations, running Ollama models.dsh_resource action=models— list local Ollama models with sizes.dsh_resource action=reserve label="image job" estGb=6— reserve memory.dsh_resource action=release reservationId=rsv-1— free a reservation.
Settings
| Field | Type | Default | Meaning |
| --- | --- | --- | --- |
| policy | auto|strict|off | auto | Reservation policy. |
| memoryBudgetGb | number | 0 | Memory budget; 0 = 85% of total RAM. |
Settings are stored in the resource-guard namespace of the Harness settings
document (~/.dsh/settings.yaml).
Architecture
- Host (
lib/index.js) — provides theresourceGuardservice, registers thedsh_resourcetool, publishes a status snapshot into the read-onlyresource-guard-statusnamespace. - Client (
lib/client.js) — asettings.sectionslot showing policy/budget controls and the live status.
License
MIT
