Skip to main content
Modal serves Kimi K3 through an OpenAI-compatible Shared API and through dedicated Auto Endpoints. Fabro ships a disabled modal provider entry for Kimi K3. Enable it after Modal gives you an endpoint URL.

Prerequisites

Create or select an endpoint

Use the Kimi K3 Shared API from the Modal model library, or create a dedicated Auto Endpoint:
Find the endpoint URL in the Modal dashboard or with modal endpoint list. Modal serves its OpenAI-compatible API under /v1.

Create a proxy token

Modal endpoints are authenticated with two headers. Create a proxy-token pair:
The command prints a token ID that starts with wk- and a secret that starts with ws-. Modal shows the secret only once, so save both values immediately. If your Modal workspace uses RBAC, allow the token in the endpoint’s environment:

Enable the provider

Add the provider override to the settings file used by the Fabro server. Include /v1 in the endpoint URL and omit a trailing slash.
settings.toml
The endpoint URL is not built into Fabro because Modal assigns it to your Shared API or Auto Endpoint.

Configure credentials

Store both proxy-token values in the target Fabro server vault:
fabro provider login --provider modal is not supported in this release because that command accepts one credential value. Use the two fabro secret set commands above.
Modal does not use a bearer API key for these endpoints. Fabro sends the vault values as Modal-Key and Modal-Secret headers and does not send an Authorization header.

Included model

The catalog marks Kimi K3 as supporting tools, vision, reasoning, and prompt caching. Modal’s model ID is case-sensitive.

Use Kimi K3

When targeting a non-default remote server, pass the same --server value:
In workflow stylesheets:
workflow.fabro

Direct SDK environment credentials

The built-in Modal provider reads its two headers from the Fabro vault. EnvCredentialSource does not configure Modal automatically because Modal uses two headers instead of one API-key reference. For direct SDK use, enable Modal and set its endpoint URL in the catalog:
settings.toml
Then read both environment variables explicitly and create a typed credential after constructing catalog from those settings:

Costs

Fabro estimates Shared API costs from Modal’s published Kimi K3 prices. Completion and reasoning tokens use the output rate. Modal responses do not include an authoritative charge, so Fabro reports cost_source = "estimated". Dedicated Auto Endpoints use Modal compute billing instead of the Shared API token prices. The Fabro estimate does not represent that compute bill.

Troubleshooting

“provider ‘modal’ uses openai_compatible adapter but does not configure base_url” — Add the Modal endpoint URL under [llm.providers.modal]. Include /v1. Modal is not configured — Set both MODAL_TOKEN_ID and MODAL_TOKEN_SECRET in the target server vault. One value is not sufficient. 401 or 403 — Confirm that the token pair belongs to the correct Modal workspace and environment. If the workspace uses RBAC, allow the token in that environment. 404 — Confirm that the base URL is the endpoint URL followed by /v1, with no trailing slash. Unknown model — The built-in API ID is exactly moonshotai/Kimi-K3. Run fabro model test --provider modal --model kimi-k3 to test the configured offering.

Further reading

Modal Kimi K3

Shared API prices, model specifications, and Auto Endpoint setup.

Modal endpoint authentication

Proxy-token headers and endpoint calling conventions.