baldovinmarques391-design/dsh-computer-control ↗★ 0

dsh-computer-control

Turn desktop operation into discrete tool calls that each return the frames captured around the call. 适合需要让智能体执行桌面控制并获取反馈的任务。

패키지
dsh-computer-control
호환성
미검증
Harness peer 범위
>=0.1.7-rc.2 <0.3.0
버전
0.1.0
라이선스
MIT
최근 업데이트
2026. 10. 3.

같은 패키지 이름의 다른 저장소

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:baldovinmarques391-design/dsh-computer-control

Configuration

Every value below is a Config field; override the row in your profile's cordis.patch.yml, restating the keys you keep, because a patch replaces a row's whole config.

KeyDefaultMeaning
capturesPerSecond10Frame rate the recorder produces
maxFrames2Frames returned by one call (1 to 20): the pre-action reference and the settled end state. computer_frames is capped lower, at 16
maxAttachedImages2Frames attached as images (0 to 19); further frames are still saved to disk and their paths printed
changeThreshold0.003Signature movement that counts as a change
settleMs700Extra capture after the action completes
settleRunFrames2Consecutive unchanged tail frame pairs required before the envelope calls the window settled
maxWindowMs15000Ceiling on one capture window (200 to 120000); also sizes the tool timeout
maxWaitSeconds10Longest passive watch
maxTypeChars2000Longest string computer_type accepts (up to 20000)
maxScrollClicks10Largest wheel gesture, in notches
maxDragSteps120Largest drag step count
maxZoom8Largest integer zoom (1 to 16)
maxZoomedPixels16000000Pixel ceiling for one zoomed capture, checked before any allocation
frameMaxEdge1024Longest edge of a captured frame
frameQuality75JPEG quality, 1 to 100, for the in-process fallback capture only; recorded frames are encoded by ffmpeg under recorderQuality
ffmpegPathffmpegExecutable that records the screen
tempRoot``Directory for the staged helper, recorder ring, screenshots, and markers; empty means a directory under the system temp directory. A drive root and an extended-length path are refused when the plugin activates, since with either one the recorder cannot be kept and every call would fall back to the in-process capture
recorderQuality5ffmpeg -q:v for recorded frames, 1 to 31; lower is better quality and larger files
recorderBufferMs4000Recorded video a call can reach back through for its own first frame
recorderPrimeMs400Recorder lead time before input is injected
recorderIdleStopMs30000Grace period before an idle recorder is stopped
imageModeautoauto attaches frames when the route accepts images and the attachment service is mounted; text never attaches. The route's own capability is still resolved, so the envelope can say whether read_image would work for a frame already on disk
captureTimeoutMs20000Timeout budget for a capture or probe call
actionTimeoutSlackMs10000Added to maxWindowMs for an action tool timeout
compactionCleanupEnabledfalseDelete this conversation's images once a compaction has summarised them. Off by default: the cleanup is implemented and tested, but eight adversarial reviews each found a real defect in it, so it ships unarmed. With it false a compaction deletes nothing and every image stays on disk. Arming it is a decision, not a default — see DELIVERY.md
desktopTargetlocalWhich desktop the screen and input work happens on. agent is the relayed instance's desktop — the agent's own, by default the deputy account; user is this process's own Windows session — the person at the keyboard; auto prefers agent and falls back to user only when the relay cannot be reached at all, never retrying a command the relay actually answered, because a relay that was reached may already have performed the action and repeating it on the user's desktop would be a second action nobody asked for (every fallback is logged). local and relay are mechanism-named spellings of user and agent. A deployment fact rather than a preference: ffmpeg's gdigrab and SendInput act only on the calling process's own session, so an instance that must drive a different account's desktop has to delegate to one running there
relayUrl""Origin of the relay instance, used when desktopTarget is agent, relay, or auto, for example http://127.0.0.1:3079. Only loopback is accepted
relayToken""Bearer token for the relay protocol. Setting it on an instance installs that instance's /relay route; empty means the route does not exist at all
relayTimeoutMs60000Ceiling for one forwarded command, so a hung relay cannot hold a tool call open indefinitely
agentAccount""Windows account this deployment runs automated sessions as. Together with userAccount it enables the account paragraph; while either is empty the paragraph is absent, which is the default
userAccount""Windows account the person at the keyboard uses, named in the account paragraph
userDesktop""That person's desktop path, named in the account paragraph. Empty leaves it unmentioned, which is right when it is the profile's own Desktop folder
userDocuments""That person's documents path, named in the account paragraph. Empty leaves it unmentioned