Supported OAuth Providers
Fromnanobot/providers/registry.py, two OAuth providers are currently supported:
- OpenAI Codex - ChatGPT Codex Responses API
- GitHub Copilot - GitHub Copilot LLM access
OpenAI Codex
Fromnanobot/providers/registry.py:208-218:
- ChatGPT Plus or Pro account
- Interactive terminal for OAuth login
GitHub Copilot
Fromnanobot/providers/registry.py:221-237:
- GitHub Copilot subscription
- Interactive terminal for OAuth login
OpenAI Codex Implementation
Provider Architecture
Fromnanobot/providers/openai_codex_provider.py:20-24:
Authentication Flow
Fromnanobot/providers/openai_codex_provider.py:39-40:
oauth_cli_kit library handles the OAuth flow:
- Opens browser for ChatGPT login
- User authenticates with OpenAI
- Token is stored locally for reuse
- Access token is refreshed automatically
Request Headers
Fromnanobot/providers/openai_codex_provider.py:92-101:
API Endpoint
Fromnanobot/providers/openai_codex_provider.py:16-17:
Message Conversion
The Codex API uses a different message format than OpenAI. Fromnanobot/providers/openai_codex_provider.py:136-193:
Prompt Caching
Fromnanobot/providers/openai_codex_provider.py:224-226:
Usage
Login Flow
OpenAI Codex
- Opens your browser to ChatGPT login page
- Prompts you to authenticate
- Stores access token locally
- Confirms successful authentication
GitHub Copilot
Configuration
After login, configure your model in~/.nanobot/config.json:
OpenAI Codex
gpt-5.1-codex- Latest Codex modelgpt-5.0-codex- Previous version
GitHub Copilot
Starting a Chat
Docker Usage
For Docker users, interactive OAuth requires the-it flags:
Advanced Features
Reasoning Effort
Fromnanobot/providers/openai_codex_provider.py:55-56:
low, medium, high
Tool Support
Codex supports function calling with automatic tool conversion. Fromnanobot/providers/openai_codex_provider.py:118-133:
Error Handling
Fromnanobot/providers/openai_codex_provider.py:313-316:
SSL Verification Fallback
Fromnanobot/providers/openai_codex_provider.py:64-70:
Troubleshooting
Token Expired
If you receive authentication errors, re-login:Browser Not Opening
If the browser doesn’t open automatically:- Copy the URL from terminal output
- Open it manually in your browser
- Complete authentication
- Return to terminal
Rate Limits
Codex uses ChatGPT usage quotas. If you hit limits:- Plus users: Wait for quota refresh (typically hourly)
- Pro users: Higher limits, but still rate-limited
- Alternative: Switch to API key-based provider temporarily
Docker Interactive Issues
Ensure you use-it flags:
Comparison: OAuth vs API Keys
| Feature | OAuth Providers | API Key Providers |
|---|---|---|
| Authentication | Browser-based login | API key in config |
| Token Management | Auto-refresh | Manual key rotation |
| Billing | Subscription-based | Usage-based |
| Access | Tied to account | Tied to key |
| Revocation | Logout/revoke | Delete key |
| Setup | Interactive | Copy-paste |
| Docker | Requires -it | Works in background |
| CI/CD | Not recommended | Recommended |
Security Considerations
- Token Storage: OAuth tokens are stored locally in
~/.nanobot/- protect this directory - Token Lifespan: Tokens expire and are refreshed automatically
- Revocation: Revoke access through provider’s account settings if needed
- Shared Systems: Don’t use OAuth providers on shared systems; use service accounts with API keys instead
- CI/CD: OAuth requires interactive login; use API key providers for automation
Best Practices
- Use for personal workflows: OAuth is ideal for individual developer use
- Use API keys for automation: Bots, CI/CD, and servers should use API key providers
- Protect token files: Set appropriate file permissions on
~/.nanobot/ - Re-authenticate periodically: If you notice authentication issues, re-login
- Monitor usage: OAuth providers tie to subscription quotas; monitor usage to avoid interruptions
Model Prefixing
OAuth providers use model prefixing to ensure proper routing. From README.md, the registry automatically handles prefixing:Related
- Provider Configuration - Complete provider setup guide
- Authentication - General authentication concepts