You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Option to turn off the model-manifest fetch from raw.githubusercontent.com at server start #36479
Version:t3 0.1.9, linux-arm64 release asset, run as t3 serve --host 127.0.0.1 --port 3773 --base-dir <dir> <workdir> with T3CODE_TELEMETRY_ENABLED=false.
What I see. Right after start, the server opens one outbound HTTPS connection to raw.githubusercontent.com and downloads the model manifest. The URL is fixed in the server code (MODEL_MANIFEST_URL):
The answer is saved as <base-dir>/userdata/model-manifest.json. With ss -tnp sampled twice a second for 30 s, this was the only non-loopback peer of the node process (185.199.111.133:443). The server trace log lists the same URL as the only remote address. There was no connection to ingest.t3.codes.
Why it matters.docs/user/telemetry.md describes how to turn off product events and relay tracing. This fetch is not telemetry, and it sends no prompt, file or key. But some users run T3 Code with a local model on a machine that must not call out at all, and today they cannot tell from the docs that this request exists, and they cannot turn it off. I found no environment variable, setting or managed-policy entry for it (I searched the release binary for T3CODE_ names and read managed-policy.md).
Request.
A switch that stops the fetch, for example an environment variable, a server setting and a managed-policy entry. With the switch on, the server would use the manifest that ships in the release.
A line in docs/user/telemetry.md (or the FAQ) that names this request, what it fetches and how often (the code uses a 1 hour refresh and a 5 minute retry).
I can send a pull request for either part if you tell me which setting name you want.
Thanks for the careful write-up. This switch already exists. The model-manifest fetch is controlled by the provider update checks setting, and when it is off the server makes no request and uses the manifest bundled in the release. You can turn it off in any of these ways:
In the app: Settings → Maintenance → Updates → turn off provider update checks.
Headless (t3 serve): put {"enableProviderUpdateChecks": false} in <base-dir>/userdata/settings.json before you start the server. On current main, a fresh base dir with that file made no connection to raw.githubusercontent.com and wrote no model-manifest.json. Without it, the fetch happened about 2 s after startup.
Managed policy: lock it under settings, for example "settings": { "enableProviderUpdateChecks": { "value": false, "locked": true } } (see the Settings section of docs/user/managed-policy.md for the exact shape).
The same setting also stops T3 Code from checking installed provider CLIs for newer versions. With it off, new models only arrive when you update T3 Code itself. There is no environment variable for it today. You're right that telemetry.md and the FAQ don't mention this request; it is only described in docs/user/updating.md. A short docs PR adding one line there would be welcome: it fetches the model catalog from raw.githubusercontent.com, refreshes it at most hourly (retrying after 5 minutes on failure, or sooner when the model picker opens), and is turned off with enableProviderUpdateChecks.
Thank you, this works. On v0.1.9 linux-arm64 with {"enableProviderUpdateChecks": false} in <base-dir>/userdata/settings.json, a clean base dir shows no non-loopback connection over a 30 s sample and no model-manifest.json is written. Without it, the one connection to raw.githubusercontent.com appears as before. I will leave the docs line to you unless you want a PR; say the word and I will send one for docs/user/updating.md or the telemetry page.
Activity
juliusmarminge commentedon Nov 14, 2026
Thanks for the careful write-up. This switch already exists. The model-manifest fetch is controlled by the provider update checks setting, and when it is off the server makes no request and uses the manifest bundled in the release. You can turn it off in any of these ways:
t3 serve): put{"enableProviderUpdateChecks": false}in<base-dir>/userdata/settings.jsonbefore you start the server. On current main, a fresh base dir with that file made no connection to raw.githubusercontent.com and wrote nomodel-manifest.json. Without it, the fetch happened about 2 s after startup.settings, for example"settings": { "enableProviderUpdateChecks": { "value": false, "locked": true } }(see the Settings section of docs/user/managed-policy.md for the exact shape).The same setting also stops T3 Code from checking installed provider CLIs for newer versions. With it off, new models only arrive when you update T3 Code itself. There is no environment variable for it today. You're right that telemetry.md and the FAQ don't mention this request; it is only described in docs/user/updating.md. A short docs PR adding one line there would be welcome: it fetches the model catalog from raw.githubusercontent.com, refreshes it at most hourly (retrying after 5 minutes on failure, or sooner when the model picker opens), and is turned off with
enableProviderUpdateChecks.joshuaswarren commentedon Nov 14, 2026
Thank you, this works. On v0.1.9
linux-arm64with{"enableProviderUpdateChecks": false}in<base-dir>/userdata/settings.json, a clean base dir shows no non-loopback connection over a 30 s sample and nomodel-manifest.jsonis written. Without it, the one connection to raw.githubusercontent.com appears as before. I will leave the docs line to you unless you want a PR; say the word and I will send one fordocs/user/updating.mdor the telemetry page.