What is DeepSeek Harness?
DeepSeek Harness, dsh, is DeepSeek’s open-source agent harness, built so that everything is a plugin. It runs a local web UI (npx @deepseek-ai/dsh web), and its generic MCP client plugin connects any MCP server, local or remote. It is in developer preview, and DeepSeek warns that breaking changes are coming.
DeepSeek Harness, the DeepSeek app or the API? This page is the harness. We have found no documented way to add a custom MCP server to the DeepSeek chat app, and the DeepSeek API is a model you call from your own code, so neither has a setup of its own here.
Hermoso is marketing on autopilot: 876+ tools over one MCP endpoint covering competitor ad research, finished image and video ads across 90+ models, publishing and scheduling to ten social channels, and campaign management on Meta, Google Ads, Microsoft Advertising, Reddit Ads, LinkedIn, Pinterest, X Ads, TikTok Ads, Snapchat Ads, ChatGPT Ads and Apple Search Ads. One connection, and DeepSeek Harness has all of it.
Connect Hermoso to DeepSeek Harness
- Install and sign in.
Your browser opens once. Nothing to create and nothing to paste: the credential is stored owner-only innpm install -g hermoso && hermoso auth login~/.hermoso/config.json. On a machine with no browser,hermoso auth login --token hmk_…takes a key from MCP & CLI → Terminal & API keys instead. - Add Hermoso to a patch layer. Merge this entry into
$DSH_HOME/cordis.patch.ymlfor every profile, or$DSH_HOME/profiles/<name>/cordis.patch.ymlfor one. Merge it rather than overwriting the file, since it may already hold other patches:- insert: - id: mcp-hermoso name: '@deepseek-ai/dsh-mcp-client' config: serverName: hermoso transport: stdio command: npx args: ['-y', 'hermoso', 'mcp'] env: {} - Restart
dsh web. Discovery runs in the background, so wait until themcp__hermoso__tools are listed before the first request. - Ask DeepSeek Harness for something. “Pull my three closest competitors’ longest-running ads and remix the best hook into a 9:16 video,” or “post this render to the channel.” The agent picks the tools; you approve the spend.
The local server is the route here because DeepSeek’s MCP client documents stdio and streamable HTTP with headers, and no OAuth sign-in. Its stdio bridge strips credential-looking environment variables before it starts a server, which does not matter for Hermoso: hermoso mcp reads the credential that hermoso auth login stored on disk. To use the hosted endpoint instead, set transport: streamable-http, the url and an Authorization: Bearer hmk_… header with a key from MCP & CLI. Quoted from the deepseek-ai/deepseek-harness repository, read on 2026-10-03, and documented rather than run here. Hermoso is not affiliated with or endorsed by DeepSeek.
Every channel DeepSeek Harness can publish to
Each channel links to its Hermoso page, with that channel’s real caption cap, visibility options and what it refuses. DeepSeek Harness reaches all of them through the same tools as every other agent.
| Channel | Carousel | Text limit |
|---|---|---|
| 2+ photos, our cap of 30 | 63,206 chars | |
| 2–10, images + video | 2,200 chars | |
| Threads | 2–20, images + video | 500 chars |
| TikTok | Up to 35 images | 2,200 / 4,000 chars |
| YouTube | Refused (the unit is a video) | 100-char title |
| X | Refused (4 media render as a grid) | 280, or 25,000 on Premium |
| 2–20 images, company Page only | 3,000 chars | |
| 2–5 images (blocked on Trial) | 800-char description | |
| Bluesky | 2 to 4 images | 300 chars and 3,000 bytes |
| Telegram | 2 to 10, photos and video | 4,096, or 1,024 with media |
Every one of them queues through one schedule_post calendar with per-channel captions, and list_scheduled reports per-channel outcomes rather than a single green tick, because “the job succeeded” and “the post went out” are different questions. A scheduled post lives in Hermoso, so it goes out on time whether or not DeepSeek Harness is still running.
Two channels that are built but not offered
Being straight about this is worth more than a longer list. Two publishing surfaces exist in the codebase and are held back, each waiting on the platform rather than on us:
- Reddit: organic posting and post stats are built, but Reddit’s Responsible Builder Policy requires explicit written approval before an app may use the Data API, and that ticket has not been granted. The connector is held back rather than offered as an OAuth screen leading to a dead API. Reddit Ads is a different connection and it is live: the full campaign tree, forecasting, targeting search, pixels and lead forms.
- Google Business Profile:
post_to_google_businessis built, with events, offers and a real call-to-action choice, and so are the listing insights. Google allowlists the Business Profile API per project and the default quota is zero, so every call would 403 for every user. It stays gated until Google grants the project access.
A connector that would hand you a successful OAuth and a dead API is worse than one that is not offered yet, so neither is listed as available.
Three things to type once it is connected
- Research. “Who are my three closest competitors, and what are their longest-running Meta ads? Tell me which hook keeps repeating.” It runs
find_competitors→pull_competitor_ads→mine_angles. - Create. “Make me a 9:16 UGC video ad using that hook, with my real product photo and captions burned in.” It runs
get_brand→plan_ad→render_ad, and hands back a finished mp4 URL. - Ship. “Schedule it to Instagram and TikTok for Tuesday 9am, and build a paused Meta campaign around it targeting the US at $30 a day.” It runs
schedule_post→create_meta_campaign→create_meta_ad.
What DeepSeek Harness cannot do on its own
An agent with a budget is only useful if the blast radius is bounded, so the fence is in the server rather than in a prompt. Every ad campaign, ad set, ad group and ad is created paused, and the status switches that arm real money refuse to run without an explicit confirmation flag. Every render is quoted first (hermoso_capabilities publishes each model’s exact credit cost before anything spends). Credits are reserved before the first provider call and settled at the exact cost afterwards, so a failed dispatch refunds rather than leaving you billed for nothing. Deletes are confirm-gated too, and every campaign tree is read back from the ad platform before your agent tells you what it built.
One step is deliberately yours: linking each account, once. Most channels link through the platform’s own OAuth consent screen in a browser; Bluesky takes an app password and Telegram a bot token, pasted in Hermoso. Everything after that is a tool call.
How the harness confirms a tool call depends on your profile, not on Hermoso. Hermoso’s gates hold either way: campaigns are born paused, spend switches and deletes need an explicit confirmation, and every render is priced before it runs.
What it costs
Adding Hermoso to DeepSeek Harness costs nothing extra: there is one credit meter, and it does not care which client called. A free account starts with 30 credits at signup and 250+ more to earn. Credits are spent only on AI models and Ad Spy research; posting, scheduling, ads management and analytics are free on every channel except X, which bills per call because X charges per API request. Paid plans are $19, $49 and $149 a month for 1,000, 3,000 and 10,000 credits, and every feature is on every plan. hermoso_capabilities gives the exact credit price of any render before it runs.
Troubleshooting
- A local server prints help and exits. The arguments are missing the trailing
mcp.npx -y hermosoon its own prints help;npx -y hermoso mcpstarts the server. - There is no browser on that machine. Create a key under MCP & CLI → Terminal & API keys and run
npx -y hermoso auth login --token hmk_…instead. - A channel is missing. Connect it in Hermoso under Settings → Connectors, then ask DeepSeek Harness to run
list_connectorsagain. - DeepSeek Harness answers without using Hermoso. Name it in the request: “use Hermoso to …”. That leaves no doubt about which tools should do the job.
- No mcp__hermoso__ tools after a restart. Discovery is asynchronous, so give it a moment. If they still do not appear, check that the entry was merged into the patch file rather than replacing it, and that npx -y hermoso auth login ran on the same machine.
Beyond publishing
Publishing is the last step, and it is the smallest one. The same connection gives DeepSeek Harness the Meta, Google and LinkedIn ad libraries plus organic TikTok, Instagram, YouTube, Reddit and Threads for research; 100+ image, video, voice and writing models on a single credit meter, with UGC avatars, dubbing, upscaling and native HTML ad formats; and the full campaign tree on eleven paid platforms. There are no per-vendor API keys to hold and no separate app to learn.
See the full tool list, every agent Hermoso works in, or what a marketing MCP is.
Hermoso in other agents
The same Hermoso account works in every agent below, so your brand, library, schedule and credits follow you between them.
| Agent | How Hermoso connects |
|---|---|
| Claude | Connects with OAuth, nothing to paste |
| ChatGPT | Connects with OAuth, nothing to paste |
| Claude Code | Signs in from the terminal with hermoso auth login, nothing to paste |
| Cursor | Signs in from the terminal with hermoso auth login, nothing to paste |
| Codex | Signs in from the terminal with hermoso auth login, nothing to paste |
| Cline | Takes an API key in an Authorization header |
| OpenClaw | Signs in from the terminal with hermoso auth login, nothing to paste |
| Grok Bot | Adds the Hermoso Marketing Bot template and takes an API key in the chat, or signs in from the Bot’s own terminal |
| Hermes | Signs in from the terminal with hermoso auth login, nothing to paste |
| Gemini CLI | Signs in from the terminal with hermoso auth login, nothing to paste |
| Perplexity | Connects with OAuth, nothing to paste |
| Le Chat | Connects with OAuth, nothing to paste |
| Claude Cowork | Connects with OAuth, nothing to paste |
| Perplexity Computer | Connects with OAuth, nothing to paste |
| Paperclip | Connects with OAuth, nothing to paste |
| Gemini | Connects with OAuth, nothing to paste |
| Grok Build | Signs in from the terminal with hermoso auth login, nothing to paste |
| Kimi Code | Adds the hosted URL to mcp.json and signs in with /mcp-config login, nothing to paste |
| Manus | Takes an API key in an Authorization header |
| Muse | One chat message, then an OAuth sign-in |
| Any MCP client | The hosted URL with OAuth, or a local server over stdio |
Frequently asked questions
Can DeepSeek Harness post to social media?
Yes, once you connect Hermoso's MCP server. DeepSeek Harness can then publish to Facebook, Instagram, Threads, TikTok, YouTube, X, LinkedIn, Pinterest, Bluesky and Telegram, and schedule to all ten from one queue with per-channel captions.
How do I add Hermoso to DeepSeek Harness?
Sign in once with npx -y hermoso auth login, then merge a @deepseek-ai/dsh-mcp-client entry for hermoso into $DSH_HOME/cordis.patch.yml with transport stdio, command npx and args -y hermoso mcp. The browser sign-in stores the credential, so no key goes in the YAML. The local server is the route here because DeepSeek’s MCP client documents stdio and streamable HTTP with headers, and no OAuth sign-in. Its stdio bridge strips credential-looking environment variables before it starts a server, which does not matter for Hermoso: hermoso mcp reads the credential that hermoso auth login stored on disk. To use the hosted endpoint instead, set transport: streamable-http, the url and an Authorization: Bearer hmk_… header with a key from MCP & CLI. Quoted from the deepseek-ai/deepseek-harness repository, read on 2026-10-03, and documented rather than run here. Hermoso is not affiliated with or endorsed by DeepSeek.
Can DeepSeek Harness run my Meta and Google ad campaigns?
Yes. DeepSeek Harness can build the whole tree on Meta, Google Ads, Microsoft Advertising, Reddit Ads, LinkedIn, Pinterest, X Ads, TikTok Ads, Snapchat Ads, ChatGPT Ads and Apple Search Ads. The summary you get is built from a read-back of what the platform actually stored.
Does using Hermoso from DeepSeek Harness cost extra?
No. There is one credit meter and it does not care which client called. A free account starts with 30 credits plus 250+ earnable; paid plans are $19, $49 and $149 a month for 1,000, 3,000 and 10,000 credits. Publishing is free on every channel except X, which bills per call because X charges us per API request.
Is it safe to let DeepSeek Harness post and run ads for me?
Hermoso keeps the steps that cost money or cannot be undone behind gates on its own server, whatever DeepSeek Harness is set to do: every campaign is created paused, spend switches and deletes need an explicit confirmation, and a post only reaches an account you connected and ticked in Hermoso. How the harness confirms a tool call depends on your profile, not on Hermoso. Hermoso’s gates hold either way: campaigns are born paused, spend switches and deletes need an explicit confirmation, and every render is priced before it runs.
Can the DeepSeek chat app use Hermoso?
Not that we can document. Hermoso works in DeepSeek Harness, the open-source agent harness, through its MCP client plugin. We have found no custom MCP option in the DeepSeek chat app, so we do not claim one.
Start free with 30 credits at signup and 250+ more to earn. Every feature is on every plan. Credits are spent only on AI models and Ad Spy research; posting, scheduling, ads management and analytics are free.
Start free → See pricing