Felo API PlatformFelo API Platform

AI Tool Setup

DeepSeek Harness

Connect DeepSeek Harness to Felo through its native DeepSeek adapter or a custom OpenAI-compatible provider.

Use this guide to run the open-source DeepSeek Harness with models served by Felo API Platform. The recommended path reuses the harness's built-in deepseek-official adapter. You can also add Felo as a separate custom OpenAI-compatible provider in the Web UI.

DeepSeek Harness is currently a developer preview and may introduce compatibility-breaking changes. Check its upstream release notes when an option or screen differs from this guide.

Before You Start

You need Node.js and one Felo API Platform key. Keep the key out of source control.

export FELO_API_KEY="YOUR_API_KEY"

The examples use deepseek-v4-flash. Check Models and Pricing before selecting a different model ID.

DeepSeek Harness reads the built-in adapter credential from DEEPSEEK_API_KEY and its endpoint from DEEPSEEK_BASE_URL.

export DEEPSEEK_API_KEY="$FELO_API_KEY"
export DEEPSEEK_BASE_URL="https://openapi.felo.ai/api/v1"
npx @deepseek-ai/dsh web

Open http://127.0.0.1:3080, then:

  1. Add or select your project workspace.
  2. Open Settings → Models.
  3. Select the deepseek-official provider and deepseek-v4-flash model.
  4. Start a new session and send a small repository task.

Do not append /chat/completions to the base URL. The built-in adapter sends requests to {DEEPSEEK_BASE_URL}/chat/completions itself.

Persist the environment values

DeepSeek Harness can read a .env file from the directory where you start it. Add the following values to an untracked .env file if you do not want to export them for every session:

DEEPSEEK_API_KEY=YOUR_API_KEY
DEEPSEEK_BASE_URL=https://openapi.felo.ai/api/v1

Do not commit this file. You can also use the harness credential and settings files under $DSH_HOME when you need user-level configuration.

Alternative Setup: Custom OpenAI-compatible Provider

Use this path when you want Felo to appear as a separate provider instead of overriding the built-in DeepSeek connection.

  1. Start the Web UI with npx @deepseek-ai/dsh web.
  2. Open Settings → Models.
  3. Choose Add custom provider.
  4. Enter the following values and save the provider.
FieldValue
Provider IDfelo
Display nameFelo API Platform
Base URLhttps://openapi.felo.ai/api/v1
API protocolOpenAI-compatible Chat Completions (openai-completions)
API keyYour Felo API key
Model IDdeepseek-v4-flash

If model discovery fails, add the model ID manually. A provider's Get available models action depends on an OpenAI-compatible GET /models route and is not required for manual configuration.

Verify the Setup

Start a fresh session and ask:

Summarize this repository and identify its main packages.

The setup is ready when the session completes with deepseek-v4-flash selected and no authentication or unknown-model error appears.

For a non-interactive smoke test with the recommended adapter, run from the target workspace:

npx @deepseek-ai/dsh --profile headless "List the top-level files in this workspace."

Web Search Note

This setup routes model requests through Felo. DeepSeek Harness's built-in web_search provider has separate endpoint requirements even though its default credential variable is also DEEPSEEK_API_KEY. Do not point DEEPSEEK_SEARCH_BASE_URL at Felo unless you are using an explicitly compatible search endpoint. Use Felo's Chat API or other Felo Skills separately when your workflow needs Felo search.

Troubleshooting

IssueWhat to check
MISSING_CREDENTIAL or 401Confirm DEEPSEEK_API_KEY contains the Felo key in the process that starts dsh
Request URL contains the path twiceUse https://openapi.felo.ai/api/v1, not a URL ending in /chat/completions
UNKNOWN_MODELSelect or manually add deepseek-v4-flash, or use another published Felo model ID
Felo is not listed separatelyUse the custom-provider setup; the recommended path keeps the provider ID deepseek-official
Settings changed but an old session behaves differentlyStart a new session so it uses the newly selected provider and model route
Web search authentication failsConfigure the harness search provider separately; model endpoint settings do not configure web search

Next Steps