Skip to content

feat: add Runcrate as an OpenAI-compatible provider alias - #4717

Open
heydryft wants to merge 2 commits into
docker:mainfrom
heydryft:feat/runcrate-provider
Open

heydryft wants to merge 2 commits into
docker:mainfrom
heydryft:feat/runcrate-provider

Conversation

@heydryft

Copy link
Copy Markdown

Summary

  • add Runcrate as a built-in OpenAI-compatible provider alias (runcrate, base URL https://api.runcrate.ai/v1), in the same shape as the Atlas Cloud alias
  • discover RUNCRATE_API_KEY for automatic model selection and credential forwarding, with deepseek-ai/DeepSeek-V4.1-Flash as the default model
  • merge consecutive system messages, like the other open-model host aliases
  • document inline and named-model configuration, add an example recipe, and list the provider in navigation, the alias table and the schema description

Runcrate is a GPU cloud that also serves open models (DeepSeek, GLM, Qwen, gpt-oss) through an OpenAI-compatible API. It is not in models.dev yet, so it gets the same exemptions as atlascloud and api-route in TestProviderIDsMatchEmbeddedCatalog and modelsDevAbsentProviders, and the docs page says that no catalog metadata is imported.

Testing

  • go test ./pkg/model/provider/... ./pkg/config/...: pass (new rows in TestCatalogAliases, the auto-config tables, the system-message merge tests and openAIAliasProviders)
  • RUNCRATE_API_KEY=... go test ./pkg/model/provider/ -run 'TestOpenAIAliasProvider_LiveAPI/runcrate': PASS, live response "pong"
  • Built the binary and ran docker-agent run --exec with model: runcrate/deepseek-ai/DeepSeek-V4.1-Flash: the agent answered
  • gofmt -l: clean

This PR was prepared with AI assistance (an AI coding agent wrote the change and ran the tests and live calls above).

Disclosure: I work on Runcrate.

@heydryft
heydryft requested a review from a team as a code owner October 26, 2026 00:57
@aheritier aheritier added area/config For configuration parsing, YAML, environment variables area/docs Documentation changes area/providers/openai For features/issues/fixes related to the usage of OpenAI models kind/feat PR adds a new feature (maps to feat:). Use on PRs only. status/needs-signed-commits Some commits in the PR are signed with a valid SSH/GPG key labels Oct 26, 2026
@aheritier

Copy link
Copy Markdown
Collaborator

👋 Some commits in this PR are not signed and verified by GitHub. Please sign your commits with a GPG or SSH key registered in your GitHub account, then force-push.

Commits that are not verified: 5626ca2

See GitHub's guide on signing commits for setup instructions. I've added status/needs-signed-commits; it will be removed automatically once every commit in this PR carries a valid GitHub-verified signature.

@aheritier aheritier added status/needs-signed-commits Some commits in the PR are signed with a valid SSH/GPG key and removed status/needs-signed-commits Some commits in the PR are signed with a valid SSH/GPG key labels Oct 26, 2026
@aheritier

Copy link
Copy Markdown
Collaborator

👋 Some commits in this PR are not signed and verified by GitHub. Please sign your commits with a GPG or SSH key registered in your GitHub account, then force-push.

Commits that are not verified: 5626ca2

See GitHub’s guide on signing commits for setup instructions. I’ve added status/needs-signed-commits; it will be removed automatically once every commit in this PR carries a valid GitHub-verified signature.

@heydryft
heydryft force-pushed the feat/runcrate-provider branch from 5626ca2 to 8be334a Compare October 26, 2026 08:36
@heydryft

Copy link
Copy Markdown
Author

Thanks @aheritier. Re-signed the commit with an SSH signing key registered on my account and force-pushed: 8be334a now shows as Verified. No code changes.

@aheritier aheritier removed the status/needs-signed-commits Some commits in the PR are signed with a valid SSH/GPG key label Oct 26, 2026

@aheritier aheritier left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No blocking implementation defects found. One documentation correction recommended; see inline comment.

Reviewed all 15 changed files and surrounding provider/configuration paths. The implementation is consistent with existing providers.

CI is green for 8be334a: gate, lint, Linux/Windows tests, cross-compilation, image, documentation, and CodeQL passed. Race testing was skipped. No local tests or authenticated inference were run; the live Runcrate test was skipped in CI.

GitHub reports BLOCKED / REVIEW_REQUIRED. No linked issue or Jira acceptance criteria were found, so this review covers the PR's stated scope.

Comment thread docs/providers/runcrate/index.md Outdated
[Runcrate](https://www.runcrate.ai/?utm_source=docker-agent&utm_medium=directory&utm_campaign=gpu_pricing)
is a GPU cloud that also serves open models (DeepSeek, GLM, Qwen, gpt-oss and
others) through an OpenAI-compatible API. Docker Agent includes built-in
support for Runcrate as an alias provider. Open models are free with your

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[should-fix] Qualify the claim that open models are free. Confidence: high.

Runcrate's published terms at https://www.runcrate.ai/inference/free say the free allowance requires a GitHub account at least 30 days old. After the allowance is exhausted, requests can consume workspace credit; paid fallback can also occur when free capacity is busy. Following this setup with a funded workspace therefore does not guarantee free inference.

Describe this as a limited free allowance for eligible GitHub accounts, link the current allowance/capacity terms, and mention that subsequent requests can consume workspace credit.

@heydryft heydryft Oct 26, 2026 •

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @aheritier, fixed in 738c39a (signed): the overview now describes a limited free allowance for GitHub accounts at least 30 days old, says later requests or busy free capacity can use workspace credit, and links the current terms at runcrate.ai/inference/free. I also rebased on main to clear a conflict in pkg/config/auto.go (kept main's Baseten default), so the workflows need approval again.

@aheritier aheritier added the status/needs-rebase PR has merge conflicts or is out of date with main label Oct 26, 2026
@aheritier

Copy link
Copy Markdown
Collaborator

👋 This PR has merge conflicts with the base branch. Please rebase or merge the latest base branch and resolve them. I've moved it to draft and added �[ backtick]status/needs-rebase�[ backtick]; it'll be picked back up automatically once the conflicts are cleared.

Signed-off-by: Nirupam Bhowmick <48842933+heydryft@users.noreply.github.com>
The free allowance is limited, needs a GitHub account at least 30 days old, and later requests can use workspace credit. Link the current terms.
@heydryft
heydryft force-pushed the feat/runcrate-provider branch from f302bcb to 738c39a Compare October 26, 2026 15:32
@aheritier aheritier removed the status/needs-rebase PR has merge conflicts or is out of date with main label Oct 26, 2026
@heydryft

Copy link
Copy Markdown
Author

Thanks @aheritier. Rebased onto the latest main and resolved the conflicts; the branch is now up to date with main (0 commits behind) and both commits (5cacc46, 738c39a) are signed and Verified. No change to the substance of the Runcrate provider addition. Could you take another look when you have a moment? Happy to adjust anything.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/config For configuration parsing, YAML, environment variables area/docs Documentation changes area/providers/openai For features/issues/fixes related to the usage of OpenAI models kind/feat PR adds a new feature (maps to feat:). Use on PRs only.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants