How to Install DeepSeek Harness and Run Your First Agent Task
Purpose
This post shows how to install DeepSeek Harness and run your first agent task: start the Web UI, connect a model, pick a workspace, and send a task.
Direct answer
Install with npm and run the Web UI directly:
npx @deepseek-ai/dsh web# -> Web UI at http://127.0.0.1:3080In the Web UI, go to Settings → Models, paste your DeepSeek API key, choose a workspace, start a session, and send a task like “Summarize this repository.” That is the whole quickstart.
Environment
- Node.js with npm (or pnpm/Bun if building from source)
- No GPU or local model is required: the default path uses the DeepSeek API
What is DeepSeek Harness
DeepSeek Harness is DeepSeek’s open-source coding-agent harness. What makes it different is that every component is a plugin running on the Cordis framework: model adapters, tools, the agent loop, even the UI. In general, a harness has five layers:

Because components are plugins, you can change them without restarting the server. That is why installation and configuration feel different from other tools.
Step 1: Install
Pick one of these options.
Option A: Web UI only (no global install)
npx @deepseek-ai/dsh webThis prints the URL and serves the Web UI at http://127.0.0.1:3080 by default.
Option B: Global CLI
npm install -g @deepseek-ai/dshdsh webThe @deepseek-ai/dsh package declares the dsh bin for profile boot, plugin management, and the browser UI alias.
Option C: Python SDK
python -m pip install deepseek-harness-sdkOption D: From source
git clone https://github.com/deepseek-ai/deepseek-harness.gitcd deepseek-harnesspnpm installpnpm run buildpnpm dsh webStep 2: Configure a model
Open the Web UI and go to Settings → Models, then enter your DeepSeek API key. The model route becomes usable immediately, without restarting the server.
For other providers or local models, use the providers configuration in YAML with apiKeyEnv and an OpenAI-compatible baseURL:
- id: llm name: '@deepseek-ai/dsh-llm-pi-ai' config: providers: local: apiKeyEnv: LOCAL_API_KEY api: openai-completions baseURL: http://127.0.0.1:8080/v1 models: - id: qwen3-9bThis is how a local 9B Qwen 3.x model running in llama.cpp connects. A HN user reported it “works GREAT for small python projects” and was “very easy to connect” to the local model.
Step 3: Choose a workspace
Click Choose workspace and select your project directory. The dsh process uses its invoking directory as the default filesystem location, and the session composer stays disabled until a workspace is selected.
Step 4: Run your first task
Start a session and send:
Summarize this repository and identify its main packages.The agent can read and edit files, run commands, delegate work, and maintain a plan. It asks for approval where the permission policy requires it.
Step 5: Add a plugin (optional)
Plugins are managed per profile:
dsh plugin --profile demo add ./hello-plugindsh plugin --profile tui add github:deepseek-harness/turtle-uidsh plugin --profile tui remove turtle-uidsh --profile tuiCommon mistakes
- Forgetting to select a workspace: the session composer is unavailable until one is chosen.
- Skipping model configuration: the model route is unusable until an API key is saved or a provider is declared in the YAML settings.
- Expecting a stable API: the project is a release candidate, and “the API is not yet stable and may change without notice,” so pin versions for production use.
- Hard-coding keys into settings files: use
apiKeyEnvenvironment variables instead.
Why this matters
DeepSeek Harness is designed so every component is a hot-reloadable plugin. You can add a plugin, change a model adapter, or swap a UI without restarting the server. Knowing the install path gets you to that workflow quickly, and connecting a local model keeps costs near zero.
Summary
In this post, I showed how to install DeepSeek Harness with one command, configure a model, choose a workspace, and run your first agent task. The key point is npx @deepseek-ai/dsh web gets you to a working Web UI, then you add a model key, a workspace, and a first task. Start with the Web UI, add the global dsh CLI when you want profiles and plugins, and point the providers config at a local model when you want to go cost-free.
Final Words + More Resources
My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me
Here are also the most important links from this article along with some further resources that will help you in this scope:
- 👨💻 Hacker News Discussion: DeepSeek Harness
- 👨💻 DeepSeek Harness on GitHub
- 👨💻 DeepSeek Harness Documentation
Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!
Comments