Info: Machine translation This post was machine-translated from the Chinese original. Wording may be rough in places — the Chinese version is authoritative.
Note This article was first published on the HyphenTech official WeChat account
Can the DeepSeek open-source shell really be freeloaded with one click?
Six local tools, one local model, two clicks to access; The real trouble isn’t installation, but those default values that still work normally even after filling in incorrectly.
Note 2026-08-21·HyphenTech
🎯 ▍ Behind two clicks lie four pitfalls that are easy to fall into

Five days ago, I manually connected the local model into DeepSeek Harness. Later, after rechecking the configuration, I found the original plan lacked two key statements: images would be muted and rejected, and long conversations might not be fully integrated into the model. **The most dangerous configuration error is not an immediate error but making the system appear to work. **
Now I’ve integrated this setup into LocalBrain v1.2.9. Open the “Integration” page, write the model and tool configurations separately, and you can connect six built-in MCPs and one local model. The six tools include Whisper, TTS, Image, Video, Webminer, and Docfactory. Voice, image, networking, and document processing are all kept in the same local workflow.
This isn’t just about putting a button on the configuration interface. DeepSeek Harness puts model settings in settings.yaml and tool plugins in cordis.patch.yml. The former uses a settings namespace, while the latter must be a top-level YAML array and also allows `!!js` expressions. **Each file manages half and has a set of rules that can’t be mixed. **
What’s even more troublesome is that the official explicitly warns against overwriting existing patches, as there may be unrelated user configurations inside. settings.yaml is monitored and hot-updated, and when written back, a brother lock file is created, with a lock access time limit of 2 seconds. Even if a lock file looks old, it can’t be deleted casually, because file age doesn’t prove the writing process is dead. The value of one-click access depends on how many pitfalls it avoids for you.
$ 上手地址:DeepSeek Harness
https://github.com/deepseek-ai/deepseek-harness
方寸智匣下载页:
https://github.com/HackerChi-Hub/localbrain-releases/releases
#安装命令
mkdir -p ~/dsh && cd ~/dsh && npm init -y >/dev/null 2>&1 && npm install @deepseek-ai/dsh --registry=https://registry.npmmirror.com --no-audit --no-fund --loglevel=http && ./node_modules/.bin/dsh --version
🔍 ▍ 187,000 stars are very hot, but stability hasn’t caught up yet
This repository was established on 2026-08-13, and by the time of review on 2026-08-24, there were already 187375 stars and 20,833 forks, with the license being MIT and TypeScript as the main language. At the time of this article’s first release, these two numbers were still 176135 and 19093—but in three days, they rose by more than 11,000 more. In stark contrast to the popularity, on npm, both latest and next are both 0.1.1-rc.2, with only 10 versions in total; At launch, it was still stuck at 0.1.0-rc.7.
The official label is developer preview, with a capital warning indicating compatibility violations. **187375 stars can prove attention has come in but cannot guarantee code quality. **This is more like a release rhythm of first entering and gradually adding stability—suitable for tinkering and observation, not for blindly throwing into critical business.
The popularity has already spread to the periphery and continues to rise: deepseek-harness-desktop has 18,862 stars, awesome-dsh-plugin 11,834, dsh-routing-suite 6,695, dsh-web-ui 5,725. Once the ecosystem grows around the same set of plugin interfaces, the framework is no longer just a code repository but a marketplace where tools, models, and users meet.
Back when VS Code bundled editors with extended ecosystems, plugin automation proved its stickiness. Today’s similarity is that “everything is plugins”; The difference is that after replacing the editor, you still have to relearn operations, while an agent might only change one line of provider. **The moat of the shell is getting shallower, while the moat of the ecosystem is getting deeper. **

