CaveNightingale/dsh-rcon ↗★ 0

dsh-rcon

DeepSeek Harness plugin that bridges a Minecraft server's rcon console into an agent Session 适合需要通过智能体直接管理和控制 Minecraft 服务器的玩家或管理员。

Package
dsh-rcon
Compatibility
Unverified
Harness peer range
0.2.0-rc.2
Cordis peer range
~4.0.4
Version
0.1.0
Last updated
Oct 3, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:CaveNightingale/dsh-rcon

Configuration

The cordis.patch.yml shipped in this package deliberately carries no server and no credential: one insert row with an empty servers list, so loading it unconfigured fails immediately. The real configuration lives in the profile's own $DSH_HOME/profiles//cordis.patch.yml: outside every Session workspace, and its path is never given to the agent.

A patch replaces the whole row rather than deep-merging keys, so restate every key you want to keep:

- id: dsh-rcon
  config:
    servers:
      - name: main          # the model selects a server by this name
        host: 127.0.0.1
        port: 25575         # 25575 when omitted
        password: ''
      - name: creative
        host: 10.0.0.5
        password: ''
    defaultServer: main     # servers[0] when omitted
    idleTimeoutMs: 18000000 # five hours when omitted
    defaultWaitMs: 1000
    feedbackBatchMs: 1000
    connectTimeoutMs: 5000
    allowedPrefixes: [list, say, time, weather]
    otherwise: deny
FieldTypeDefaultMeaning
serversarray[]Each entry { name, host, port?, password }. Names are unique; an empty list fails at load
defaultServerstringservers[0].nameServer used when a call names none; must be configured
idleTimeoutMsinteger ≥118000000 (5h)How long a link may go without traffic before it is reclaimed
defaultWaitMsinteger ≥01000Wait window when a call omits wait_ms
feedbackBatchMsinteger ≥01000Merge window for post-window feedback, anchored at that group's first message
connectTimeoutMsinteger ≥15000Bound on the TCP connect plus login handshake
allowedPrefixesstring array[]Command prefixes that skip approval, matched against the dispatcher form. An empty or padded entry is rejected rather than rewritten or ignored
otherwiseask | denydenyPolicy for a command matching no prefix

Misconfiguration fails loud at load: an empty server list, duplicate names, a missing host or password, or an out-of-range port or timing reports the offending field.

A connection is opened only the first time that server is used; with no message received and no command sent for idleTimeoutMs, it is closed and rebuilt by the next command (the reclaim timer is unref()'d, so an idle connection never holds the process open).