deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
Chat with your local DeepSeek Harness (dsh) agents from your iPhone, right inside the Messages app — no extra apps, no servers, no cloud.
中文版请阅读 README.zh.md.
Turn your Mac into a 24/7 dsh companion that lives in your iMessage threads. Send a message to your bridge account and your local dsh agent picks it up, switches workspaces/sessions, runs tools, and replies back — all without opening a terminal.
This bridge gives you a real chat experience: white bubbles from dsh, blue bubbles from you, one-to-one.
dsh, dsh use stockKing, dsh use 2.dsh sessions stockKing, dsh use stockKing 0.dsh new <message>.DSH_BRIDGE_LANG=en|zh).dsh agent).This repo is a standard DeepSeek Harness plugin bundle, so it can be installed with one command:
dsh plugin --profile web add github:yuunnn/dsh-on-imessage
Then set the required environment variables in the shell that starts dsh web:
export DSH_BUDDY="+861234567890" # your iPhone number
export DSH_AUTHORIZED_FROM="+861234567890" # sender whitelist
export DSH_BRIDGE_ACCOUNT="E:dsh@icloud.com" # the second Apple ID signed into Messages
Restart dsh web. The plugin starts bridge.py automatically when the dsh profile boots.
If pnpm asks to allow build scripts, add
dsh-on-imessage: trueto the profile'spnpm-workspace.yaml— this package has no build step, so this is usually not needed.
Paste this into your Mac terminal:
curl -fsSL https://raw.githubusercontent.com/yuunnn/dsh-on-imessage/main/install.sh | bash
That's it. The installer clones this repo into ~/.dsh/bridges/imessage, starts the daemon, and prints the next steps, including signing in to a second Apple ID in Messages.
The installer only needs
gitandpython3. Everything else is already on your Mac.
dsh@example.com) at appleid.apple.com. This becomes the "dsh persona".DSH_BUDDY = your iPhone number, e.g. +861234567890DSH_AUTHORIZED_FROM = your iPhone number (or the email you reply from)DSH_BRIDGE_ACCOUNT = the iMessage account the bridge listens on, e.g. E:dsh@icloud.compkill -f bridge.py; DSH_BUDDY="+861234567890" DSH_AUTHORIZED_FROM="+861234567890" DSH_BRIDGE_ACCOUNT="E:dsh@icloud.com" ~/.dsh/bridges/imessage/install.sh
dsh help.| Command | Meaning |
|---|---|
dsh |
List workspaces |
dsh use <id\|path\|name> |
Switch workspace (latest session) |
dsh use <id\|path\|name> <session#> |
Switch workspace + specific session |
dsh sessions [<workspace>] |
List sessions |
dsh new <message> |
Start a new session |
| anything else | Continue the current session |
Workspaces are matched by index, full path, or basename — exact match wins, ambiguous matches list candidates.
iPhone iMessage
│ (send to dsh@icloud.com)
▼
Mac Messages (chat.db + osascript)
│
▼
bridge.py (poll new messages)
│
├── dsh web API (127.0.0.1:3080) ──► dsh web UI stays in sync
└── dsh --profile headless --resume (fallback)
│
▼
reply via Messages back to iPhone
AUTHORIZED_FROM handles are processed.Why a second Apple ID? iMessage treats messages between addresses of the same Apple ID as self-chat, which duplicates bubbles. A separate Apple ID gives a clean one-to-one conversation.
Do I need the dsh web UI running? No. The bridge falls back to the headless CLI if the web process is not listening.
Can other people trigger it? No. Only your whitelisted handle(s) can.
Apache-2.0. See LICENSE.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。