
Security News
PHP Patches Critical RCE Vulnerabilities, Organizations Urged to Take Unpatched Sites Offline
PHP releases emergency patches for two critical RCE vulnerabilities as agencies urge organizations to take unpatched sites offline.
dsh-codex-shell
Advanced tools
Exclusive Codex-style exec_command and write_stdin shell tools for DeepSeek Harness
Adds Codex-style exec_command and write_stdin tools to DeepSeek
Harness.
Install it into the DSH profile you use:
dsh plugin --profile web add dsh-codex-shell@0.1.2
From a DeepSeek Harness source checkout:
cd C:/path/to/deepseek-harness
pnpm install
pnpm dsh plugin --profile web add dsh-codex-shell@0.1.2
⚠️ Do not run
npm install dsh-codex-shellas a separate setup step. The DSH plugin command installs it into the selected profile.pnpm installin the source checkout only bootstraps DSH itself.
In the DSH web UI, open Settings -> Agent presets and choose Draft a custom preset with Creator mode.
Paste this prompt:
Create a user preset named "Codex Whale" with ID `codex-whale`.
Duplicate the Standard preset and configure it as follows:
- Add exactly one row:
- id: codex-shell
name: dsh-codex-shell
- Disable `tool-bash`, `tool-pwsh`, and `tool-jobs`.
- Disable any other persistent or alternate terminal tools.
- Keep all non-shell coding tools.
- Do not modify shipped presets.
- Do not add duplicate `codex-shell` rows.
Validate the result before finishing.
codex-shell row enables its tools in the agent preset.exec_commandexec_command(cmd: string, workdir?: string, yield_time_ms?: number, max_output_tokens?: number) - Runs one command in the host shell. Short commands return output; long-running commands return a session_id for write_stdin.
cmd (string, required) - Command to run.workdir (string, optional) - Working directory for the command.yield_time_ms (number, optional) - Wait time before returning; default 10000 ms.max_output_tokens (number, optional) - Maximum output token budget; default configured limit (10000 by default).write_stdinwrite_stdin(session_id: number, chars?: string, yield_time_ms?: number, max_output_tokens?: number) - Writes input to an existing session or polls for more output.
session_id (number, required) - Positive session ID returned by exec_command.chars (string, optional) - Characters to send; omit or use an empty string to poll.yield_time_ms (number, optional) - Wait time for output; default 250 ms.max_output_tokens (number, optional) - Maximum output token budget; default configured limit (10000 by default).Typical flow: call exec_command; if it returns a session_id, call
write_stdin with that ID to send input or poll until the terminal result is
fully collected. A terminal result may contain both exit_code and
session_id when max_output_tokens capped the current page; keep polling
with empty chars until session_id is no longer returned.
exec_command plus write_stdin lifecycle.exec_command returns is retained for the next
write_stdin poll.max_output_tokens limits each response page; it does not discard buffered
output. Continue polling to retrieve later pages.write_stdin with empty chars.Most Bash or Shell tools use a one-shot model: run a command, read its output,
and return. That works for ls, git status, builds, and ordinary tests, but
not for a CLI that waits for input while it is still running.
For example, an interactive rng program requires the agent to:
PASS or FAIL.The same pattern is needed for device-code login, OAuth flows, REPLs, SSH sessions, database prompts, and end-to-end CLI tests. Background execution alone is not enough if the agent cannot write to the original process.
See the full motivation in Why Claude Code, Pi, and DSH cannot complete interactive CLIs.
The two-tool design is a good fit for coding agents because it connects the complete interactive flow:
exec_command launches the process and returns early when it is
still running.write_stdin sends input to that same session.write_stdin can poll for more output without sending input.Existing sessions keep their old tools.
Check the profile:
dsh --profile web --dump-config
It should contain exactly one:
- id: codex-shell
name: dsh-codex-shell
In a new Codex Whale session, confirm that:
exec_command is availablewrite_stdin is availabledsh is not foundRun the command from a DeepSeek Harness checkout with pnpm dsh, or install
the published DSH CLI.
node-pty build is blockedAdd this to the target profile's pnpm-workspace.yaml:
allowBuilds:
node-pty: true
Then install the plugin again.
dsh plugin --profile web remove dsh-codex-shell
dsh plugin --profile web add dsh-codex-shell@0.1.2
FAQs
Exclusive Codex-style exec_command and write_stdin shell tools for DeepSeek Harness
The npm package dsh-codex-shell receives a total of 7 weekly downloads. As such, dsh-codex-shell popularity was classified as not popular.
We found that dsh-codex-shell 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
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.

Security News
vlt 1.5.0 links skills from JavaScript dependencies to coding agents, with lockfile versioning and Socket data to filter out known malicious packages.