Skip to content

docs: create deepseek harness plugin docs - #2974

Open
daveomri wants to merge 3 commits into
apify:masterfrom
daveomri:docs/deepseek-harness-docs
Open

daveomri wants to merge 3 commits into
apify:masterfrom
daveomri:docs/deepseek-harness-docs

Conversation

@daveomri

@daveomri daveomri commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Add DeepSeek Harness integration doc

Guide for users on how to install, set up, etc the Apify plugin for DeepSeek Harness [dead link for now].

Added/modified files

  • sources/platform/integrations/ai/deepseek-harness.md - new page, following the Kimi Code CLI structure
  • static/img/platform/integrations/deepseek.svg - logo (works for both light and dark theme)
  • Cards added to both the AI hub and the top-level integrations hub

⚠️ do not merge until the plugin is out

@daveomri daveomri self-assigned this Sep 11, 2026
@daveomri
daveomri marked this pull request as ready for review September 15, 2026 10:09

- `dsh` sends static MCP headers and has no OAuth flow, so the Apify MCP server authenticates with an API token only.
- `dsh` reads the token at startup, so a change to `.env` needs a restart of the profile.
- A tool call waits up to 5 minutes for an Actor run. Longer runs need a narrower scope, or the Apify CLI to start the run and poll for its result.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The MCP client's toolCallTimeoutMs default is 60,000 ms - does the Apify plugin override it to 5 minutes? If not, this is 60 seconds, which also changes the advice about longer runs.


## Connect a model provider

`dsh` ships no model of its own. To use DeepSeek's own models, set `DEEPSEEK_API_KEY` in the same `.env` before you start the profile.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upstream Configure models documents the DeepSeek key as a field on the DeepSeek card in Settings > Models, stored in $DSH_HOME/.credentials.yaml, and states that model changes take effect without restarting. Does DEEPSEEK_API_KEY in .env also work, or should this point readers at the UI path?

dsh web
```

Describe what you want in natural language. The `apify` skill loads on Apify requests and routes them, so you don't need to name tools yourself.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Web UI guide says a fresh Web UI has no workspace selected and the session composer stays unavailable until one is chosen. Does the plugin preselect a workspace, or does a Choose workspace step belong between dsh web and the first prompt?


## Install the plugin

Install the plugin into the profile you launch. The `web` profile backs the web GUI (`dsh web`), and `tui` backs the terminal app:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

apps/cli/README.md lists the auto-initializing profiles as web, headless, sdk, sdk-minimal, and acp, and annotates its own tui example with "assuming the tui profile is installed". Do readers have to install tui first?

You have two ways to work around this:

- Approve the escalation prompt that the agent raises when a command is denied. It applies to that one command.
- Switch the session to **Full access** sandbox mode before you start, which applies for the whole session.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upstream SandboxMode is read-only | workspace-write | danger-full-access. Is Full access the GUI label for danger-full-access, and where does a reader switch it?

Comment on lines +84 to +85


Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Every other section break in the file uses a single blank line.

Suggested change

Comment on lines +104 to +106
| `apify` | Entry point that routes each request to the right tool or skill and diagnoses authentication problems. |
| `apify-ultimate-scraper` | Extraction with existing Actors for multi-step scraping and lead-generation workflows. |
| `apify-actor-development` | Full Actor lifecycle - template selection, development, local testing, and deployment with `apify push`. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The first three descriptions are noun phrases while the last three are verb phrases.

Suggested change
| `apify` | Entry point that routes each request to the right tool or skill and diagnoses authentication problems. |
| `apify-ultimate-scraper` | Extraction with existing Actors for multi-step scraping and lead-generation workflows. |
| `apify-actor-development` | Full Actor lifecycle - template selection, development, local testing, and deployment with `apify push`. |
| `apify` | Routes each request to the right tool or skill and diagnoses authentication problems. |
| `apify-ultimate-scraper` | Extracts data with existing Actors for multi-step scraping and lead-generation workflows. |
| `apify-actor-development` | Covers the full Actor lifecycle - template selection, development, local testing, and deployment with `apify push`. |


## Related integrations

- [MCP server integration](/integrations/mcp) - Use the Apify MCP server with other clients

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The other two items are noun phrases.

Suggested change
- [MCP server integration](/integrations/mcp) - Use the Apify MCP server with other clients
- [MCP server integration](/integrations/mcp) - The same MCP server with other clients

- [Apify plugin for DeepSeek Harness](https://www.npmjs.com/package/dsh-apify-plugin) - Plugin package and setup notes
- [DeepSeek Harness repository](https://github.com/deepseek-ai/deepseek-harness) - Source, profiles, and plugin packaging docs
- [Apify MCP server documentation](/integrations/mcp) - Tools, authentication, and configuration
- [Apify Store](https://apify.com/store) - Browse Actors you can run from DeepSeek Harness

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The other three items are noun phrases.

Suggested change
- [Apify Store](https://apify.com/store) - Browse Actors you can run from DeepSeek Harness
- [Apify Store](https://apify.com/store) - Actors you can run from DeepSeek Harness

- [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) - installed locally, running Node.js `^22.19.0 || >=24.0.0`. Older versions fail with a `node:sqlite` error.
- [pnpm](https://pnpm.io/installation) on your `PATH` - `dsh plugin` forwards its arguments to pnpm.
- A model provider configured in `dsh` - see [Connect a model provider](#connect-a-model-provider).
- [Apify CLI](/cli/docs/installation) - only for the Actor development, actorization, and ultimate scraper skills.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apify CLI takes the article.

Suggested change
- [Apify CLI](/cli/docs/installation) - only for the Actor development, actorization, and ultimate scraper skills.
- [The Apify CLI](/cli/docs/installation) - required only for the Actor development, actorization, and ultimate scraper skills.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants