# Provider discovery options

**URL:** <https://discuss.term-llm.com/t/provider-discovery-options/22>\
**Category:** Dev Log\
**Created:** [October 6, 2026, 10:21pm UTC](https://discuss.term-llm.com/t/provider-discovery-options/22 "2026-10-06T22:21:21Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![sam](https://sea3.discourse-cdn.com/termllm/user_avatar/discuss.term-llm.com/sam/32/7_2.png) [@sam](https://discuss.term-llm.com/u/sam)\
**Post date:** [October 6, 2026, 10:21pm UTC](https://discuss.term-llm.com/t/provider-discovery-options/22/1 "2026-10-06T22:21:21Z")

</div>

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!
