README.md

August 15, 2026 · View on GitHub

DeepSeek App

DeepSeek App

Desktop workbench for local DeepSeek Harness

Sessions, projects, tools, terminal — for the real dsh engine

English · 中文

MIT License GitHub stars Platforms Electron 37 Unofficial

X 铁柱AGI WeChat 铁柱AGI

WeChat Search 铁柱AGI — scan to follow    WeChat group QR — scan to join


Note

Note

DeepSeek App is not an official DeepSeek product. It is a desktop workbench around local DeepSeek Harness: sessions, workspaces, permissions, files, terminal, and plugins.

Visual language is shared with sibling Grok App (tokens, three-column workbench, composer, skins). The engine is Harness — not a Grok CLI swap, and not an iframe around dsh web.


Contents

  1. Overview
  2. Features
  3. Screenshots
  4. Install & first run
  5. macOS “damaged” / Gatekeeper
  6. Config paths
  7. Develop & build
  8. Docs & contributing
  9. Author
  10. Follow the author

Overview

dsh is strong in a terminal. Day-to-day work still needs multi-workspace sessions, a permission chip, streaming tools and thinking, a file / terminal side pane, and bilingual UI.

DeepSeek App is that workbench:

  1. Install the app (the Harness engine boots inside an Electron utility process — no system dsh required)
  2. Add a workspace / new session
  3. Put a DeepSeek (or compatible) API key in Settings, or at first-run onboarding
  4. Chat, preview files, open a terminal, manage plugins and presets

Stack: Electron 37 + electron-vite · React 19 + TypeScript · Tailwind CSS · DeepSeek Harness (utilityProcess + MessagePort)

The renderer never talks to /api directly. It only uses window.desktop.*. Main process owns the trust fence, filesystem gate, and engine lifecycle.


Features

AreaWhat you get
Real Harness sessionsIn-process dsh web profile via utilityProcess; crash-isolated; auto-respawn
Projects & sessionsWorkspaces, search, pin, archive, fork, rename, export; draft page until first send
Streaming chatTools + thinking chrome; plan / goal bar; edit last user turn and resend; stick-to-bottom; message-node rail; in-chat find
Composer+ / / / @ palettes; skill & file chips; attachments (drop / paste / pick); model + effort; permission chip; busy queue
Side workbenchFiles (tree / preview / edit), browser, terminal (xterm + node-pty), skills, trajectory
ProvidersDeepSeek + catalog + custom OpenAI-compatible; optional Grok login for that provider
Plugins & presetsHost plugin cards, Cordis console, preset studio, session plugin view
Appearance6 skins × dark / light; wallpaper (image / gif / video + crop + scrim)
NativeTray, app menu, single-instance lock, dsh://session/<id> deep link, in-app update
SecurityStrict CSP, IPC sender checks, RPC whitelist, payload caps, filesystem fence, 3-tier permission gating
DiagnosticsUnified diagnostic zip (not session.export); token-usage heatmap from local logs
i18nSimplified Chinese / Traditional Chinese / English
PackagingmacOS ARM / Intel · Windows x64 (setup + portable) · Linux x64 (AppImage / deb / rpm)

Screenshots

From the current macOS development build.

WorkbenchAccount & providers
WorkbenchProviders
Light themeNew session
LightSession

Install & first run

1. Download

Get installers from Releases:

PlatformArtifact
macOS Apple SiliconDeepSeek-App-*-mac-arm64.dmg
macOS IntelDeepSeek-App-*-mac-x64.dmg
Windows x64NSIS *-win-x64.exe installer + *-win-x64.zip portable
Linux x64AppImage (in-app update) · .deb · .rpm

The bundle product name is DeepSeek App (matches the window title).

Prebuilt packages need no build tools. Node / pnpm are only required if you build from source.

Verify your download

Each release ships a SHA256SUMS file. After downloading:

# macOS / Linux
shasum -a 256 -c SHA256SUMS --ignore-missing
# Windows (PowerShell)
Get-FileHash .\DeepSeek-App-*-win-x64.exe -Algorithm SHA256

Compare the PowerShell hash against the matching line in SHA256SUMS.

Windows SmartScreen

Community / unsigned Windows builds show SmartScreen “Windows protected your PC / Unknown publisher” on first run — click More info → Run anyway and verify the checksum above if in doubt. Release CI can Authenticode-sign installers when WINDOWS_CERTIFICATE + WINDOWS_CERTIFICATE_PASSWORD secrets are configured (see docs/BUILD.md); signed builds use the publisher name on the certificate.

