
Security News
PHP Foundation Says Chainguard Broke Security Embargo Ahead of Emergency Patches
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.
dsh-sessions
Advanced tools
Session discovery, creation, message delivery, and slash commands for DeepSeek Harness
Adds session discovery, bounded message inspection, fresh-session creation, and message delivery to DeepSeek Harness.
This release provides four public agent tools:
session_status for recent sessions or one exact session;session_read for bounded canonical message reads;session_create for creating a fresh session with an initial prompt;session_send for steering or following up an existing session.It also provides the /sessions command family and supports explicit model
provider, model, and thinking-effort selection during session creation.
Install the published package into a DSH profile:
# With the DSH CLI:
dsh plugin --profile web add dsh-sessions@0.1.1
# Without the `dsh` CLI:
npm install dsh-sessions@0.1.1
The DSH profile installation is required for Harness to load the plugin. After upgrading, restart DSH and create a new agent session so the current tool registry is loaded.
For local development, build the package and install the checkout into the target profile:
pnpm build
dsh plugin --profile web add C:\path\to\dsh-plugins\sessions
Create a child session, inspect it, read its conversation, and send a message:
session_create({ "prompt": "Reply with exactly READY and nothing else." })
session_status({ "session_id": "<SESSION_ID>" })
session_read({ "session_id": "<SESSION_ID>", "offset": 1, "limit": 20 })
session_send({
"session_id": "<SESSION_ID>",
"message": "Continue with the next step."
})
session_create returns a queued result containing the new session ID. Use
that ID with the other tools.
| Tool | Arguments | Behavior |
|---|---|---|
session_status | session_id?, recent_n? | Lists recent sessions, or returns one exact status row. Defaults to the 50 most recently updated sessions. |
session_read | session_id, offset?, limit? | Reads canonical conversation blocks without resuming or mutating the session. |
session_create | prompt, preset?, model?, cwd? | Creates a fresh session and queues its initial prompt. |
session_send | session_id, message, mode? | Sends to an existing session; mode defaults to steer. |
An explicit creation model has this shape:
{
"provider": "<PROVIDER>",
"model": "<MODEL>",
"reasoningEffort": "<LEVEL>"
}
The adapter validates the effort identifier against the selected model. The
cwd option must be an existing absolute directory.
/sessions status [SESSION_ID] [--recent N]
/sessions read SESSION_ID [--offset N] [--limit N]
/sessions create PROMPT [--preset ID] [--provider PROVIDER --model MODEL] [--effort LEVEL] [--cwd PATH]
/sessions send SESSION_ID MESSAGE [--mode steer|followup]
The /sessions create flags map to the tool's nested model object. A JSON
object with the same shape as session_create is also accepted.
session_create only creates a fresh session and queues its initial prompt;
it does not wait for model completion.session_status is inspection-only and defaults to 50 recent sessions.session_read uses a 1-based message-block offset and a maximum limit of
200. It omits trace-only chunks, token deltas, and lifecycle records.session_send defaults to steer, which wakes an idle agent and targets the
nearest step of a running agent.session_send({ mode: "followup" }) queues a separate next turn.session_send; status and
read never resume them.The returned send message_id confirms accepted inbox work. It does not mean
that the target agent has finished processing the message.
Reusable prompt fixtures are in
test/e2e/prompts. The recommended flow is create,
capture the returned session_id, and substitute it into the status, read, and
send prompts.
The exact registered names are required. session_send must not be replaced by
the built-in send_message, which targets subagents and has different
semantics.
pnpm typecheck
pnpm test -- --runInBand
pnpm build
pnpm pack --dry-run
The published package includes the generated lib directory, the plugin patch,
the README, the implementation specification, and the reusable E2E prompt
fixtures. Unit-test sources and development dependencies are not included.
The plugin uses public DeepSeek Harness and Cordis APIs and does not modify
DeepSeek Harness source code. dsh-loop owns recurring self-prompts for the
current session; dsh-sessions owns cross-session inspection, creation, and
message delivery. The legacy codex-session-communication plugin should only
be composed for wait_sessions during the migration.
FAQs
Session discovery, creation, message delivery, and slash commands for DeepSeek Harness
The npm package dsh-sessions receives a total of 1 weekly downloads. As such, dsh-sessions popularity was classified as not popular.
We found that dsh-sessions demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.

Security News
PHP releases emergency patches for two critical RCE vulnerabilities as agencies urge organizations to take unpatched sites offline.

Threat Research
/Security News
A supply chain attack compromised LiteLLM 1.107.0 on PyPI and Docker, spreading malware that steals cloud credentials, developer secrets, and AI provider keys.