Provider System
Overview
A provider is a core concept in tmf. Each provider encapsulates the connection details for an LLM API service, including the API endpoint, authentication key, and available models. With tmf, you can switch between providers with a single command — no manual config editing required.
Available Providers
tmf ships with several major LLM providers built in. Run tmf list to see the full list:
tmf listExample output:
Available providers:
deepseek (models: deepseek-chat, deepseek-reasoner)
openai (models: gpt-4o, gpt-4o-mini)
claude (models: claude-sonnet-4-20250514)
siliconflow (models: Qwen/Qwen2.5-7B-Instruct, ...)Inspecting a Provider
Use tmf ask to view detailed information about a provider, including all available models and API endpoints:
tmf ask deepseekSupported Protocols
Providers fall into two protocol categories:
| Protocol | Description | Compatible Apps |
|---|---|---|
| OpenAI-compatible | Speaks the OpenAI API format | Codex, OpenClaw |
| Anthropic-compatible | Speaks the Anthropic API format | Claude Code, OpenClaw |
tmf automatically matches the provider's protocol to the target application. For example, an Anthropic-protocol provider can only be switched into Claude Code.
Testing a Provider
After switching, use tmf test to verify connectivity:
# Test provider connectivity
tmf test deepseek
# Example output:
# ✓ deepseek — connection OK (latency: 320ms)Storage
TokenMF stores its data in ~/.tmf/:
- config.json — global settings, including API base URLs
- store/used.json — per-app provider usage records
Advanced
To add a custom provider, edit ~/.tmf/config.json. See the CLI configuration documentation for details.
