Repository navigation
Conversation
Settings now offers every built-in provider preset plus a custom OpenAI-compatible endpoint for writing and selection translation. Realtime dictation and pronunciation keep using OpenAI, so a separate optional OpenAI key field appears whenever another provider is chosen. Configurations saved before version 5 still resolve to OpenAI, so stale provider IDs from early builds cannot switch providers on upgrade. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KrJfbzXfbZ33kLGiZbfpz7
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KrJfbzXfbZ33kLGiZbfpz7
wanming
marked this pull request as ready for review
October 4, 2026 23:44
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Tom · project thread
Before: Inklet only worked with an OpenAI API key. The app already had presets for 20 other providers, but Settings and the saved config always forced writing back to OpenAI.
After: General settings has a Provider picker. The choices are OpenAI, Anthropic, Gemini, DeepSeek, Qwen, Kimi, GLM, and the other existing presets, plus Custom (OpenAI Compatible) with an Endpoint field. Writing and selection translation use the chosen provider and its own key. Realtime dictation and pronunciation still use OpenAI, so when another provider is selected, a separate optional OpenAI API Key field appears for those features. With OpenAI selected, the screen works exactly as before: one key covers everything.
This removes the biggest setup blocker for people who can't easily pay for OpenAI, which is the first step in the growth plan for the project.
How
AppConfignow keeps the savedproviderID. Configs saved before version 5 still resolve to OpenAI, so stale provider IDs from early builds don't switch anyone's provider when they upgrade. Unknown IDs also fall back to OpenAI.resolvedProviderPresetapplies the custom endpoint when it's a valid http(s) URL.SettingsViewModelloads and saves each provider's key under its own Keychain account. Switching providers first flushes any key you were typing, then loads the new provider's key and default model. The model list now comes from the selected provider's catalog.Verification
swift testhere (no Swift toolchain), so CI is the first run.🤖 Generated with Claude Code
https://claude.ai/code/session_01KrJfbzXfbZ33kLGiZbfpz7
Generated by Claude Code