From 8d4e430475a29c50fbc0cb63fd20963cd18be616 Mon Sep 17 00:00:00 2001 From: David Omrai Date: Fri, 11 Sep 2026 15:52:49 +0200 Subject: [PATCH 1/5] docs: create deepseek harness plugin docs --- .../integrations/ai/deepseek-harness.md | 176 ++++++++++++++++++ sources/platform/integrations/ai/index.mdx | 7 + sources/platform/integrations/index.mdx | 7 + static/img/platform/integrations/deepseek.svg | 1 + 4 files changed, 191 insertions(+) create mode 100644 sources/platform/integrations/ai/deepseek-harness.md create mode 100644 static/img/platform/integrations/deepseek.svg diff --git a/sources/platform/integrations/ai/deepseek-harness.md b/sources/platform/integrations/ai/deepseek-harness.md new file mode 100644 index 0000000000..b251f2e5f2 --- /dev/null +++ b/sources/platform/integrations/ai/deepseek-harness.md @@ -0,0 +1,176 @@ +--- +title: DeepSeek Harness integration +sidebar_label: DeepSeek Harness +description: Learn how to install the Apify plugin for DeepSeek Harness to discover, run, and build Actors with the Apify MCP server and bundled workflow skills. +slug: /integrations/deepseek-harness +--- + +import ThirdPartyDisclaimer from '@site/sources/_partials/_third-party-integration.mdx'; + +[DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (`dsh`) is DeepSeek's open-source agent harness. It boots a profile, an ordered stack of plugin layers, and runs the agent either in your terminal or in a local web GUI, backed by the model provider you configure. + +The [Apify plugin for DeepSeek Harness](https://www.npmjs.com/package/dsh-apify-plugin) connects `dsh` to Apify's library of [Actors](https://apify.com/store) and bundles: + +- The [Apify MCP server](/integrations/mcp) for searching Apify Store, running Actors, and retrieving datasets through the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro). +- An `apify` router skill that turns a natural-language request into the right tool or skill, and diagnoses missing authentication. +- Five workflow skills for common tasks (see [Bundled skills](#bundled-skills)). + + + +## Prerequisites + +- [An Apify account](https://console.apify.com/sign-up) - sign up for free if you don't have one. +- [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). + +## 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: + +```bash +dsh plugin --profile web add dsh-apify-plugin +``` + +If you run `dsh` through npx rather than a global install, prefix the command: + +```bash +npx @deepseek-ai/dsh plugin --profile web add dsh-apify-plugin +``` + +To uninstall: + +```bash +dsh plugin --profile web remove dsh-apify-plugin +``` + +## Connect your Apify account + +The plugin enables the Apify MCP server on install. Searching Apify Store, inspecting Actors, and reading Apify documentation work without a token. Running Actors, reading datasets and key-value stores, and retrieving run data need one. + +`dsh` sends static MCP headers and has no OAuth flow, so authenticate with an API token: + +1. Copy your token from [Apify Console > Settings > Integrations](https://console.apify.com/settings/integrations?utm_source=deepseek-harness&utm_medium=integrations). + +1. Create a `.env` file in the directory you launch `dsh` from: + + ```bash + # .env + APIFY_TOKEN= + ``` + +1. Restart the profile. + +:::tip Where the token is read from + +`dsh` reads `.env` from the launch directory only, without searching parent directories. A `.env` in `$DSH_HOME` acts as a machine-wide fallback, and a variable already exported in your shell takes precedence over both. Add `.env` to your `.gitignore` so the token stays out of version control. + +::: + +The token is read once, at startup. Exporting it inside a running session has no effect, so restart the profile after you change it. + +## Connect a model provider + +`dsh` ships no model of its own. Open **Settings > Models** and select **Add provider**, then choose your provider and supply its API key. + +For a model served on your own machine, such as LM Studio or Ollama, add a custom provider and enter the URL and port it listens on. + +## Run your first prompt + +Start the profile: + +```bash +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. + +> Use Apify to find a good Actor for scraping Google Maps places. Show me the best option, its input requirements, pricing model, and what kind of dataset output it returns. Do not run the Actor yet. + +The router searches Apify Store, fetches the top Actor's details through the Apify MCP server, and summarizes its inputs, pricing, and output - all without running the Actor. + +## Bundled skills + +| Skill | Description | +| --- | --- | +| `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-actorization` | Converts existing JavaScript, TypeScript, Python, or CLI projects into Apify Actors. | +| `apify-generate-output-schema` | Generates dataset and key-value store schemas for existing Actors. | +| `apify-sdk-integration` | Integrates Actor execution into applications using the `apify-client` package. | + +Example prompts that route to specific skills: + +_Ultimate scraper:_ + +> Find 10 highly rated coffee shops in Seattle with name, address, rating, phone, and website. + +_Actor development:_ + +> Create an Apify Actor that accepts a `startUrl` and `maxPages` input, crawls the site, and stores each page title and URL. + +_SDK integration:_ + +> Add Apify to this project. The Node.js API route should run an Actor and return dataset items as JSON. + +The Actor development, actorization, and ultimate scraper skills call the local `apify` command. Install the Apify CLI before using them: + +```bash +npm install -g apify-cli +``` + +## Grant the Apify CLI file access + +The Apify CLI keeps its credentials in `~/.apify/`, which sits outside the session workspace. Under the default `workspace-write` sandbox mode, `dsh` denies that path and every `apify` command fails with `EPERM`, even when the login itself is valid. + +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. + +If you'd rather keep the sandbox narrow, set `APIFY_TOKEN` instead and let the agent run Actors through the Apify MCP server, which needs no local file access. + +## Troubleshooting + +### The agent says it can't run an Actor + +No `APIFY_TOKEN` was set when `dsh` started, so only the anonymous MCP tools loaded and the agent can search but not run. Add the token to your `.env` file and restart the profile. See [Connect your Apify account](#connect-your-apify-account). + +### The Apify MCP server fails to start with `invalid_token` + +The token is present but rejected. Check for stray quotes or trailing whitespace in the `.env` file, regenerate the token in [Apify Console > Settings > Integrations](https://console.apify.com/settings/integrations?utm_source=deepseek-harness&utm_medium=integrations) if needed, and restart the profile. + +### The `apify` command fails with `EPERM` + +The sandbox is blocking `~/.apify/`, not your login, so running `apify login` again won't fix it. See [Grant the Apify CLI file access](#grant-the-apify-cli-file-access). + +### The plugin doesn't show up after installing + +Print the composed profile tree and confirm the plugin's rows are in it: + +```bash +dsh --profile web --dump-config +``` + +Check that you installed into the profile you actually launch. Installing into `web` doesn't affect the `tui` profile. + +## Limitations + +- `dsh` sends static MCP headers and has no OAuth flow, so the Apify MCP server authenticates with an API token only. +- The token is read at startup, so a change to `.env` needs a restart of the profile. +- A tool call waits up to five minutes for an Actor run. Longer runs need a narrower scope, or the Apify CLI to start the run and poll for its result. +- Each Actor run consumes Apify platform usage from your plan in addition to any model provider costs. See [Billing](/account/billing) for details. +- Skills that edit files in your project (Actor development, actorization, SDK integration) make local changes - review them before deploying or committing. + +## Related integrations + +- [MCP server integration](/integrations/mcp) - Use the Apify MCP server with other clients +- [Kimi Code CLI integration](/integrations/kimi-code-cli) - The equivalent plugin for Kimi Code CLI +- [OpenCode integration](/integrations/opencode) - The equivalent plugin for OpenCode + +## Resources + +- [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 diff --git a/sources/platform/integrations/ai/index.mdx b/sources/platform/integrations/ai/index.mdx index e50e0697de..cb5bfb1301 100644 --- a/sources/platform/integrations/ai/index.mdx +++ b/sources/platform/integrations/ai/index.mdx @@ -195,6 +195,13 @@ Chat and coding assistants you connect to Apify through the Apify MCP server or imageUrl="/img/platform/integrations/qwen.svg" smallImage /> + ## By provider diff --git a/sources/platform/integrations/index.mdx b/sources/platform/integrations/index.mdx index 459dc05b1d..fdb0c2a3cd 100644 --- a/sources/platform/integrations/index.mdx +++ b/sources/platform/integrations/index.mdx @@ -163,6 +163,13 @@ Plug Apify Actors into the AI stack - chat clients like Claude and ChatGPT via t imageUrlDarkTheme="/img/platform/integrations/kimi-white.svg" smallImage /> + [See all AI integrations →](/integrations/ai) diff --git a/static/img/platform/integrations/deepseek.svg b/static/img/platform/integrations/deepseek.svg new file mode 100644 index 0000000000..54f14c03d5 --- /dev/null +++ b/static/img/platform/integrations/deepseek.svg @@ -0,0 +1 @@ +DeepSeek From 33e8a98b3d3f69ead3d306cec5954902f0688c29 Mon Sep 17 00:00:00 2001 From: David Omrai Date: Tue, 15 Sep 2026 12:06:57 +0200 Subject: [PATCH 2/5] docs: update deepseek harness plugin docs --- .../integrations/ai/deepseek-harness.md | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/sources/platform/integrations/ai/deepseek-harness.md b/sources/platform/integrations/ai/deepseek-harness.md index b251f2e5f2..3bdd1fd3a5 100644 --- a/sources/platform/integrations/ai/deepseek-harness.md +++ b/sources/platform/integrations/ai/deepseek-harness.md @@ -7,7 +7,7 @@ slug: /integrations/deepseek-harness import ThirdPartyDisclaimer from '@site/sources/_partials/_third-party-integration.mdx'; -[DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (`dsh`) is DeepSeek's open-source agent harness. It boots a profile, an ordered stack of plugin layers, and runs the agent either in your terminal or in a local web GUI, backed by the model provider you configure. +[DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (`dsh`) is DeepSeek's open-source agent harness. It boots a profile, an ordered stack of plugin layers. It then runs the agent in your terminal or in a local web GUI, backed by the model provider you configure. The [Apify plugin for DeepSeek Harness](https://www.npmjs.com/package/dsh-apify-plugin) connects `dsh` to Apify's library of [Actors](https://apify.com/store) and bundles: @@ -23,6 +23,13 @@ The [Apify plugin for DeepSeek Harness](https://www.npmjs.com/package/dsh-apify- - [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. + +:::note Most work needs no local CLI + +The Apify MCP server covers Apify Store search and platform runs, so nothing has to be installed locally for them. Install the CLI only for the three skills noted above. + +::: ## Install the plugin @@ -67,13 +74,14 @@ The plugin enables the Apify MCP server on install. Searching Apify Store, inspe ::: -The token is read once, at startup. Exporting it inside a running session has no effect, so restart the profile after you change it. +`dsh` reads the token once, at startup. Exporting it inside a running session has no effect, so restart the profile after you change it. ## Connect a model provider -`dsh` ships no model of its own. Open **Settings > Models** and select **Add provider**, then choose your provider and supply its API key. +`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. + +For any other provider, start the profile first, then open **Settings > Models** and select **Add provider**, choose your provider, and supply its API key. -For a model served on your own machine, such as LM Studio or Ollama, add a custom provider and enter the URL and port it listens on. ## Run your first prompt @@ -93,6 +101,7 @@ The router searches Apify Store, fetches the top Actor's details through the Api | Skill | Description | | --- | --- | +| `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-actorization` | Converts existing JavaScript, TypeScript, Python, or CLI projects into Apify Actors. | @@ -113,15 +122,17 @@ _SDK integration:_ > Add Apify to this project. The Node.js API route should run an Actor and return dataset items as JSON. -The Actor development, actorization, and ultimate scraper skills call the local `apify` command. Install the Apify CLI before using them: +## Install the Apify CLI + +The Actor development, actorization, and ultimate scraper skills call the local `apify` command, so install the [Apify CLI](/cli/docs/installation) before using them: ```bash npm install -g apify-cli ``` -## Grant the Apify CLI file access +### Grant the Apify CLI file access -The Apify CLI keeps its credentials in `~/.apify/`, which sits outside the session workspace. Under the default `workspace-write` sandbox mode, `dsh` denies that path and every `apify` command fails with `EPERM`, even when the login itself is valid. +The CLI keeps its credentials in `~/.apify/`, which sits outside the session workspace. Under the default `workspace-write` sandbox mode, `dsh` denies that path and every `apify` command fails with `EPERM`, even when the login itself is valid. You have two ways to work around this: @@ -132,6 +143,8 @@ If you'd rather keep the sandbox narrow, set `APIFY_TOKEN` instead and let the a ## Troubleshooting +The failures below cover missing or invalid tokens, sandbox denials, and profile mismatches. + ### The agent says it can't run an Actor No `APIFY_TOKEN` was set when `dsh` started, so only the anonymous MCP tools loaded and the agent can search but not run. Add the token to your `.env` file and restart the profile. See [Connect your Apify account](#connect-your-apify-account). @@ -157,8 +170,8 @@ Check that you installed into the profile you actually launch. Installing into ` ## Limitations - `dsh` sends static MCP headers and has no OAuth flow, so the Apify MCP server authenticates with an API token only. -- The token is read at startup, so a change to `.env` needs a restart of the profile. -- A tool call waits up to five minutes for an Actor run. Longer runs need a narrower scope, or the Apify CLI to start the run and poll for its result. +- `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. - Each Actor run consumes Apify platform usage from your plan in addition to any model provider costs. See [Billing](/account/billing) for details. - Skills that edit files in your project (Actor development, actorization, SDK integration) make local changes - review them before deploying or committing. From 362c3f23aa02f51c281a2ea67c6afe9580f03d7d Mon Sep 17 00:00:00 2001 From: David Omrai Date: Mon, 21 Sep 2026 09:50:53 +0200 Subject: [PATCH 3/5] docs: apply reviewer wording suggestions to deepseek harness page --- .../integrations/ai/deepseek-harness.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/sources/platform/integrations/ai/deepseek-harness.md b/sources/platform/integrations/ai/deepseek-harness.md index 3bdd1fd3a5..0b82f32b5d 100644 --- a/sources/platform/integrations/ai/deepseek-harness.md +++ b/sources/platform/integrations/ai/deepseek-harness.md @@ -23,7 +23,7 @@ The [Apify plugin for DeepSeek Harness](https://www.npmjs.com/package/dsh-apify- - [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. +- [The Apify CLI](/cli/docs/installation) - required only for the Actor development, actorization, and ultimate scraper skills. :::note Most work needs no local CLI @@ -53,7 +53,7 @@ dsh plugin --profile web remove dsh-apify-plugin ## Connect your Apify account -The plugin enables the Apify MCP server on install. Searching Apify Store, inspecting Actors, and reading Apify documentation work without a token. Running Actors, reading datasets and key-value stores, and retrieving run data need one. +The plugin enables the Apify MCP server on install. Searching Apify Store, inspecting Actors, and reading the Apify documentation work without a token. Running Actors, reading datasets and key-value stores, and retrieving run data need one. `dsh` sends static MCP headers and has no OAuth flow, so authenticate with an API token: @@ -80,8 +80,7 @@ The plugin enables the Apify MCP server on install. Searching Apify Store, inspe `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. -For any other provider, start the profile first, then open **Settings > Models** and select **Add provider**, choose your provider, and supply its API key. - +For any other provider, start the profile first, then open **Settings > Models**, select **Add provider**, choose your provider, and supply its API key. ## Run your first prompt @@ -101,9 +100,9 @@ The router searches Apify Store, fetches the top Actor's details through the Api | Skill | Description | | --- | --- | -| `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`. | | `apify-actorization` | Converts existing JavaScript, TypeScript, Python, or CLI projects into Apify Actors. | | `apify-generate-output-schema` | Generates dataset and key-value store schemas for existing Actors. | | `apify-sdk-integration` | Integrates Actor execution into applications using the `apify-client` package. | @@ -173,11 +172,11 @@ Check that you installed into the profile you actually launch. Installing into ` - `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. - Each Actor run consumes Apify platform usage from your plan in addition to any model provider costs. See [Billing](/account/billing) for details. -- Skills that edit files in your project (Actor development, actorization, SDK integration) make local changes - review them before deploying or committing. +- Skills that edit files in your project (Actor development, actorization, and SDK integration) make local changes - review them before deploying or committing. ## Related integrations -- [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 - [Kimi Code CLI integration](/integrations/kimi-code-cli) - The equivalent plugin for Kimi Code CLI - [OpenCode integration](/integrations/opencode) - The equivalent plugin for OpenCode @@ -186,4 +185,4 @@ Check that you installed into the profile you actually launch. Installing into ` - [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 +- [Apify Store](https://apify.com/store) - Actors you can run from DeepSeek Harness From 04245c98d2ad3c4866e42447f53e5803bb0faa57 Mon Sep 17 00:00:00 2001 From: David Omrai Date: Mon, 21 Sep 2026 12:55:47 +0200 Subject: [PATCH 4/5] docs: correct deepseek harness timeout, profiles, and model provider setup --- .../integrations/ai/deepseek-harness.md | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/sources/platform/integrations/ai/deepseek-harness.md b/sources/platform/integrations/ai/deepseek-harness.md index 0b82f32b5d..a828d0f599 100644 --- a/sources/platform/integrations/ai/deepseek-harness.md +++ b/sources/platform/integrations/ai/deepseek-harness.md @@ -33,7 +33,7 @@ The Apify MCP server covers Apify Store search and platform runs, so nothing has ## 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: +Install the plugin into the profile you launch. The `web` profile backs the web GUI (`dsh web`), and `headless` answers a single task in the terminal and exits: ```bash dsh plugin --profile web add dsh-apify-plugin @@ -51,6 +51,16 @@ To uninstall: dsh plugin --profile web remove dsh-apify-plugin ``` +:::note Install into every profile you use + +A profile gets the plugin only if you add it there. To use the terminal as well, repeat the command with `--profile headless`, then run a one-off task: + +```bash +dsh --profile headless "Find an Actor for scraping Google Maps places" +``` + +::: + ## Connect your Apify account The plugin enables the Apify MCP server on install. Searching Apify Store, inspecting Actors, and reading the Apify documentation work without a token. Running Actors, reading datasets and key-value stores, and retrieving run data need one. @@ -70,7 +80,7 @@ The plugin enables the Apify MCP server on install. Searching Apify Store, inspe :::tip Where the token is read from -`dsh` reads `.env` from the launch directory only, without searching parent directories. A `.env` in `$DSH_HOME` acts as a machine-wide fallback, and a variable already exported in your shell takes precedence over both. Add `.env` to your `.gitignore` so the token stays out of version control. +`dsh` reads `.env` from the launch directory only, without searching parent directories. A `.env` in the harness home (`~/.dsh` by default, or `$DSH_HOME` if you set it) acts as a machine-wide fallback, and a variable already exported in your shell takes precedence over both. Add `.env` to your `.gitignore` so the token stays out of version control. ::: @@ -78,9 +88,7 @@ The plugin enables the Apify MCP server on install. Searching Apify Store, inspe ## 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. - -For any other provider, start the profile first, then open **Settings > Models**, select **Add provider**, choose your provider, and supply its API key. +`dsh` ships no model of its own. Start the profile, then open **Settings > Models**, select **Add provider**, choose your provider, and supply its API key. Keys saved here live in `~/.dsh/.credentials.yaml` and take effect without a restart. To set a DeepSeek key before launch, put `DEEPSEEK_API_KEY` in the same `.env` file as `APIFY_TOKEN`. ## Run your first prompt @@ -164,13 +172,13 @@ Print the composed profile tree and confirm the plugin's rows are in it: dsh --profile web --dump-config ``` -Check that you installed into the profile you actually launch. Installing into `web` doesn't affect the `tui` profile. +Check that you installed into the profile you actually launch. Installing into `web` doesn't affect `headless`, and the reverse. ## Limitations - `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. +- The plugin raises the MCP tool call timeout from the `dsh` default of 60 seconds to 5 minutes. Longer runs need a narrower scope, or the Apify CLI to start the run and poll for its result. - Each Actor run consumes Apify platform usage from your plan in addition to any model provider costs. See [Billing](/account/billing) for details. - Skills that edit files in your project (Actor development, actorization, and SDK integration) make local changes - review them before deploying or committing. From 8a8fcd55f534ea470c04c9ef3be4ed4a1486baa2 Mon Sep 17 00:00:00 2001 From: David Omrai Date: Mon, 21 Sep 2026 13:45:12 +0200 Subject: [PATCH 5/5] docs: reorder deepseek harness setup into dependency order --- .../integrations/ai/deepseek-harness.md | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/sources/platform/integrations/ai/deepseek-harness.md b/sources/platform/integrations/ai/deepseek-harness.md index a828d0f599..9b11365623 100644 --- a/sources/platform/integrations/ai/deepseek-harness.md +++ b/sources/platform/integrations/ai/deepseek-harness.md @@ -86,17 +86,25 @@ The plugin enables the Apify MCP server on install. Searching Apify Store, inspe `dsh` reads the token once, at startup. Exporting it inside a running session has no effect, so restart the profile after you change it. +## Start the profile + +```bash +dsh web +``` + +Open the URL `dsh` prints. It carries a one-time token, so the bare address doesn't authenticate. + +On first launch, no workspace exists. Select **Add workspace** in the workspace menu and choose the folder you want the agent to work in. + ## Connect a model provider -`dsh` ships no model of its own. Start the profile, then open **Settings > Models**, select **Add provider**, choose your provider, and supply its API key. Keys saved here live in `~/.dsh/.credentials.yaml` and take effect without a restart. To set a DeepSeek key before launch, put `DEEPSEEK_API_KEY` in the same `.env` file as `APIFY_TOKEN`. +`dsh` ships no model of its own. Open **Settings > Models**, select **Add provider**, choose your provider, and supply its API key. DeepSeek has a card there from the start; other providers you add yourself. Keys saved here live in `~/.dsh/.credentials.yaml` and take effect without a restart. -## Run your first prompt +For a model served on your own machine, such as LM Studio or Ollama, select **Add a custom provider** and enter the URL and port it listens on. -Start the profile: +To set a DeepSeek key before launch instead, put `DEEPSEEK_API_KEY` in the same `.env` file as `APIFY_TOKEN`. -```bash -dsh web -``` +## Run your first prompt 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. @@ -144,7 +152,9 @@ The CLI keeps its credentials in `~/.apify/`, which sits outside the session wor 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. +- Switch the session to **Full access** in the permission menu, which reads **Workspace Write** by default. You can switch at any point, and the change takes effect on the next command the agent runs. + +To change the default mode for new sessions, use **Settings > General > Permission**. If you'd rather keep the sandbox narrow, set `APIFY_TOKEN` instead and let the agent run Actors through the Apify MCP server, which needs no local file access.