equalang-dsh-plugin
English · 简体中文
Website · Pricing · Developer docs · API keys
Translate the file, keep the layout — inside DeepSeek Harness. This plugin gives the DeepSeek Harness (dsh) agent the tools of Equalang, an AI translator that works on whole files: a PDF comes back as a PDF, a deck as a deck, with tables, images and formulas where they were. It also translates subtitles and pictures, turns audio and video into translated subtitles or a transcript, and translates text in bulk.
The tools are the ones the Equalang MCP server offers every other agent. The plugin starts that server with DeepSeek Harness's own runtime, so it works in the desktop app with no Node.js installed, and hands it your key.
Try asking
- "Translate ~/Documents/contract.pdf into Chinese, keeping the layout."
- "Translate pitch-deck.pptx into Japanese and German."
- "How much would it cost to translate thesis.docx into French?"
- "Make Korean subtitles for interview.mp4, with the original line above each one."
- "Transcribe standup.m4a with timestamps."
Install
In the DeepSeek Harness desktop app or web UI, open Plugins → Add plugin, enter
@equalang/dsh-plugin
and choose Install, then Enable now.
From a terminal, for dsh web:
dsh plugin --profile web add @equalang/dsh-plugin
then restart dsh web. Use the profile name you start dsh with; the desktop app keeps its own profile, so install there through its Plugins page.
Needs DeepSeek Harness 0.2. The desktop app brings everything else; the dsh command needs Node.js 24.9 or later, as dsh itself does.
Your API key
Sign up at https://equalang.com and create a key at https://equalang.com/api-keys. New accounts start with free credits, enough to put a document through.
The simplest place for it is ~/.config/equalang/.env, the one file every Equalang integration reads, so a key saved once for Claude Code, Codex or the Equalang skill works here too:
mkdir -p ~/.config/equalang && echo 'EQUALANG_API_KEY=el_your_key' > ~/.config/equalang/.env && chmod 600 ~/.config/equalang/.env
The plugin looks in two places before that file, so a key there wins:
The plugin's own setting,
apiKeyon theequalangrow of your profile'scordis.patch.yml:~/.dsh/profiles/<profile>/cordis.patch.yml(the profile iswebfordsh webanddesktopfor the desktop app), or~/.dsh/cordis.patch.ymlfor every profile. Add the row to the list the file already holds:- id: equalang config: apiKey: el_your_keyEQUALANG_API_KEYwherever DeepSeek Harness looks for keys: its credential store, the environment dsh was started from, or~/.dsh/.env.
DeepSeek Harness does not pass exported variables whose names look like credentials to the MCP servers it starts, so the plugin hands the key over itself. A changed key takes effect without restarting DeepSeek Harness.
Tools
| Tool | What it does |
|---|---|
mcp__equalang__translate_file |
Translate a document, subtitle file, picture or recording, and save the result beside it |
mcp__equalang__transcribe_recording |
Write down what a recording says, as timed text |
mcp__equalang__translate_text |
Translate strings, or one long text |
mcp__equalang__estimate_cost |
Upload a file and say the most a job on it can cost, without starting anything (free) |
mcp__equalang__check_job |
Collect a job that was still running when its call returned |
mcp__equalang__cancel_job |
Stop a job; a cancelled job costs nothing |
mcp__equalang__get_credit_balance |
The account's credits |
mcp__equalang__list_languages |
The language codes Equalang takes |
Files are named by an absolute path or a public URL, and results are written beside the source without overwriting anything. A long file can take minutes: a call waits up to 50 seconds by default, then answers with a job id for check_job.
Costs and privacy
- Jobs spend your Equalang credits, the same balance as on the website.
estimate_costis free. DeepSeek Harness runs MCP tools without asking you first, so the agreement comes from the model: the server tells it to say the cost and get your agreement before a job. Credits are bought at https://equalang.com/pricing. The model the agent runs on is billed separately, by DeepSeek or whichever provider you chose. - A file you ask to translate is uploaded to Equalang to be processed. See the privacy policy.
- Like every MCP server DeepSeek Harness starts, this one runs outside the agent's sandbox: it reads the file you name and writes its results beside it under any permission preset.
Settings
On the equalang row of a profile's cordis.patch.yml, as shown above for the key. A change applies without a restart.
| Field | Default | Meaning |
|---|---|---|
apiKey |
none | Your Equalang API key |
baseUrl |
https://equalang.com/v1 |
Another deployment of the Equalang API |
toolCallTimeoutMs |
600000 |
How long one tool call may run before DeepSeek Harness gives up on it |
Troubleshooting
- No Equalang tools. Check that the plugin is enabled under Plugins, and restart after installing from a terminal. DeepSeek Harness refuses to install or start a plugin made for another version of itself, and says which version it needs.
EQUALANG_API_KEY is not set. Save the key in one of the places above. Anexportin your shell alone does not reach the server.- Installed from a terminal, missing in the desktop app.
dsh plugin --profile webinstalls into thewebprofile; the desktop app uses its own. Install through the app's Plugins page.
Also from Equalang
- equalang-mcp, the MCP server this plugin runs, for Claude Code, Codex, Cursor and other MCP clients.
- equalang-skill, the same operations as an Agent Skill. DeepSeek Harness also loads skills from
~/.agents/skills. - The Equalang API: https://equalang.com/llms.txt
No comments yet. Be the first to write one.