**// A star marks the footsteps of crowds pouring in, not a certificate of stability. **
⚡ ▍ Six minutes to install, but the real traffic jam was over 400 small requests
I installed `@deepseek-ai/dsh` on macOS and Node v25.9.0, downloaded 453 packets, took 6 minutes, and had no output in between. Just looking at the terminal, it’s easy to suspect it’s frozen. After finishing, run `dsh web`, and the service will drop to `http://127.0.0.1:3080`.
For a single 4231797-byte file cold fetching, the official source takes 17.62 seconds, about 234 KB/s; Taobao image takes only 0.63 seconds, about 6.7 MB/s. It seems the image has already won big, but the entire dependency tree still takes 380 seconds to parse, comparable to the official source. **What really slows down installation isn’t the large file bandwidth, but the serial metadata latency of 453 packets. **
| Link | Test results | The true meaning |
|---|---|---|
| Single file cold pickup | 17.62 seconds vs. 0.63 seconds | Mirroring has significantly improved large file downloads |
| Dependency tree parsing | 380 seconds | A large volume of serial requests remains a bottleneck |
| Complete installation | 453 packs, 6 minutes | Lack of progress feedback while waiting |
| Local startup | 127.0.0.1:3080 | After installation, you can directly access the web interface |
※ All tests are single-use tests on the same machine and do not represent other network environments.
This set of results explains a common misconception: changing the image does not necessarily mean all npm installations will be faster. Six related packets from 0.1.0 to rc.7 all returned HTTP 200 on Taobao images, and the packets were not missing. The slow ones were the number of requests and round-trip delays; focusing solely on download speed was like a wide highway requiring stops and stamps at every intersection.
This also exposes the most easily overlooked experience cost of local tools. Users aren’t afraid of waiting 6 minutes; they fear no feedback in those 6 minutes, unsure whether to wait, switch sources, or start over. 💰 Free open source saves subscription fees but does not automatically exempt time bills for installation, troubleshooting, and maintenance. What saves for free is billing; what automation saves is time.
🧩 ▍ Images, long context, and timeouts are not trusted by default
There are at least three types of hard declarations for local model access. Models with reasoning may need to disable the developer role and revert the output cap field to max_tokens. Local services without real credentials should still have a placeholder credential. Missing any one may cause compatibility interfaces to crash during actual calls.

Image links are more winding. Model routing only recognizes text and image, while image attachments support PNG, JPEG, WebP, and GIF. The image returned by MCP must truly enter the context, mounting `ctx.attachments`, and routing must explicitly declare image input. If only one side is satisfied, the image will degrade into diagnostic text.
The cost of declaring fewer and more is still asymmetrical. If you write fewer images, the system will reject them before the image is attached and name unsupported models; If you write more images, the image enters persistence history first, then the provider will reject it, and requests will be repeated afterwards. **Competency statements should be conservative rather than using “looks reasonable” as the default answer. **
Timeouts are the same. MCP tool calls default to only 60,000 milliseconds, making local speech and image tasks easily overwhelmed. LocalBrain writes 600,000 milliseconds, aligning with `tool_timeout_sec = 600` on the other side.
Each service instance must also have the name `[A-Za-z0-9_-]{1,32}`, so the model ultimately sees `mcp__服务名__工具名`.
The context window is another “seemingly run-hard” trap. Qwen 3.8 once received a 69K OpenCode request at the default 32K but was rejected by llama.cpp. After the client retried, it showed a “repeat of the same reply.”
Currently, the agent-level model uses `–ctx-size 81920`, while other GGUFs use 32768, and the upper limit for mlx_lm.server is 8192. Error default values are most likely to disguise themselves as normal results.
💰 ▍ The free shell is the shell; the real competition is for the access point
After fully expanding the composite tree, the default agent model provider points to deepseek-official, and the model is deepseek-v4-flash.
Meanwhile, the LLM-PI-AI adapter is mounted in dormant mode, and without configuring a provider, there is no routing. The framework allows brain swapping, but the default entry point still firmly points to DeepSeek’s own paid service.
This arrangement is not mysterious: the framework is free and open-source, the model can be replaced, but the default traffic first passes through its own entry point. Service providers earn token bills based on call volume, hardware vendors earn money from local hashrate, and framework owners compete for the door users open first. **The real business is not in the shell, but in where requests are sent to the shell. **
This scenario has played out many times before regarding free quotas: many cloud and AI services, once user numbers stabilize, gradually lower free quotas and raise the threshold for triggering payments, usually without large-scale announcements. The similarity is that the free tier has always been the cost of acquiring customers, not the promise; The difference is that DSH’s shell is MIT-licensed code, which cannot be withdrawn once issued; the real shrinkage is the default target side. **How long a free tier can last depends on whether it still needs new users. **
Android also went through the path of “open-source shells and service monetization.” The similarity is that free allows the ecosystem to expand rapidly, while charging power is hidden in the service and distribution layers; The difference is that Android relies on a vast network of hardware vendors, while model replacement in the agent framework only requires changing providers. **The lower the replacement cost, the higher the bargaining power for users. **

