DeepSeek Harness setup
Connect DeepSeek Harness to UncensoredLabs using a custom OpenAI Chat Completions provider.
Configure the client
Open Settings → Models → Add model provider → Custom model API. Enter these values, save the provider, and select its model in a new session.
Connection settings
Provider ID: uncensoredlabs
API protocol: OpenAI Chat Completions (openai-completions)
Base URL: https://uncensoredlabs.dev/v1
API key: paste your application API key into the credential field
Model ID: deepseek-v4.1-flash-1017-abliterated
Context window: 1000000
Maximum output: 65536
Input types: text For profile-based configuration, merge this provider into the existing llm-pi-ai configuration. Preserve other providers. Make the API key available in the environment that starts Harness.
cordis.patch.yml
- id: llm-pi-ai
config:
providers:
uncensoredlabs:
apiKeyEnv: UNCENSOREDLABS_API_KEY
api: openai-completions
baseURL: https://uncensoredlabs.dev/v1
models:
- id: deepseek-v4.1-flash-1017-abliterated
input: [text] Leave reasoning-level and image-capability overrides off for the first connection test. Enable only settings supported by the selected model and gateway.
Verify the connection
Use an application API key from the dashboard, not your account sign-in key. Keep credentials outside committed configuration.
Start a new session and request a short response. Then ask the client to list files without changing them, and review its tool permissions before a longer task.
Configuration examples were checked against the linked official documentation on November 1, 2026. Client versions and features vary; these guides do not certify every client release.
Troubleshooting
Use text Chat Completions. Responses, Anthropic Messages and image input are not supported. Client web-search features may require a separate service.
| Status | What to check |
|---|---|
| 400 / 404 | Check the base URL, exact model ID and Chat Completions mode. Do not append the completions path to a base-URL field. |
| 401 / 403 | Check the application API key, its model permissions and whether it has been revoked. |
| 402 | Check available credit and existing reservations. A reservation can exceed the final charge; use a smaller output limit before retrying. |
| 429 | Respect Retry-After and reduce concurrent tasks. Do not immediately retry the same request in a loop. |