Opening your dashboard…
Owner access.
Open your private sign-in link to manage the owner account.
Sign in to your account →Subscriptions
| Subscription | Daily window | Renewal | Status | Actions |
|---|
USD · renews monthly · plus tax
Details
USD, plus applicable tax · Renews monthly until cancelled.
Before you subscribe: each subscription purchases one daily 8-hour window in its independently selected timezone. Hours follow that timezone’s local clock, including daylight-saving changes; existing UTC subscriptions stay UTC. You can buy the same window again. All purchased windows share one active request across all keys and models. Capacity is shared company-wide; speeds vary and requests may pause for recovery or review. No minimum speed or uninterrupted generation is guaranteed. Text and function tools only; up to 1,048,576 estimated total tokens, including framing and reserved output space, and at most 393,216 output tokens per request. Physical model limits are not a guarantee that available capacity or your account can fund every request.
Cancel in Manage billing before renewal. Polar is the merchant of record. No per-token overage charges. Heavy use draws on shared capacity, not a personal monthly allowance; waiting does not guarantee immediate access. Any separately configured account safety limit remains a hard limit. Terms and refund policy · Privacy
API keys
Connection
Both profiles use the same current underlying model. DeepSeek V4.1 Flash is the standard profile; DeepSeek V4.1 Flash Uncensored adds a reviewed system prompt, not different weights or a bypass guarantee. Your selection updates the copied settings, examples and native launches below; it does not change existing client configuration. API responses retain the genuine canonical model identity.
Quick start · get your first reply
- Create a key above and save it privately. Existing keys still work.
- Set
REDWATTS_API_KEYin your shell, then run the request below during your purchased window. - For your coding client, copy the base URL and selected model ID above. Use Chat Completions, enable streaming, and allow one active request.
Simple text check
This check asks for one short reply, with low thinking and a 256-token output ceiling. It does not run tools or change your coding client. Running it uses your plan’s access; no request is sent by this page.
Recent API requests
Status refreshes about once a minute while this page is visible and you are not editing account controls. A running response occupies your one shared channel. First content is measured after dispatch; total time includes setup. For an interrupted response, inspect your client and tool history before retrying.
| Time / request ID | Result | First content | Total time |
|---|
Setup instructions and coding example
- Create an API key above, or use your existing key.
- In your coding tool, choose an OpenAI-compatible provider using Chat Completions, not the Responses API.
- Paste the API base URL, your key, and the selected RedWatts model ID. Enable streaming and function tools if your client supports them.
- Set one active request and keep conversation compression enabled. Current serving capacity is 262,144 total tokens including input, framing and reserved output, with up to 65,536 output tokens shared by reasoning, answer text and tool arguments. Omitted output uses 65,536 with default High reasoning; explicit Low and High are supported. The canonical model’s physical 1,048,576 context / 393,216 output metadata is not currently available capacity.
- Use automatic or no tool choice. None/disabled or Max reasoning, response formats (including strict schema), required/named tool choice and output above 65,536 are currently incompatible. Explicit intent is rejected, never silently downgraded. Existing client configurations are not rewritten.
Hermes: its main provider and compression auxiliary are separate settings. Use your named RedWatts connection on deepseek/deepseek-v4.1-flash with a 262,144-token total serving context. Run the inspected repository connector through your installed Hermes Python runtime with --model deepseek/deepseek-v4.1-flash. Existing recognized generated 1,048,576-token catalogs require reviewed --migrate-owned-limits migration and a backup; custom routes, reasoning settings, credentials, permissions and unrelated defaults remain unchanged. Review incompatible custom controls explicitly rather than relying on automatic rewriting.
Hermes allocation: the ordinary CLI omits the constructor output allocation and uses default High with 65,536 output tokens. A wire override does not by itself change native compressor headroom. Keep native role/compression guards; current context capacity is not a guarantee of recovery or summary quality at every history size.
Hermes · guarded streaming retries
In your existing $HERMES_HOME/config.yaml (default ~/.hermes/config.yaml), merge these keys into the existing sections. The example provider is named redwatts; use your existing named RedWatts connection. Add the example affinity key only if missing; preserve an existing native guard or custom affinity setting. Keep its URL, private key configuration, model controls, other profiles, permissions and tools unchanged.
agent:
api_max_retries: 1
auto_recovery_cycles: 0
providers:
redwatts:
context_length: 262144
session_affinity_header: X-RedWatts-Turn-IDPreserve custom timeout and native role controls. Do not add ignored named-provider request_timeout_seconds or stale_timeout_seconds declarations: this CLI resolves runtime provider custom and uses supported environment/default lookup. Read/write and decoded-chunk stale guards concern inactivity, not a whole-task cap; discarded SSE comments do not reset decoded progress. api_max_retries: 1 means one main-loop attempt, and auto_recovery_cycles: 0 disables recovery loops. These alone do not stop Hermes’s separate HTTP 5xx streaming-to-nonstreaming fallback. Preserve the supported affinity header: native session identity is stable through retries, tools and compression, and changes for a fresh session. A previously dispatched matching generation returns guarded HTTP 409 without another generation or cached-answer replay, even if transport mode changes. After failure inspect partial output and tool history before a deliberate fresh turn/session. Current serving capacity is 262,144 total / 65,536 output; preserve explicit model/reasoning and separate compression settings.
OpenCode · project-only connection
Tested with OpenCode 1.18.20. The helper declares the scoped plugin’s missing @ai-sdk/provider SDK dependency in .opencode/package.json; it preserves existing dependency versions/ranges and custom fields, and does not run npm install. Complete normal official OpenCode dependency initialization as consumer setup outside the customer’s candidate/code sandbox, not as a model Bash validation workaround. Missing dependencies can cause a scoped plugin to be skipped even while built-in plugins load. Check non-secret startup diagnostics and ensure the scoped plugin actually loads before relying on its turn, replay or compaction controls; the file’s presence or a helper “installed” message does not prove consumption. From your project, with Node.js available, set REDWATTS_API_KEY privately. Download the readable helper and inspect it before executing the separate second block.
REDWATTS_HELPER_DIR="$(mktemp -d)" &&
curl --fail --proto '=https' --output "$REDWATTS_HELPER_DIR/connect-opencode.mjs" https://redwatts.com/connect-opencode.mjs &&
cat "$REDWATTS_HELPER_DIR/connect-opencode.mjs"After inspection, write the project provider fragment, scoped hook and absent SDK dependency declaration. Complete normal native dependency setup and verify the hook loads before relying on this scoped launch:
node "$REDWATTS_HELPER_DIR/connect-opencode.mjs" "$PWD" --model deepseek/deepseek-v4.1-flash &&
OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX=65536 OPENCODE_CONFIG="$PWD/.opencode/redwatts-provider.json" opencode --model redwatts/deepseek/deepseek-v4.1-flashExisting credentials, permissions and unrelated configuration remain unchanged. The reviewed provider fragment uses current serving limits: 262,144 total context and 65,536 output tokens. Canonical API model metadata remains the physical 1,048,576 / 393,216 bounds, not an available-capacity promise. OpenCode 1.18.20 otherwise caps outgoing output at 32,000; the supported override above requests 65,536 and leaves at most 196,608 input tokens before framing. Do not request the physical maximum: it is currently incompatible.
For an existing helper-owned connection, inspect the current .opencode/redwatts-provider.json, scoped hook and consumer dependency manifest first. The helper will not silently replace recognized older generated catalogs, limits or hooks, including the prior 1.4.21 branded fragments and old 128,000-context/8,192-output connection, or switch an existing generated profile. After reviewing the new behavior, explicitly request migration:
node "$REDWATTS_HELPER_DIR/connect-opencode.mjs" "$PWD" --model deepseek/deepseek-v4.1-flash --migrate-owned-limitsMigration is limited to exact recognized generated settings and matching known old hooks, with an explicit migration flag and backup of the prior bytes. Unknown hooks, customized or differing files and shared/symlinked setup paths refuse rather than being overwritten. Existing dependency versions/ranges, credentials, permissions, other profiles and unrelated provider settings stay unchanged. Then complete normal consumer dependency setup and use the scoped launch above with the reviewed fragment.
The launch omits effort for default High; optional --variant low and --variant high preserve explicit effort. None/disabled and Max are currently incompatible, not auto-downgraded. Output includes reasoning, answer text and tool arguments. Keep streaming, compression and one active API request. UTF-8 JSON requests remain bounded at 8 MiB; messages and function-tool definitions count toward framing and total serving context. Preserve your permissions and validate complete tool calls before execution.
When actually loaded, the scoped hook supplies the native turn identity and marks a genuine guarded HTTP 409 nonretryable. It adds X-RedWatts-Output-Policy: fit-context only to the actual native compaction role; main and title requests remain strict. The compactor’s requested output maximum becomes a ceiling over all physical context room left after its whole input and framing are tokenized, without a separate summary quota, input trimming or forced non-thinking. This role behavior alone is not proof of recovery from every maximum-size history. A matching generation stays protected for at least 30 days and beyond, even if only streaming mode changed; the gateway does not replay the old answer. Changed tool history/new turns remain distinct. After failure, inspect local output/tool history before deliberately sending a new turn. Unfinished text may be discarded by the client; do not assume a visible partial answer was saved or an exit code means success.
Native Claude Code · scoped launch
Claude Code 2.1.220 uses the bounded Messages adapter with the selected DeepSeek V4.1 Flash profile, not a Claude model. API identity remains canonical DeepSeek. Set REDWATTS_API_KEY privately and launch from your project using the origin without /v1. These subshell settings do not rewrite global authentication/configuration or existing permissions, deny rules, hooks, skills or MCP tools. Check non-secret model/connection information in /status; managed settings may request unsupported controls. The launch uses current serving context 262,144 and standard output 65,536. Physical API metadata remains 1,048,576 / 393,216, not current capacity. Claude’s model/cost display is its own estimate, not verified RedWatts capability.
(
export ANTHROPIC_BASE_URL='https://redwatts.com'
unset ANTHROPIC_AUTH_TOKEN
export ANTHROPIC_API_KEY="$REDWATTS_API_KEY"
export ANTHROPIC_MODEL='deepseek/deepseek-v4.1-flash'
export ANTHROPIC_DEFAULT_SONNET_MODEL="$ANTHROPIC_MODEL" ANTHROPIC_DEFAULT_OPUS_MODEL="$ANTHROPIC_MODEL"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="$ANTHROPIC_MODEL" CLAUDE_CODE_SUBAGENT_MODEL="$ANTHROPIC_MODEL"
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=262144 CLAUDE_CODE_MAX_OUTPUT_TOKENS=65536
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=196608
export CLAUDE_STREAM_IDLE_TIMEOUT_MS=2147483647
export CLAUDE_CODE_MAX_RETRIES=0
export CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1
export MAX_THINKING_TOKENS=0
export CLAUDE_CODE_EXTRA_BODY='{"max_tokens":65536,"reasoning":{"exclude":true}}'
export ANTHROPIC_CUSTOM_HEADERS='x-redwatts-output-policy: fit-context'
claude --model "$ANTHROPIC_MODEL"
)MAX_THINKING_TOKENS=0 suppresses Claude’s unsupported adaptive codec/budget request; it does not disable DeepSeek’s default High reasoning. The reasoning.exclude response filter hides returned thinking without changing effort or total output accounting; set it to false to display genuine reasoning. If managed configuration requests unsupported server-side context editing, add only "context_management":null to that extra-body object as an explicit opt-out. Actual schema requests are currently incompatible; capability announcements alone do not make them supported. Keep one active request and matching results for every local tool call.
Retry safety: this scoped launch disables automatic SDK retries and the separate streaming-to-nonstreaming fallback. A stream can fail after returning genuine output; an automatic fallback can change its output ceiling and start another generation. Inspect partial output and tool history before deliberately starting a new turn. A visible partial reply may not have been saved by the client, and a failed response is not a completed tool action.
Native output and compression: use the 65,536 allowance and 262,144 total serving context above; the physical 393,216 output / 1,048,576 context bounds are not currently available. The all-role fit-context header explicitly treats output as an at-most ceiling within the model context; it does not expand current serving capacity. It never trims input, forces non-thinking or creates a fixed summary quota. Preserve native main/title/compaction roles and inspect failed or partial output before retrying.
Native decoded-progress watchdog: CLAUDE_STREAM_IDLE_TIMEOUT_MS=2147483647 was actually parsed and scheduled by installed Claude Code 2.1.220. It is a resettable idle boundary of about 24.85 days, not an HTTP/network/task timeout, retry policy, token quota or iteration quota; genuine decoded progress can reset it. Controlled native streaming completed a 331,474 ms decoded-progress gap with this setting, not a 24.85-day duration test or an uptime guarantee. Do not set it to the Source policy’s 31-day ceiling (2678400000 milliseconds): the installed client accepted that number but aborted actual main/title streams within milliseconds. The native client cannot represent every possible silence interval within the full Source policy ceiling. This limitation does not shorten Source’s deadline or model budget, and an output-derived generation estimate alone does not guarantee paced delivery behavior.
Reasoning selection: native --effort low and --effort high select DeepSeek effort labels, not Anthropic ratios or independent thinking-token quotas. Omitted effort uses default High. Explicit reasoning intent takes precedence over reasoning_effort, then native output_config.effort; an exclude-only filter does not replace effort. minimal maps to Low and medium/xhigh to High. None/disabled and Max remain explicit intent but cannot currently be served; they return an actionable error rather than a downgrade.
Current capacity supports text, local function tools with automatic or no tool choice, Low/High/default reasoning and unsigned genuine thinking. Strict-schema/other response formats, required/named tool choice, images, server tools/search, adaptive thinking/budgets, server-side context editing and context-1m are not currently runnable. Token counting is not implemented; the gateway still checks context. A length-truncated response is incomplete: review it and never execute partial tool arguments.
These controls change copied examples only, not existing client configuration. Omitted effort uses High. Low and High are effort choices, not hard thinking quotas. None/disabled and Max are currently incompatible and are not silently replaced.
Default omits max_tokens; explicit allocation requests 65,536. Input, framing and reserved output must fit current 262,144-token serving context. Physical model metadata does not imply that 1M context or 393,216 output can currently be served. Explicit allocations are preserved, not silently clamped to available capacity.
Actionable errors: 400 unsupported_model_request means current capacity cannot support your controls; explicitly choose compatible controls or another service. 400 context_length_exceeded means verified context overflow requires deliberately shortening/compressing input or revising the allocation. Both are nonretryable. 503 source_capacity_unavailable is temporary; follow Retry-After: 3. Never automatically replay an accepted or partially returned generation; inspect local tool history first.
Copyable client settings
These are connection values, not a universal client configuration file. Add your key in the client’s private credential field; do not put it in a repository.
Bounded, read-only coding request
This request offers one read_file function to inspect at most 60 lines of one file before proposing a patch. It uses the selected DeepSeek V4.1 Flash profile. Set REDWATTS_API_KEY privately in your shell first. Running it uses your plan’s access.
The API returns tool calls; it does not read your files or run tools. A tool-capable client must collect a complete call, validate its JSON and permitted path, run the read-only function locally, then send the assistant’s tool_calls plus a role: "tool" result with the matching tool_call_id in the next request. Keep the same selected model. The curl example shows the first request only; review any proposed patch before applying it.
DeepSeek uses native tool calling: omit parallel_tool_calls from your client request. Explicit values are rejected, not silently ignored. A response may contain multiple tool calls; validate each complete call and return a matching result for every call. One active API request does not mean one tool call per response.
API limits and troubleshooting
The OpenAI-compatible base URL ends in /v1. Endpoints: GET /models, POST /chat/completions, POST /messages and GET /account. Claude Code uses the origin because it adds /v1/messages. Current serving capacity is 262,144 total tokens including framing and reserved output, with up to 65,536 output shared by reasoning, answer and tools. Physical catalog bounds remain 1,048,576 / 393,216 and are not currently available. Default High and Low/High use 65,536 omitted output; explicit compatible output is preserved. Chat accepts max_tokens or max_completion_tokens; Messages requires max_tokens. Requests are bounded at 8 MiB UTF-8 JSON. Text and function tools with automatic/no choice are supported; unsupported reasoning, formats or required/named tools reject rather than being silently rewritten.
Explicit context-fit policy: ordinary requests keep strict output allocations. Deliberate X-RedWatts-Output-Policy: fit-context treats output as an at-most ceiling within physical model context after tokenizing input and framing. It does not expand current 262,144 / 65,536 serving capacity, trim input, disable thinking or invent a summary quota. Input leaving no output room still rejects. This opt-in is part of replay identity, not a guarantee of recovery from every history size.
Truncated answers: finish_reason: "length" means incomplete output. Review partial content and local tool history before requesting a deliberate continuation with the same model. Split large tasks into reviewed steps or explicitly revise compatible settings; do not exceed 65,536 output or 262,144 total serving context. Never treat truncated code as a finished patch or execute partial tool arguments.
Tool errors: do not execute partial or invalid tool arguments. On incomplete_tool_call, a stream error, or a disconnect, inspect the response and local tool history before deciding to retry. Only execute complete validated calls, serialize requests, and never blindly replay file writes, shell commands or other side effects. Use tool_choice: "auto" for the portable example.
Capacity and access: follow Retry-After for temporary 429/503 errors. Permanent unsupported_model_request or context_length_exceeded needs deliberate request changes, not automatic retries. X-Should-Retry: false means stop and resolve the issue. A busy channel must finish; outside your window wait for a purchased block. Recovery time is not guaranteed. Account safety, billing review or expired access may need support or plan management. Never repeatedly retry authentication, subscription or context errors.
Keep stable prompt prefixes and, where supported, an X-Session-ID per conversation for cache reuse. Include X-Request-ID and the error code when contacting support; never send your API key.