Teaspoon IDE Settings Guide
A walkthrough of every option in the Teaspoon IDE (teaspoon-ide) settings dialog,
focused on the Gemini API key, local LLMs via Ollama + Gemma, unauthenticated OpenAI-compatible APIs,
and the organization (centrally managed) mode added in v0.5.0.
Contents
1. Opening the settings dialog
- Click the ⚙️ button in the top-right corner of the AI chat pane.
- If no API key is configured, trying to send a chat message also opens the settings dialog.
2. UI language
Settings > Appearance > Language switches the UI language. It applies instantly — no save needed.
Languages are loaded from translation files named lang/<code>.json.
The dev build reads lang/ in the project root; packaged builds read
resources/lang/ next to the exe, so you can add or edit translations yourself.
English and Japanese (日本語) ship by default.
This guide uses the English UI labels below (Japanese labels are noted where helpful).
3. Choosing an LLM provider
Settings > LLM Provider > Provider selects the AI backend. The switch applies immediately — no save button needed.
| Option | Description | Best for |
|---|---|---|
| Gemini API (cloud) | Uses Google's Gemini. Requires an API key. Fast and capable. | Reliability and performance |
| Ollama (local, offline) | Uses a local LLM running on your PC via Ollama. No API key, free, fully offline. | Keeping code off the cloud, offline work |
4. Setting up a Gemini API key
Steps
- Get an API key from Google AI Studio (sign in with a Google account and use "Get API key". A free tier is available).
- In Teaspoon IDE's settings, make sure the provider is Gemini API (cloud).
- Paste the key into the Gemini API Key field. The 👁️ button toggles visibility of what you typed.
-
Pick a model under Model Selection. The default is Gemini 3.8 Flash, which is fine for most use
(Gemini 3.8 Flash is offered at an introductory price of $0.75/1M input and $3.75/1M output through December 31, 2026 — exactly half of the standard $1.50/$7.50 rate taking effect January 1, 2027. For even cheaper usage, Gemini 3.5 Flash-Lite at $0.30/$2.50 is recommended).
To use a model not in the list, choose Custom Model and type the model ID (e.g.
gemini-2.0-flash-thinking). - Click "Save Settings". The API key, model, and proxy settings are only persisted when you click this button (unlike appearance and provider changes, which apply instantly).
- Send a message in the chat — a response means you're done.
Notes
- "Save Settings" stays disabled until an API key is entered. When the provider is Ollama, the buttons are hidden entirely (everything Ollama-side applies on change).
- The API key is stored in plaintext in localStorage. Be careful on shared PCs. Use the "Clear API Key" button to erase it (this removes only the Gemini-related settings).
- If the selected model is unavailable, the app automatically tries to fall back to
gemini-1.5-flash. If that also fails, pick a different model. (While signed in to an organization, there is no fallback — the organization controls which models you may use.) - While signed in to an organization, the personal model dropdown is locked and your personal model setting is ignored.
- Requests time out after 120 seconds, and responses have a length cap. Break very large requests into smaller ones.
5. Hiding your API key behind a LiteLLM proxy (optional)
If you don't want the real Gemini API key on the client PC, you can route requests through a proxy such as LiteLLM.
Teaspoon IDE → dummy key → LiteLLM (e.g. on a VPS) → real API key → Google AI Studio
Steps
-
Set up LiteLLM on a VPS or similar:
pip install litellm litellm --model gemini/gemini-3.8-flash --api_key YOUR_REAL_API_KEY
- In Teaspoon IDE's settings, enable LLM Proxy (LiteLLM) > Use Proxy.
- Enter the proxy URL (e.g.
http://your-vps:4000,https://your-proxy.com). - Put a dummy value in the Gemini API Key field and click "Save Settings". The value you enter is sent to the proxy as an
Authorization: Bearer <key>header, so if your LiteLLM setup issues virtual keys, enter one of those.
Benefits: the real key never touches the client, key rotation is easy, you can monitor and cap usage, and multiple AI providers can be unified behind one endpoint.
6. Ollama + Gemma (local LLM)
With Ollama, the AI chat works with no API key and fully offline.
Steps
- Install Ollama.
-
Pull a model. Teaspoon IDE's default model is
gemma4:e4b:ollama pull gemma4:e4b
Other models (gemma3:4b,qwen3:8b, etc.) work too. - Keep Ollama running (
ollama serve, or the resident tray app). - In Teaspoon IDE's settings, switch the provider to Ollama (local, offline).
-
Leave the Endpoint at the default
http://localhost:11434. Only change it if Ollama runs on another machine or port. - The Model field auto-detects models installed in Ollama and shows them in a dropdown — just pick one. If detection fails, the field becomes a plain text input; type the model name directly.
"Connected - N model(s) installed." below the settings means the connection works. Provider settings apply immediately — no save needed.
With Ollama, replies stream token by token, so even slow local models feel alive while they work.
Cancelling actually aborts the in-flight request. Each reply also shows the model used and its round-trip
time (e.g. (6.1s)), which makes comparing model speeds easy.
// READ_FILE:.
Smaller local models may not follow this format reliably — chat works, but file operations can be unstable.
Models under 3B parameters automatically get a compact system prompt and only the last 8 history turns,
but if that's still not enough, try a larger model or use Gemini.
7. Using unauthenticated OpenAI-compatible APIs
In Ollama mode, Teaspoon IDE POSTs OpenAI-compatible requests to
{endpoint}/v1/chat/completions with no authorization header at all.
That means any unauthenticated OpenAI-compatible server may work simply by pointing the endpoint at it.
Servers that may work
| Server | Endpoint example | Notes |
|---|---|---|
| Ollama | http://localhost:11434 | Officially supported; model auto-detection works. |
| LM Studio | http://localhost:1234 | Enable its local server feature. |
| llama.cpp (llama-server) | http://localhost:8080 | Use a version that supports /v1/chat/completions. |
| LocalAI, etc. | http://localhost:8080 | Anything exposing an OpenAI-compatible API. |
Tips
-
Set the provider to Ollama and enter the server's base URL as the endpoint.
Do not include a trailing
/v1— the app appends/v1/chat/completionsitself. -
Model auto-detection uses Ollama's own
/api/tags, so on other servers you'll see a "Cannot reach Ollama" warning. That only means detection failed — the model field becomes a text input, and chat itself often still works. Enter the exact model name the server expects and try it.
Limitations (important)
- Services that require API keys cannot be used. Ollama mode has no way to send an Authorization header, so endpoints like OpenAI proper or OpenRouter won't work. For authenticated services, consider running a local proxy such as LiteLLM.
-
Destinations are restricted by CSP.
Only
http://localhost:<any port>andhttps://are allowed. Plain-HTTP remote servers such ashttp://192.168.x.x:11434on your LAN cannot be reached (serve them over HTTPS, or tunnel them to localhost, e.g. via SSH).
8. Organization mode (centrally managed, v0.5.0+)
Organization mode lets a company, school, or team centrally manage members' AI usage. When enabled, the whole app switches to a sign-in gate and stays locked until the member signs in with an account issued by the organization. See Teaspoon IDE Organization for the concept and deployment options.
Enabling it (admin / deployer)
- In Settings > Organization, enter the organization's Server URL (e.g.
https://llm.example.org). - Turn on "Require organization sign-in" (it stays disabled until a server URL is entered).
- The app immediately switches to the sign-in screen and waits for credentials issued by the organization's server.
Signing in (member)
- On the sign-in screen, enter the Username and Password issued by your organization.
- On success, the server issues a per-user virtual key, and AI requests then go through the organization's LLM proxy (e.g. LiteLLM). The real API key never reaches your machine.
While signed in
- Remaining budget shown as a percentage: the chat header shows your allotted budget remaining as "Budget 99.9%" next to the model badge — never a currency amount. It warns below 20%, turns red at 0%, and its tooltip shows the reset date. It refreshes after each response and every 60 seconds.
- Models limited to the allowed list: usable models come from the server. Settings > Organization shows a model dropdown restricted to that list, and the personal model selector is locked (the automatic model fallback is also disabled in managed mode).
- Personal settings are preserved: managed credentials are stored separately from your personal Gemini API key. Signing out or disabling the mode never destroys your personal configuration.
Switching back to local use
- On the sign-in screen, choose "Continue without an organization" → confirm → "Disable" to turn off organization mode on this device and return to personal use. (The issued key is kept, so re-enabling later won't require a fresh sign-in.)
- While signed in, use "Sign Out" in Settings > Organization to discard the issued key.
https:// or http://localhost:<any port>.
A plain-HTTP management server on your LAN (e.g. http://192.168.x.x) cannot be reached.
9. Other settings
The remaining options in the settings dialog. Unless noted otherwise, changes apply immediately and are saved automatically.
| Section | Item | Description | Default |
|---|---|---|---|
| Appearance | Language | Pick a language loaded from lang/<code>.json. Japanese is included. |
English |
| Theme | System / Dark / Light / Organic Light / Muted Ocean / Ancient Console / Walnut / Heritage. "System" follows your OS setting. Organic Light is a muted warm-paper theme for people who find pure white glaring. | System | |
| Font Family | Font for the whole UI and the editor (CSS font-family value). | Empty = system font | |
| Font Size | 8–32 px. | Empty = 13 px | |
| AI Context | Context Mode |
File tree only (recommended): sends just the path list; the AI fetches contents on demand via READ_FILE / GREP. Saves tokens. Full file contents: sends file contents in bulk. Expensive. |
File tree only |
| Max Files | Cap on paths sent in tree mode (10–20000). | 2000 | |
| History | Clear Recent History | Clears "Recent Projects" and "recently opened files" (Quick Open). Projects, chats, and settings are kept. | — |
| Clear All Chat History | Deletes saved AI chat conversations for all projects (a confirmation step appears first). Project files and settings are kept, and the open chat panel is reset. To clear only the current project's conversation, use the "Clear" button in the chat header. | — | |
| Bottom buttons (Gemini provider only) |
Save Settings / Clear API Key | "Save Settings" persists the Gemini API key, model, and proxy settings. "Clear API Key" deletes the Gemini API key, model, custom model, and proxy URL. | — |
The 🧠 button in the chat pane also toggles "automatic context ↔ manual file selection". In manual mode, the contents of files you pick in the Explorer are sent to the AI as-is (independent of the Context Mode setting).
10. Troubleshooting
| Symptom | Cause and fix |
|---|---|
| "Save Settings" is disabled / missing | An API key is required while the Gemini provider is selected (a model name is also required when "Custom Model" is chosen). When the provider is Ollama, the buttons are hidden entirely. |
| "Cannot reach Ollama" is shown |
Check that Ollama is running (ollama serve / tray app) and that
curl http://localhost:11434/api/tags responds; verify the endpoint URL.
On non-Ollama OpenAI-compatible servers this warning is expected — you can still type a model name and chat.
|
| "Please configure your Gemini API key in settings to start chatting" persists | The provider is still Gemini with no saved key, or you forgot "Save Settings". If you intend to use Ollama, check the provider switch. |
| Model not found / not supported errors | Pick another model, or enter a valid model ID via Custom Model. The app also tries an automatic fallback to gemini-1.5-flash. |
| Timeout / "response too long" errors | Requests time out at 120 seconds and responses are length-capped. Split the request into smaller pieces, or set Context Mode to "File tree only" to reduce what's sent. |
| The AI won't perform file operations (local LLM) | The model may not be following the command format. Try a larger model or switch to Gemini. |
| Stuck on the sign-in screen (organization mode) | Verify the username/password and server URL with your administrator. To stop using organization mode, choose "Continue without an organization" → "Disable" on the sign-in screen to return to local use. |
| "Model not permitted" or similar errors in organization mode | While managed, only models allowed by the server can be used (pick one in the Settings > Organization dropdown). If the "Budget" badge shows 0%, your allotted budget is exhausted — check the reset date in the tooltip or ask your administrator. |
Still stuck? Report it via GitHub Issues.
If the packaged app fails to start at all, a log may have been written to %TEMP%/teaspoon-crash.log.