DS4 Control: a macOS menu bar app that runs and supervises a local DeepSeek V4 server
macOS menubar app for fast local DeepSeek V4.1, with 1M context.
At a glance
- What is it?
- DS4 Control wraps antirez dwarfstar ds4 in a signed macOS menu bar pane: it launches and monitors the ds4-server process, downloads DeepSeek V4 and V4.1 weights with a resumable parallel downloader, gates variants by installed RAM, and launches chat or coding agents against the local endpoint.
- Who is it for?
- Take DS4 Control if you have an Apple Silicon Mac with serious memory and want DeepSeek V4 class models local without hand-managing a server process, because the supervision, resumable weight downloads and RAM feasibility gating remove exactly the parts that go wrong, and the Claude Code and Pi launch buttons turn the endpoint into a working coding setup.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 3 days ago.
- What is it written in?
- Mainly Swift, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What it is
DS4 Control is a macOS menu bar pane for running DeepSeek V4 and V4.1 through the ds4 project, antirez dwarfstar, which it does not reimplement but supervises. The app launches the local ds4-server, watches it, and monitors resource use while you work. From the popup you pick V4.1 Flash, V4 Pro build 0813, or V4 Flash build 0731, with up to 1M context configurable in settings, and you can launch a chat window or launch coding agents, with Pi, Claude Code and a BYOC bring-your-own-CLI path named in the README. Two exclusions define the scope: there is no model search or registry browsing, and there is no embedded inference, because every token comes from the ds4-server child process. The app is signed with a live Apple Developer ID and notarized, and installs through Homebrew.
brew install --cask ds4-controlProcess supervision and the widgets
The engineering lives in three objects of a single Swift binary. SupervisorService owns the ds4-server lifecycle through Foundation.Process: it builds the launch arguments, watches stderr for the listening on http:// readiness line, polls GET /v1/models for health, and stops the server gracefully with SIGTERM and a SIGKILL fallback, with crash detection on top. MetricsManager samples CPU, memory, GPU and power and ANE every two seconds through Mach, IOKit and the private IOReport interface, publishing a SystemSnapshot that drives the unified memory, GPU, power and CPU widgets in the popup; the README credits mac-resource-monitor and macmon for the sampling approach. Feasibility is the third object, a pure, unit-tested module that turns installed RAM into a variant recommendation and a budget-derived default context, which is what powers the gating described below.
Model variants and the RAM reality
DeepSeek V4 is memory-hungry, and the README puts the numbers in a table instead of hiding them. V4 Pro build 0813 in pro-imatrix quantization requires 512 GiB and anything below is blocked. V4.1 Flash in 41-q2 needs at least 96 GiB, with 341 GiB on disk split into roughly 152 GiB resident main weights and 189 GiB of disk-only Engram, so SSD streaming engages on 96 to 255 GiB machines where nearly every routed expert streams from disk, and full residency arrives at 256 GiB or more. The 41-q4 quantization needs 256 GiB with 483 GiB on disk and about 294 GiB resident. V4 Flash build 0731 comes in q4-imatrix at 256 GiB and q2-imatrix with a 96 GiB minimum, where 96 to 127 GiB machines must raise the Metal wired limit as explained in the in-app help. Measured on a Mac Studio M3 Ultra with 512 GiB, single-stream throughput lands near 14 tokens per second on V4 Pro and 35 on V4 Flash, varying with context, prompt and the wired limit.
Downloads and getting weights in
You do not pre-download the model. DS4 Control fetches weights through a built-in native parallel downloader with a live progress bar and resume across restarts, which matters when a download is measured in hundreds of gigabytes. The model repository is public, so no authentication token is required for normal use. The build path for developers vendors antirez/ds4 as a git submodule under external/ds4 and patches it with a THINK_MAX prefix change.
git submodule update --init --recursive
bash scripts/apply-ds4-patches.sh
make -C external/ds4 -j ds4-server
DS4_DIR="$PWD/external/ds4" swift runA release bundle is produced by a build script that assembles DS4 Control.app, and on first run you point Settings at the ds4 directory that contains ds4-server. Signing auto-detects your Apple Development identity through security find-identity and falls back to ad-hoc signing if none exists, with a DS4_SIGN_IDENTITY override for your own certificate.
Using it for coding
The reason to run a 1M-context DeepSeek locally is usually agentic coding, and the app treats that as a first-class path. The README suggests following the ds4 coding agent setup guide to configure OpenCode, Claude, Codex or Pi against the local server, and the popup has direct launch entries for chat, Claude Code and Pi. Because inference is delegated to ds4-server, the coding agent sees an ordinary local model endpoint and the app stays out of the loop beyond keeping the server healthy and showing you the memory and power cost of the run. The practical workflow is: pick a variant that fits your RAM, let the downloader finish once, start the server from the menu bar, then work in your agent of choice, with the widgets telling you whether SSD streaming is throttling you before you blame the prompt.
Release pace and limits
The version line moves quickly. Version 1.8.0 on 2026-09-16 added DeepSeek V4.1 Flash support, and version 1.8.2 on 2026-09-17 locked the model switcher while the server is running and allowed the 41-q2 variant on 96 GiB Macs, making it the default there, which is a meaningful opening of the hardware floor. The constraints that remain are physical: this is Apple Silicon only, the honest variant choice below 256 GiB involves disk streaming with the README warning that nearly every routed expert streams from disk on the smallest tier, and the app deliberately offers no registry browsing or model management beyond the ds4 lineup. The MIT licence covers the app, and the attribution section credits llama.c and GGML foundations under ds4. For Mac owners inside the RAM envelope, the value is that the fragile parts of local large-model serving are handled, and the parts that remain are physics.
Editorial conclusion
Take DS4 Control if you have an Apple Silicon Mac with serious memory and want DeepSeek V4 class models local without hand-managing a server process, because the supervision, resumable weight downloads and RAM feasibility gating remove exactly the parts that go wrong, and the Claude Code and Pi launch buttons turn the endpoint into a working coding setup. Check the RAM table first, since V4 Pro wants 512 GiB and the Flash variants are the realistic choice below that, with SSD streaming engaging under full-residency thresholds. Skip it on Intel Macs or as an inference engine, because it embeds none and delegates everything to ds4-server. The MIT licence, signed and notarized builds and a v1.8.x line that landed V4.1 support within a day of need make this the practical front end for the ds4 project.
Frequently asked questions
How much RAM do I need for DeepSeek V4 through DS4 Control?
V4 Pro build 0813 requires 512 GiB and is blocked below that. V4.1 Flash in 41-q2 runs from 96 GiB with SSD streaming and reaches full residency at 256 GiB, while V4 Flash q4-imatrix needs 256 GiB.
Does DS4 Control run the model itself?
No. The README states there is no embedded inference, and all inference is delegated to the ds4-server child process that the app launches, supervises and monitors.
Can I use it with coding agents?
Yes. The app has launch entries for chat, Claude Code and Pi, and the README points to the ds4 coding agent setup guide for configuring OpenCode, Claude, Codex or Pi against the local endpoint.
Community notes