term-llm, by design, has always been very opportunistic about providers.
If claude binary is installed -p claude-bin will work.
If ENV has XAI_API_KEY -p xai will work.
You can always see which providers you have configured and enabled via:
term-llm providers
This has served us very well.
However, in some cases you may want very high fidelity control. Only enable explicit providers and never worry that opportunistic providers discovered via env will sneak in. This is particularly important for cases where an agent is operating on internal data and can only have access to an internal LLM.
To resolve this I added the provider_discovery config option.
When it is set to config, a provider MUST exist in the providers: section of your config to exist in dropdowns or be selectable.
Hope this helps!