macOS Share menu receiver for DeepSeek Harness: appends shared files, images, text and links to the current thread’s draft attachments (requires the DSH Share app).
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-macos-share
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:bakkhos8/dsh-macos-share#path:/plugins/dsh-macos-share
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Receiving plugin for DSH Share, the macOS Share menu integration for DeepSeek Harness.
Select a thread in Harness, then share a file, image, text or link from another app on the same Mac. Files are appended to the current thread’s input area as attachments. Text and links become a 分享内容.txt attachment. Existing draft text and attachments stay in place. Review the draft, add instructions and click Send yourself.
No session is created and no agent is started by sharing. If no composer is available, the share waits. A transfer binds to the selected thread before reading files; after switching threads, return to the original thread to finish it.
Use the native DSHShare.app setup assistant or the repository’s source installation scripts. This plugin alone cannot add a macOS Share menu entry. Enable dsh-macos-share in Harness and update both the native app and receiving plugin together. The draft adapter targets the interfaces shipped with Harness 0.2.1-rc.5; an unavailable or busy composer retains the share instead of sending it.
The bundled native dsh-share-helper holds an exclusive OS inbox lock. There is no Python, interpreter or separately installed Node.js requirement. Stop other receivers before reloading the intended profile. Unexpected helper exit stops consumption safely.
The installer records the installed app’s helper path in a private .installation.json, supporting /Applications and ~/Applications. Source installations without metadata try those conventional locations. Invalid metadata fails closed. Rerun setup after moving the app. DSH_SHARE_HELPER selects an executable explicitly for isolated verification.
Each share supports at most 128 ordinary files and 256 MiB in total, including the generated text attachment. Manifest metadata is limited to 1 MiB. File bytes stream through authenticated local routes to browser File objects; Harness’s conversation service owns their draft and background upload. Harness may impose further attachment limits.
The local inbox is ~/Library/Application Support/DSHShare/inbox. Once the input area owns all attachments and confirms receipt, the receiver immediately removes the package, delivery state and temporary cleanup receipt. No completed-share or session history is retained. Harness manages the received draft and attachments. Closing or reloading Harness may discard an unsent draft, as with manually added attachments.
Pending, unconfirmed and failed content has no automatic expiry. Interrupted cleanup retries without delivering again. Legacy delivery states without draft mode are preserved in failed/ for review to avoid replaying a possibly submitted share. Do not publish inbox data. scripts/cleanup-inbox.sh previews only proven completed leftovers; manual deletion requires --apply while receivers are stopped.
Uninstall using 卸载 beside the install button or DSH Share → 卸载 DSH Share… after quitting Harness. Unfinished shares, unrelated settings, backups and development source directories are preserved. Received Harness content is untouched.
Code, documentation and the original avatar artwork are MIT licensed.
Links
More in this category
xmanrui/dsh-im★ 3118
Connect IM bots to DeepSeek Harness via QR codes or bot credentials (9 channels: Feishu, WeChat, DingTalk, WeCom, QQ, Slack, Telegram, Discord, and WhatsApp).
shaobeichen/dsh-pocket★ 2685
Remote phone access to the DSH Web UI: scan a QR code for LAN or public (cloudflared tunnel) access with real-time sync, a mobile-adaptive layout, and a settings tab.
OpenPetsHQ/openpets#dsh★ 1373
Bridges DeepSeek Harness lifecycle status, errors, and approval requests to a locally running OpenPets desktop companion.
c1overzz/dsh-bili-scroll★ 1150
Let your DSH agent browse Bilibili on its own, read subtitles, write a daily digest, and @ you when it finds something worth your attention.
inclusionAI/Avernet#deepseek-harness-channel-bcn★ 599
Connects DeepSeek Harness to Avernet's Bot Collaboration Network over WebSocket V2, with automatic onboarding, isolated agent sessions, tool-call events, and multi-bot routing tools.
zaofan-make/dsh-qqbot★ 213
QQ official bot channel for DeepSeek Harness (feature-rich fork of tencent-connect/dsh-qqbot): group and private chat with the full agent, sticker library with auto-tagging and AI meme replies, group management (join approval and mute), botplay interactive card events with paginated catalogs, user extension registry (custom slash commands and QQ tools), scheduled wakeups, remote approvals over QQ, and a floating dock web UI.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.