The silent side is actually the most worth watching. Pay-as-you-go services have no motivation to remind you which transcription, document processing, and image tasks don’t need to be uploaded at all. 🔒 The local solution leaves computing power and electricity costs to the user, while the cloud solution turns costs into ongoing billing; Neither side is truly cost-free, just different payment targets and data boundaries. Whoever controls the default entry point is closest to the next bill.
🚀 ▍ Whether you can use it with confidence depends on the complete link, not the buttons
v1.2.9 has already run end-to-end verification using real DSH 0.1.0-rc.7: patch parses zero stderr, six `dsh-mcp-client` instances enter the composite tree, web pages start cleanly, six Python child processes are actually launched, and after the main process exits, all are recycled. **The button is just the entry point; only after the process lifecycle is closed is it connected. **
Local image capability is determined by mmproj in the model directory. The current `Blackfrost-AI–Qwen3.8-27B-ABLITERATED-GGUF` directory contains `mmproj-Qwen3.8-27B-ABLITERATED-F16.gguf`, with a size of 927607424 bytes.
The directory criteria match whether `–mmproj` is passed at startup, avoiding the interface claiming to read images but the server not displaying the visual component at all.
Installation assets can also be independently verified: `LocalBrain_1.2.9_aarch64.dmg` is 5215305 bytes, `LocalBrain.app.tar.gz` is 5078533 bytes, `latest.json` is 695 bytes, and the signature file is 408 bytes. Automatic endpoint update returns 1.2.9, with the download address tested as HTTP 200.
However, the boundaries must be clarified: this framework is still in the RC stage, and compatibility may change at any time; The 6-minute install is just a single-machine one-time result; The previous repeated response incident did not reappear in this integration. More importantly, the actual performance of DeepSeek’s official cloud model was not verified here, so it cannot be endorsed by the success of local links.
| Your priorities | A more suitable choice | The cost that must be borne |
|---|---|---|
| Configure less, start as soon as possible | One-click access with LocalBrain | Still need to accept changes in the RC phase |
| Complete control over the details | Manually maintain two configurations | Handle modal, compatibility, and lock files |
| Try to keep data on the local machine | Local models versus local MCP | Computing power, electricity costs, and maintenance are borne by the user |
| They don’t want to maintain the environment | Cloud routing is the default setting | Request access to the pay-as-you-go billing portal |
※ Selections are based on the current implementation boundary and do not represent the permanent state of each scheme.
If you want to do it yourself, back up `~/.dsh` first, then handle settings.yaml and cordis.patch.yml separately; don’t overwrite old patches, and don’t clean locked files like junk. If you want to skip manual processing, the download page is already provided. My judgment is straightforward: **The real value of a local agent isn’t being free, but finally having the right to decide which tasks to upload without paying at all. **
$ 直接使用:
https://github.com/HackerChi-Hub/localbrain-releases/releases
检查框架与文档:
https://github.com/deepseek-ai/deepseek-harness
**// Only when you can exit, reclaim, and switch models is true integration. **
$ 🎬 这个话题我做过视频
· 看美剧学英语,多半是「白看」——我写了个免费 Mac 和Win 软件治它|ScreenLex 光影词库
https://www.bilibili.com/video/BV1HgjU6UEe8?from=article_related_video
· AI说我帮你查一下,其实是调用了工具|Tool Calling 工具调用
https://youtu.be/s54ud_71WN0
Note One-click is just the surface; the choice is the core
DeepSeek Harness uses the MIT license to open the agent shell and leaves the default call entry point for its own paid model. LocalBrain v1.2.9 addresses the most error-prone layer: writing models and tool configurations separately, completing images, context, and timeout declarations, and verifying that six local processes can start and recycle properly. If you want less hassle, you can start directly from the download page; If you want full control, back up the directory first and then modify manually. Next time you see a cloud bill, the real question isn’t whether it’s expensive, but how many tasks it has that shouldn’t leave your computer in the first place.
🧰 Tools I build
I maintain all of these tools myself. Preview builds are clearly labeled; the release pages are the source of truth for downloads, updates and known limits.
Info: HyphenBox Status: Official releases
A radar for free LLM APIs: availability is re-tested continuously, one local interface for all of them, and keys stay on your machine
Info: LocalBrain Status: Official releases
A multimodal MCP toolbox for local models: TTS, Whisper and video generation in one place
Info: ScreenLex Status: Official releases
Learn new words while you watch shows. Free, for Mac and Windows
Info: HyphenScreen Status: Official releases
Screen recording and smart editing in one: a DaVinci-style timeline, automatic redaction and a check of the finished video before export. Free
Quote: HyphenTech Make AI your superpower Local deployment · Free resources · Self-made software https://hyphentech.top
Late nights and burned API credits went in,a cup of tea comes back out — only if you feel like it.
Scan with WeChatPress and hold to save the image, then open it from your album in WeChat Scan


Comments
Loading comments…