The Debian Inference Portal is a self-service way for Debian contributors to use shared LLM inference. You log in with your Salsa account, create API keys, and track your spend β all through your browser. The portal provisions you on a shared, OpenAI-compatible inference proxy, so any tool that speaks the OpenAI API can use your key.
It is a shared, fair-use service funded by a fixed monthly pool of credits. Your weekly budget is a soft limit, in place for safety reasons: it paces usage so the shared pool lasts for everyone, and you can renew it from the dashboard once it is spent. Please still avoid long or very heavy workloads.
Scaleway is a European cloud provider owned by the
Iliad Group (the parent of Free),
delivering public cloud, bare metal, AI and managed services. Among those services is
Generative APIs, a serverless,
OpenAI-compatible API for serving LLMs β you pay per token and don't manage any
infrastructure. The models below are served through it: requests are proxied to
api.scaleway.ai, and you don't need your own Scaleway account β the service holds the
provider credentials and forwards your calls.
This service is possible thanks to Scaleway, which kindly sponsors the Debian project with a monthly allocation of credits to cover the inference costs for contributors.
Model ID (use this in model ) |
Model |
|---|---|
scaleway/glm-5.2 |
Zhipu AI's GLM-5.2, a general-purpose model |
scaleway/deepseek-v4-flash-0731 |
DeepSeek's V4 Flash, a fast, lightweight model |
Both models are in preview at Scaleway. They are billed by token, but note that GLM-5.2 currently does not differentiate cached (input) tokens, so re-reading long context is charged at the full rate and can get comparatively expensive. Re-reading long context is typical in the context of agentic software development (agents re-read the accumulated conversation on every step), so this adds up quickly. DeepSeek V4 Flash is recommended for most uses.
The list above is not exhaustive β run the models endpoint with your key to see exactly what is currently exposed:
curl -s https://inference.debian.net/v1/models -H "Authorization: Bearer $DEBIAN_INFERENCE_KEY"
bubblewrap
bwrap \
--ro-bind /usr /usr \
--symlink usr/bin /bin \
--symlink usr/lib /lib \
--symlink usr/lib64 /lib64 \
--ro-bind /etc/ssl /etc/ssl \
--ro-bind /etc/resolv.conf /etc/resolv.conf \
--ro-bind $HOME/.gitconfig $HOME/.gitconfig \
--bind $HOME/.config/opencode $HOME/.config/opencode \
--bind $HOME/.cache/opencode $HOME/.cache/opencode \
--bind $HOME/.opencode $HOME/.opencode \
--bind $HOME/.local/share/opencode $HOME/.local/share/opencode \
--bind $HOME/.local/state/opencode $HOME/.local/state/opencode \
--proc /proc \
--dev /dev \
--tmpfs /tmp \
--bind $(pwd) $(pwd) \
--chdir $(pwd) \
--unshare-all \
--share-net \
--die-with-parent \
/path/to/opencode "$@"
This is not a full containment: the sandboxed process still has the terminal and can reach local sockets that don't go through the filesystem (abstract Unix sockets, TCP sockets, and so on).
nm.debian.org.
Things to know about keys:
The proxy speaks the OpenAI API: the classic
Chat Completions interface (POST /v1/chat/completions with a messages payload) and the
newer Responses API (POST /v1/responses). The examples below use Chat Completions, which
is the most widely supported. Use your key as a Bearer token and set model to one of the
exposed models (e.g. scaleway/deepseek-v4-flash-0731).
export DEBIAN_INFERENCE_KEY="sk-your-key"
curl -s https://inference.debian.net/v1/models \
-H "Authorization: Bearer $DEBIAN_INFERENCE_KEY"
curl -s https://inference.debian.net/v1/chat/completions \
-H "Authorization: Bearer $DEBIAN_INFERENCE_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "scaleway/deepseek-v4-flash-0731",
"messages": [{"role": "user", "content": "Hello!"}]
}'
python
import os
import requests
key = os.environ["DEBIAN_INFERENCE_KEY"]
resp = requests.post(
"https://inference.debian.net/v1/chat/completions",
headers={"Authorization": f"Bearer {key}"},
json={
"model": "scaleway/deepseek-v4-flash-0731",
"messages": [{"role": "user", "content": "Hello!"}],
},
)
resp.raise_for_status()
print(resp.json()["choices"][0]["message"]["content"])
Add a custom OpenAI-compatible provider to your opencode.json (project-level, or the global
~/.config/opencode/opencode.json):
{
"model": "debian-inference/scaleway/deepseek-v4-flash-0731",
"provider": {
"debian-inference": {
"npm": "@ai-sdk/openai-compatible",
"name": "Debian Inference",
"api": "https://inference.debian.net/v1",
"env": [
"DEBIAN_INFERENCE_KEY"
],
"models": {
"scaleway/deepseek-v4-flash-0731": {
"name": "DeepSeek V4 Flash 0731",
"family": "deepseek-flash",
"release_date": "2026-07-31",
"attachment": false,
"reasoning": true,
"temperature": true,
"tool_call": true,
"cost": {
"input": 0.4,
"output": 0.8,
"cache_read": 0.08
},
"limit": {
"context": 256000,
"output": 16384
},
"modalities": {
"input": ["text"],
"output": ["text"]
},
"interleaved": true
},
"scaleway/glm-5.2": {
"name": "GLM-5.2",
"family": "glm",
"release_date": "2026-06-13",
"attachment": false,
"reasoning": true,
"temperature": true,
"tool_call": true,
"cost": {
"input": 1.8,
"output": 5.5
},
"limit": {
"context": 256000,
"output": 16384
},
"modalities": {
"input": ["text"],
"output": ["text"]
}
}
}
}
}
}
Then start OpenCode, use /connect, search for Debian Inference, and enter your API key. The example config above sets DeepSeek V4 Flash 0731 as the default model β use /models to switch to GLM-5.2 if you prefer it. Then make your first prompt.
Pi is a minimal, extensible agent harness. Add a custom
OpenAI-compatible provider to your ~/.pi/agent/models.json to use the service:
{
"providers": {
"debian-inference": {
"baseUrl": "https://inference.debian.net/v1",
"api": "openai-completions",
"apiKey": "$DEBIAN_INFERENCE_KEY",
"models": [
{
"id": "scaleway/deepseek-v4-flash-0731",
"name": "DeepSeek V4 Flash 0731",
"reasoning": true,
"contextWindow": 256000,
"maxTokens": 16384,
"cost": {
"input": 0.4,
"output": 0.8,
"cacheRead": 0.08,
"cacheWrite": 0.4
}
},
{
"id": "scaleway/glm-5.2",
"name": "GLM-5.2",
"reasoning": true,
"contextWindow": 256000,
"maxTokens": 16384,
"cost": {
"input": 1.8,
"output": 5.5,
"cacheRead": 1.8,
"cacheWrite": 1.8
}
}
]
}
}
}
The file reloads each time you open /model. Set DEBIAN_INFERENCE_KEY to your
key (for example via /login for the provider, or exporting the env var) and
pick a model with /model.
Active Debian Developers and Debian Maintainers. Access is granted on sign-in, based on your
status on nm.debian.org.
Use it for work that benefits the Debian project β for example packaging, bug triage and fixes, tooling, documentation, or anything else you're doing as a contributor. It isn't for unrelated personal tasks. The underlying resources are provided free of charge by sponsors, so please be prepared to describe, in a short report, what you used it for if asked β such reports help make the case to sponsors for continuing and growing the service.
Nothing directly β the service is provided for the Debian project and funded by a fixed monthly pool of credits from its sponsors. Spending is tracked per user over a weekly window that resets automatically, with defaults tiered by status:
| Status | Default weekly budget |
|---|---|
| Debian Developer (DD) | $25 |
| Debian Maintainer (DM) | $10 |
This weekly budget is a soft limit, in place for safety reasons β not a hard cap on what you may use. It exists to pace usage so the shared monthly pool isn't drained by a few heavy users, which would leave nothing for everyone else. The limits are somewhat arbitrary and intended as a starting point; they may evolve over time as we learn how the service is used. Your current spend and the next automatic reset time are shown on the dashboard.
Budgets are enforced by the proxy at the user level, so the total spend across all of your keys counts toward your limit. Once you reach it, new requests fail until you renew your credits (below) or the weekly window resets. Hitting the limit is normal for intensive work β it isn't a sign that you've done something wrong.
Yes β renewing is the normal way to keep working once you've spent your weekly credits. The Renew credits button on the dashboard resets your weekly spend to 0, giving you a fresh window without changing your allowance. You can renew as soon as your credits are spent, subject to a safety check: because everyone shares one monthly pool, a renewal is only allowed while the predicted organization-wide monthly spend still fits comfortably inside the pool (with a safety margin). The dashboard shows whether a renewal is currently available and the predicted monthly spend; when it is, use the Renew credits button. If it isn't available, wait for the weekly reset or contact the team.
scaleway/deepseek-v4-flash-0731 is the recommended default: it's fast, lightweight, and
cheaper than GLM-5.2 because it differentiates cached tokens. scaleway/glm-5.2 is a strong
general-purpose model, but it's in preview and currently charges cached input at the full
rate. Use /v1/models to see what's currently available.
Keys are shown only once at creation. Revoke it on the dashboard and create a new one.
Check the expiry date on the dashboard and renew if needed. If you've exceeded your budget, renew your credits from the dashboard, or wait for the weekly reset.
Yes β any tool that lets you set a custom base URL (https://inference.debian.net/v1) and a
Bearer token can use your key (see the examples above).
Outputs generated by the service belong to you. Scaleway does not claim any copyright or ownership over generated content.
Scaleway applies a Zero Data Retention Policy: prompt content is not stored, and is explicitly not used for training, retraining, or improving the base models. Data is not accessible to the LLM creators or to third parties. Only anonymized metadata (token counts, HTTP status codes) is retained for up to 6 months for performance monitoring. Data is hosted in Paris, France, and as a European company Scaleway is not subject to extraterritorial laws such as the US Cloud Act. See Scaleway's Generative APIs privacy policy and Specific Conditions for AI Services for the full details.
Questions, feedback, or problems? Contact the Debian AI team by filing an issue at inference-support.