In-app auto-update

Silent updates from Settings → About work on packaged mac / Windows / Linux AppImage builds. Local pnpm dev and Linux .deb / .rpm stay on the GitHub open-release / download installer path. Full matrix: docs/desktop-auto-update.md.

2. First run

  1. Launch → welcome dialog can store a DeepSeek API key (skippable; configure later in Settings)
  2. Add a workspace (or start in the general workspace)
  3. Pick a model / effort, set the permission chip (default is workspace-writable)
  4. Send a message — the first send materializes the draft session

Credentials land in $DSH_HOME/.credentials.yaml (default ~/.dsh). The repo never stores plaintext keys.

pnpm dev and the installed app share that same $DSH_HOME. The engine does not inherit a shell DEEPSEEK_API_KEY, so a terminal export cannot lock credentials.set. If the installed app already stored a key, the first-run prompt is skipped.

3. Requirements

  • A DeepSeek API key, or another provider from Settings → Account
  • Packaged app embeds Electron’s Node 22.21 (no system dsh needed)
  • From source: Node.js 22.19+ and pnpm 9+

macOS “damaged” / Gatekeeper

Maintainer Releases are Apple-signed and notarized when Developer ID + App Store Connect API secrets are set (see docs/BUILD.md). Forks and unsigned local builds are not — Gatekeeper may block those downloads. That is expected.

Recommended:

xattr -cr "/Applications/DeepSeek App.app"
open "/Applications/DeepSeek App.app"

Also works:

  • Finder: right-clickOpen → confirm
  • System Settings → Privacy & SecurityOpen Anyway

Only download from this repo’s official Releases.


Config paths

App data root is Electron userData (package name deepseek-app):

PlatformTypical path
macOS~/Library/Application Support/deepseek-app/
Windows%APPDATA%\deepseek-app\
Linux~/.config/deepseek-app/
<userData>/
  workspaces/general/     # unbound chat cwd (not listed as a sidebar project)
  network.json            # Settings → Runtime → Network (proxy); not ~/.dsh
  logs/
  crashDumps/

Harness data lives under ~/.dsh (override with DSH_HOME):

~/.dsh/
  .credentials.yaml       # API keys (do not commit)
  sessions/
  profiles/
  cordis.patch.yml        # host-plugin enable / disable
VariableRole
DSH_HOMEHarness home (settings, credentials, profiles)
DSH_CWDSpawn cwd (default: current workspace)
DSH_BINDev-only override to a local dsh binary; packaged / default v3 boots in-tree

Develop & build

# Needs: Node 22.19+, pnpm 9+
pnpm install
pnpm dev

# Gates
pnpm typecheck
pnpm test
pnpm style:audit
pnpm build
pnpm run pack       # --dir (unpacked app)
pnpm dist           # current-host installers
pnpm dist:mac       # macOS arm64 + x64 (.dmg + .zip)
pnpm dist:win       # Windows x64 (NSIS + zip)
pnpm dist:linux     # AppImage + deb + rpm

Release (write the matching CHANGELOG.md section first):

./scripts/release-tag.sh 0.1.1
./scripts/release-tag.sh 0.1.1 --push

Cross-compile, signing, and CI notes: docs/BUILD.md.

asar is off because the engine’s profile heal creates real symlinks. scripts/fix-pnpm-collector.mjs runs before electron-builder.


Docs & contributing

AudienceLink
Handoff (start here if you are taking over)docs/HANDOFF.md
Feature mapdocs/FEATURES.md
Protocoldocs/PROTOCOL.md
Architecturedocs/llm-wiki/architecture.md
Build & releasedocs/BUILD.md
Auto-updatedocs/desktop-auto-update.md
ChangelogCHANGELOG.md
Agent coding rulesAGENTS.md

Issues and PRs are welcome. This is a sibling of Grok App; do not land Grok-only surfaces (official xAI account as a product, Imagine, Remote IM).

Author

RongleCat

License

MIT © RongleCat


Follow the author

ChannelLink
X / Twitter铁柱AGI @cgnot996
WeChat Official AccountSearch 「铁柱AGI」 (QR at top left)
WeChat community groupScan the QR at top right
Sibling appGrok App

linux.do 学AI,上L站

If DeepSeek App helps you, please star the repo ⭐