For the complete documentation index, see llms.txt. This page is also available as Markdown.

Troubleshooting

Beta · Tabnine plugin for OpenCode v0.5.1

Symptom-by-symptom fixes for the most common problems with tabnine-opencode, plus how to collect debug logs for a support ticket.

tabnine-opencode: command not found

The installer makes sure ~/.local/bin is on your PATH. If it wasn't already there, the installer added a block to your shell rc file on macOS/Linux, or updated the user-scope Path variable on Windows. Any such change only applies to new shells.

1

Open a new terminal window

Run tabnine-opencode again.

2

Add ~/.local/bin to your PATH

If you installed with --no-modify-path (or -NoModifyPath on Windows), add ~/.local/bin to your PATH yourself.

See Install for details on what the installer changes.

"could not find the Tabnine opencode binary"

If the launcher prints:

tabnine: could not find the Tabnine opencode binary.

followed by a line saying it expected the binary at ~/.tabnine/opencode/bin/opencode and asking you to reinstall Tabnine opencode (or set OPENCODE_BIN), the installed tree at ~/.tabnine/opencode is missing or incomplete. Rerun the installer to repair it. See Install. (OPENCODE_BIN is a development override; reinstalling is the fix for a normal install.)

No models in the picker or placeholder entries

When no real model is available, the model list shows a placeholder entry that tells you what to do:

  • A Login required entry means you aren't signed in. Sign in, then restart:

    tabnine-opencode auth login
  • A Models unavailable entry means model discovery failed or returned no agent-capable models. Verify your Tabnine host and that your token is valid, then restart.

You may also see a one-line startup notice describing the reason, for example that you aren't logged in (run tabnine-opencode auth login, or set TABNINE_TOKEN).

The placeholder message says opencode auth login, but type tabnine-opencode auth login. Inside the Tabnine distribution there's no opencode command on your PATH. The launcher forwards auth login (and every other argument) to the bundled binary for you.

Placeholders can't call tools, and chatting with one selected fails at the Tabnine endpoint. They exist only to keep the provider visible and point you at the fix. After signing in, restart the CLI: real models are discovered at startup. For the full sign-in and model reference, see Signing In and Working with Models.

Browser sign-in times out or the callback can't connect

The browser sign-in flow waits up to 5 minutes end to end. If it doesn't complete, you'll see:

1

Retry browser sign-in

Run tabnine-opencode auth login again and finish the browser step promptly.

2

Configure the callback port and host

If the browser can't reach the local callback (for example, a firewall restricts local ports), pin the callback port with the OAUTH_CALLBACK_PORT environment variable and allow that port. An invalid value fails with Invalid value for OAUTH_CALLBACK_PORT: "<value>". You can also change the bind host with TABNINE_LOGIN_CALLBACK_HOST (default localhost).

3

Authenticate with a token

If a browser flow isn't practical, set TABNINE_TOKEN to a Tabnine PAT, or use the Paste Tabnine access token (PAT) login method. See Signing In and Working with Models.

Behind a corporate proxy or custom CA

There are no Tabnine-specific config keys for networking. These are environment variables set in your shell or CI job, plus your OS trust store.

  • Proxy: HTTP_PROXY, HTTPS_PROXY, and NO_PROXY (lowercase variants too) are honored by default, with no opt-in flag needed. All outbound traffic (LLM, auth, model discovery, MCP) inherits them. Proxy credentials may be embedded in the proxy URL.

  • Loopback is handled for you: the launcher appends localhost,127.0.0.1 to NO_PROXY (preserving your existing entries), so local traffic is never routed through the proxy.

  • Custom CA: the bundled opencode binary trusts your OS certificate store (Keychain on macOS, the Windows system store, ca-certificates on Linux) on every launch. For an extra PEM bundle, set NODE_EXTRA_CA_CERTS to its path. Setting NODE_TLS_REJECT_UNAUTHORIZED=0 disables certificate verification entirely; we recommend against it.

opencode reference: proxy and custom-CA support are standard opencode features; see the opencode Network docs.

Quota and license messages

If a chat request fails with a message like:

your organization's usage quota for the month has been reached (the message names the exact scope, whether you, your team, or your organization, and the metered unit). Before the limit is hit you may also see warning toasts as usage crosses 80/90/95/100% of the limit, for example: "You have used 90% of the configured token limit. Requests are still going through; you may be blocked when the limit is reached."

If you instead see:

your license doesn't include agent access.

These limits are set by your organization. Administrators configure quotas and license entitlements in the Tabnine admin console. There is nothing to change on your machine. See Cost Control and License.

Windows uninstall ends with a "batch file cannot be found" error

On Windows, run the PowerShell uninstaller directly, with -ExecutionPolicy Bypass so it runs even under a restrictive execution policy:

The uninstall.cmd wrapper can end with a spurious "batch file cannot be found" error because cmd.exe re-reads the file it is deleting. The .ps1 is the supported entry point, and running it as shown above avoids the default Restricted policy blocking the unsigned script. See Install for uninstall options.

Collect debug logs

For a support ticket or bug report, capture a debug log of the failing session. Debug logging is controlled by the TABNINE_DEBUG environment variable (set it in your shell for the run, not in a config file). Ordinary runs don't produce a debug log, so enable it explicitly:

1

Enable debug logging

Set TABNINE_DEBUG=1, and point the log at a known path with TABNINE_LOG_FILE so you know exactly where it lands:

2

Reproduce the problem and attach the log

Debug logs are written to a file (never to the terminal) and don't contain your secrets.

If you enable TABNINE_DEBUG without setting TABNINE_LOG_FILE, the debug log is written to your system's temporary directory in a file named tabnine-plugin-<ISO-timestamp>-<pid>.log, one file per process. Setting TABNINE_LOG_FILE is the reliable way to capture the log at a path you choose.

For opencode's own logs, launch with tabnine-opencode --print-logs, or look in ~/.local/share/opencode/log/.

opencode reference: log collection and general debugging are standard opencode features; see the opencode Troubleshooting docs.

Get your version for support

Always include your version when reporting a problem:

For headless and CI issues, see Scripts and CI. To reinstall or check what the installer changed, see Install.

Last updated

Was this helpful?