Solutions to common tinycode issues and configuration problems.
Problem: tinycode doesn't see Ollama even though it's running.
Solution:
- Run
tinycode doctor(CLI) or/doctorin the TUI — checks Ollama install, process, API reachability, and provider integration - Verify Ollama is running:
curl http://localhost:11434/api/tags - Ensure it's listening on
localhost:11434(default). If you changed the port:export TINYCODE_OLLAMA_HOST=http://localhost:YOUR_PORT - Check if Ollama is in
disabled_providersin your config - In containers, use:
export TINYCODE_OLLAMA_HOST=http://host.docker.internal:11434 - Restart tinycode after Ollama starts (provider discovery runs on startup)
Alternative: Manually connect via <leader>m → Ctrl+A → add custom provider
Problem: ramalama models don't appear in tinycode.
Solution:
- Verify ramalama is serving:
curl http://localhost:8080/v1/models - Set the env var:
export TINYCODE_RAMALAMA_HOST=http://localhost:8080 - ramalama auto-selects ports in 8080-8180 — check
ramalama psfor the actual port - Verify the container is running:
podman ps | grep ramalama - Run
tinycode doctorto check ramalama CLI, container runtime, and endpoint reachability
Problem: "Connection refused" or timeout when connecting to vLLM.
Solution:
- Verify vLLM is listening:
curl http://localhost:8000/v1/models - If running on a different host:
export TINYCODE_VLLM_HOST=http://your-vllm-host:8000 - If behind a firewall, ensure port 8000 is open
- Check vLLM didn't crash:
ps aux | grep vllm
Problem: Model appears in provider list but can't select it.
Solution:
- Verify provider is actually running
- Check
~/.config/tinycode/config.jsonforenabled_providers/disabled_providersfilters - Try
tinycode doctoror/doctorto diagnose configuration - If using custom endpoint, verify it's OpenAI-compatible:
curl http://your-endpoint/v1/models
Problem: ./dist/tinycode serve fails with address already in use.
Solution:
- Find process using port 4096:
lsof -i :4096 kill -9 <PID>
- Or use a different port in config:
{ "server": { "port": 5096 } } - Restart with
./dist/tinycode serve
Problem: ./dist/tinycode serve works locally but fails on remote.
Solution:
- Ensure the tinycode binary is installed:
./dist/tinycode --version - Bind to all interfaces in config:
{ "server": { "hostname": "0.0.0.0" } } - Set password for remote access:
export TINYCODE_AUTH_TOKEN=your-secure-token - Open firewall port:
sudo firewall-cmd --add-port=4096/tcp --permanent sudo firewall-cmd --reload
- Access via
http://<server-ip>:4096
Problem: Web UI shows but submitting prompts does nothing.
Solution:
- Check browser console for errors (F12 in DevTools)
- Verify server is responding:
curl http://localhost:4096/health
- Check CORS isn't blocking requests (should not be by default)
- Try restarting browser and clearing cache
Problem: Session list is empty or switching sessions fails.
Solution:
- Check database file exists:
ls -la ~/.local/share/tinycode/tinycode.db - Verify database isn't corrupted:
sqlite3 ~/.local/share/tinycode/tinycode.db ".tables"
- If corrupted, back up and delete:
mv ~/.local/share/tinycode/tinycode.db ~/.local/share/tinycode/tinycode.db.bak # Restart tinycode — it will recreate the database
- Check disk space isn't full:
df -h ~/.local/share/tinycode
Note: override the path with TINYCODE_DB or the data directory with TINYCODE_DATA_DIR / XDG_DATA_HOME.
Problem: Session list loads slowly or switching sessions lags.
Solution:
- Compact a session to reduce size:
This removes unnecessary messages and shrinks the session.
<leader>c - Export very large sessions to archive them
- Clear old sessions manually if no longer needed
- Check disk performance:
iostat -x 1 5
Problem: Error creating project config, agents, or skills under .tinycode/.
Solution:
- Verify directory exists and is writable:
ls -la .tinycode/ chmod -R 755 .tinycode/
- Check you have write permissions in the project directory
- If running in container, verify
/projectsPVC is mounted and writable - Restart tinycode after fixing permissions
Note: TypeScript wiki/notepad MCP tools are not in the Go product. Session notepad is a built-in tool; project agents live in .tinycode/agent/*.md and skills in .tinycode/skills/.
Problem: LLM takes 10+ seconds to respond or times out.
Solution:
- Run
tinycode doctoror/doctor— checks RAM vs model size, GPU acceleration, swap pressure, and cold-load time - Check what model is selected:
<leader>m - tinycode warms the model on startup — if you see "warming model..." followed by a long load time (>60s), the model may be too large for your hardware
- On Mac, verify Ollama is native arm64 (not Rosetta):
tinycode doctor//doctorchecks this - Check if the model is swapping: close Docker, Chrome, and other memory-heavy apps
- Dense models >12B are too slow on 32GB RAM — use qwen3.5:9b (9B, benchmark champion at 14/15)
- Check
ollama psto see if the model is loaded or re-loading between requests - If model keeps re-loading, check
keep_alive— tinycode setskeep_alive: "30m"by default
Problem: Input lag, slow rendering, or UI freeze.
Solution:
- Disable animations:
Or in config:
<leader>s # View status Look for animation toggle{ "animations": false } - Collapse code blocks to reduce rendering:
<leader>; # Toggle code concealment - Try a smaller terminal font size (renders faster)
- Check system isn't CPU-constrained (tinycode TUI runs on single thread)
- Reduce number of open sessions
Problem: Web interface lags or is unresponsive.
Solution:
- Clear browser cache (Ctrl+Shift+Delete)
- Check network latency to server:
ping <server-ip>
- Monitor server CPU/memory:
top | grep tinycode - Try a different browser
- Check for browser extensions that might intercept requests (disable temporarily)
Problem: Tool calls fail repeatedly with JSON parse errors.
Solution: tinycode automatically repairs common JSON issues:
- Strips markdown code fences (
```json ... ```) - Removes trailing commas before
}or] - Retries the repaired call
If repairs fail, the model may not support tool calling reliably. See "Tool calls keep failing" below.
Problem: After 3+ consecutive tool-call failures, a warning toast appears.
Solution:
- This usually indicates the model is too small or lacks tool-call training
- Switch to a larger model: Press
<leader>mand selectqwen3:14b,qwen3.5:9b, or similar - For very small models (<7B parameters), tool calling may not work at all — see next section
Problem: tinycode detects capabilities.toolcall=false for this model and skips tools entirely.
Solution:
- tinycode auto-detects this via the provider's capability flags and confirms via warmup probe on startup
- When disabled, tools are not injected into the request
- The model still works for conversations — it just can't use tools
- Models with tool calling: qwen3.5:9b, north-mini-code-1.0, gemma4:12b
- Models WITHOUT: granite, codellama, deepseek-r1 (distilled) — these all score 5/15 with zero tool calls
- Run
tinycode doctoror/doctorto see your model's tool-call status - To switch, select a model with tool-call support via
<leader>m
Problem: Plugin appears in list but fails to initialize.
Solution:
- Plugins are Go binaries under
~/.config/tinycode/plugins/<name>(not JSON under~/.tinycode/):ls -la ~/.config/tinycode/plugins/ tinycode plugin list - Verify the binary is executable and was installed with
tinycode plugin install - Check tinycode logs for plugin init errors:
tail -f ~/.local/share/tinycode/tinycode.log - Try
tinycode doctoror/doctorfor configuration validation
Problem: Listed agents or skills don't appear in autocomplete or list.
Solution:
- Restart tinycode
- Check config for
enabled_agentsfilter:grep -A5 enabled_agents ~/.config/tinycode/config.json - Verify built-in agents haven't been disabled:
/ask architect (test if the agent loads) - Run
tinycode doctoror/doctorto list all available agents
Problem: Constantly asked to approve tool use.
Solution:
- Review what's being approved (each prompt shows the tool and input)
- Approve once if you trust the command
- To auto-approve safe operations, configure in
~/.config/tinycode/config.json:{ "permissions": { "auto_approve_read": true } }
Problem: podman run starts container but it exits right away.
Solution:
- Check logs:
podman logs <container-id>
- Verify image has the tinycode binary:
podman run -it quay.io/bjohns/tinycode-container:latest tinycode --version
- If missing vLLM, set environment variable:
podman run -it \ -e TINYCODE_VLLM_HOST=http://your-vllm:8000 \ -e TINYCODE_AUTH_TOKEN=changeme \ quay.io/bjohns/tinycode-container:latest
Problem: TinycodeInstance pod is stuck in Pending or CrashLoopBackOff.
Solution:
- Check pod events:
oc describe pod -n tinycode <pod-name>
- Verify PVC is provisioned:
oc get pvc -n tinycode
- Check node resources:
oc describe nodes | grep -A5 "Allocated resources"
- If SCC issue, verify operator set SecurityContext:
oc get pod -o yaml <pod-name> | grep -A10 "securityContext"
- See tinycode-operator docs for cluster setup
tinycode doctor # CLI (headless)
# or in the TUI:
/doctor # bundled skilltinycode doctor and the /doctor skill check config, database, providers, agents, plugins, and skills. Prefer the Go CLI//doctor skill over the obsolete TypeScript /tc-doctor bash skill.
<leader>o<leader>s<leader>x # Export current session
tinycode export --format json <session-id> > session.jsonsqlite3 ~/.local/share/tinycode/tinycode.db ".tables"
sqlite3 ~/.local/share/tinycode/tinycode.db ".schema session"curl -v http://localhost:11434/api/tags # Ollama
curl -v http://localhost:8000/v1/models # vLLM- Run
tinycode doctoror/doctor— diagnoses most common issues - Check the GitHub Discussions
- File an issue with:
- Output of
tinycode doctoror/doctor - Exact steps to reproduce
- Your config (
~/.config/tinycode/config.json) - Relevant logs (if available)
- Output of
- For cluster issues, see tinycode-operator troubleshooting