An AI collaboration mailbox in DeepSeek Harness for messaging, task handoffs and delivery receipts. One package includes MCP integration and a mailbox UI. Requires a separately installed Agent Mail 1.0.0-alpha.7 provider; no automatic model wake or continuous online status.
Install
# from a prebuilt release tarball
dsh plugin --profile web add "https://github.com/dff652/deepseek-harness-community-plugins/releases/download/dsh-agent-mail-v0.2.1/dff652-dsh-agent-mail-0.2.1.tgz"
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:dff652/deepseek-harness-community-plugins#path:/packages/dsh-agent-mail
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
Agent Mail · AI 协作邮箱. One DeepSeek Harness installation mounts an official MCP client and the mailbox UI so tools can send messages, hand off tasks and see delivery or processing receipts. The provider executable, database and credentials remain outside this package. You must connect a separately installed Agent Mail service. Automatic wake and live device presence are not provided here.
Development candidate
Version 0.2.2 is a local unified candidate adapting the mailbox UI to DSH
0.2.0-rc.2.
The exact MCP peer is @deepseek-ai/dsh-mcp-client@0.2.0-rc.2.
Persistent sent receipts and recipient details use the released provider
1.0.0-alpha.7, exposing
comm_sent and comm_agent_details; older providers retain their existing
mail operations but cannot supply those new views. The historical alpha.4
fixture below remains a backward-compatibility gate, not a claim that alpha.4
supports the new APIs.
The web profile shows the mailbox. A headless profile still exposes the MCP tools without loading the browser client. A separate UI installation is no longer required. The optional authenticated connection-management host remains an independently configured provider service.
See unified migration and acceptance.
Deployment contract
The DSH service must define:
| Variable | Role |
|---|---|
DSH_AGENT_MAIL_COMMAND |
Absolute path to reviewed agent-mail-mcp |
DSH_AGENT_MAIL_HOME |
Absolute initialized Agent Mail home |
DSH_AGENT_MAIL_ID |
Distinct non-human identity, never human@local |
DSH_AGENT_MAIL_HUB_URL |
Optional remote Hub URL |
Initialize a disposable project with agent-mail init --path /absolute/path/to/project
and set DSH_AGENT_MAIL_HOME to the initialized home that command created.
Put every participating identity in that home's roster. Missing command, home,
or identity fails closed. Two live DSH participants need different
serverName values and different DSH_AGENT_MAIL_ID values; they may share a
home only as separate mailboxes, not as one shared agent.
Remote Hub tokens use the provider token_file (agent-mail connect set --hub-url URL --token-file PATH). Do not put a bearer token, certificate, or
provider data directory in this package, a committed patch, or a published
artifact.
A later profile/home patch that replaces this row must repeat the full
config object. The default namespace is agent-mail. Override serverName
when a second instance is installed beside the first.
Install an exact package version or reviewed tarball into a disposable DSH profile first. A source checkout is not release acceptance.
dsh plugin --profile <profile> add -w ./dff652-dsh-agent-mail-0.2.2.tgz
dsh --profile <profile> --dump-config
Remove the bundle without deleting the separately managed provider or its data:
dsh plugin --profile <profile> remove @dff652/dsh-agent-mail
dsh --profile <profile> --dump-config
Keep the prior reviewed tarball and digest before an upgrade so the same commands can restore it if acceptance fails.
Configuration-only activation check
From a repository checkout, the package-specific DSH negative activation check
requires a reviewed DSH runtime and fails clearly if dsh is unavailable. The
script is intentionally kept out of the published package. It uses a temporary
DSH home and never starts a provider or touches a live profile:
node tests/dsh-agent-mail-activation.acceptance.mjs
The check covers unset, blank and relative command and home values, and it
refuses human@local as the Harness identity. It is kept outside npm test
because CI environments without DSH must not silently skip real activation
acceptance.
Identity and approval
human@local is a human-only identity. This bundle refuses it as the Harness
AGENT_MAIL_ID when the row is activated. A non-human Harness identity cannot
approve or reject a write effect.
Provider documentation says human approval tools are registered only for
human@local. The historical 1.0.0-alpha.4 fixture advertises
comm_approve and comm_reject to every identity; execution rejects
non-human callers with exit code 6. This bundle freezes that discovery
mismatch and tests the execution denial. It does not hide the two tools and
does not run Harness as human@local to make them succeed.
Expected model-visible names
mcp__agent-mail__comm_send
mcp__agent-mail__comm_inbox
mcp__agent-mail__comm_sent
mcp__agent-mail__comm_agent_details
mcp__agent-mail__comm_claim
mcp__agent-mail__comm_ack
mcp__agent-mail__comm_list_agents
mcp__agent-mail__comm_approve
mcp__agent-mail__comm_reject
mcp__agent-mail__comm_approvals
mcp__agent-mail__comm_tail
mcp__agent-mail__comm_events
mcp__agent-mail__comm_diagnose
The first MCP milestone is asynchronous send/inbox/claim/done/ack. Automatic wake, session injection, wake polling bridges, and starting DSH, Codex, Claude, or Grok when mail arrives are a separate native-integration milestone and are not provided here.
Package contract
The package declares dsh.bundle.patch in package.json and pins the official
MCP client as an exact peer dependency. Deployment-specific command paths,
provider homes, identities, endpoints and credentials stay outside this
package.
The package includes its MIT LICENSE and NOTICE so
those notices travel with every independently distributed tarball.
Links
More in this category
Tencent/WeKnora#dsh-weknora★ 32466
Four read-only tools over a WeKnora knowledge base: list knowledge bases, hybrid passage search, reassemble one document's chunks in order, and WeKnora's own cited RAG or ReAct-agent answer with a resumable session id.
superdesigndev/treg★ 4760
Tool catalog for agents: search ~2,600 external endpoints (SEO and SERP, backlinks, social, people and company enrichment, ad libraries, scraping) by the task you want done, read each one's parameters and per-call price, then call it with the credential injected server-side. Ships the skill plus an MCP row that stays disabled until TREG_TOKEN is set.
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1132
Tencent CloudBase backend for DeepSeek Harness — scaffold and deploy full-stack apps from chat, render query results as table cards with paging, sorting and CSV export, preview a deployment on its domain, and call the CloudBase MCP toolset (`mcp__cloudbase__*`) with device-code login.
gitroomhq/postiz-agent#dsh-postiz★ 506
Connects DeepSeek Harness to Postiz over MCP: list connected social media channels, fetch per-platform posting rules, and schedule, draft, or publish posts to X, LinkedIn, Instagram, Facebook, Threads, TikTok, YouTube, Reddit, Bluesky, Mastodon, Discord, Slack, Telegram and more; adds a postiz workflow skill.
EthanYoQ/Invoice-Downloader#dsh-invoice-downloader★ 500
Local IMAP invoice download, OCR, archive, and Excel reimbursement summaries for DeepSeek Harness.
anysearch-team/anysearch-dsh★ 450
AnySearch-powered real-time web and vertical search provider for DeepSeek Harness.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.