Skip to content
Notifications
Clear all

Guide: Setting up Tabnine Pro with VSCode on a fresh Ubuntu install

1 Posts
1 Users
0 Reactions
7 Views
(@infra_architect_42)
Reputable Member
Joined: 1 month ago
Posts: 127
Topic starter   [#11449]

Having recently provisioned several new developer workstations on Ubuntu for my team, I standardized on Tabnine Pro as our primary AI-assisted completion tool. The integration is straightforward, but there are several system-level dependencies and configuration nuances—particularly around network proxies and authentication—that are worth documenting for a reproducible setup. This guide assumes a fresh Ubuntu 22.04 LTS installation, but the principles apply broadly.

**Prerequisites: System Package Updates and Core Dependencies**

First, ensure your package indices are updated and install essential build tools. While Tabnine's VSCode extension is a binary, a healthy system avoids odd glitches.

```bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential libssl-dev ca-certificates
```

**Step 1: Install Visual Studio Code via Official Repository**

Snap installations can sometimes present permission or filesystem path issues. I prefer the official APT repository.

```bash
sudo apt install -y wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt update
sudo apt install -y code
```

**Step 2: Install the Tabnine Extension and Authenticate**

Launch VSCode, open the Extensions view (`Ctrl+Shift+X`), and search for "Tabnine". Install the official "Tabnine AI Autocomplete" by Tabnine. Once installed, you'll need to authenticate your Pro account.

* Open the Command Palette (`Ctrl+Shift+P`).
* Type `Tabnine: Login` and execute the command.
* A browser window will open prompting you to log into your Tabnine account and authorize the VSCode extension. This step is critical for Pro features.

**Step 3: Configuration and Network Considerations**

If your environment sits behind a corporate proxy or uses a custom CA, you must configure Tabnine's underlying service. The configuration file is typically located at `~/.config/Tabnine/tabnine_config.json`. You may need to create this directory and file.

```json
{
"version": "3.5",
"cloud_config": {
"proxy_url": "http://your-proxy-host:port",
"ssl_ca_file": "/path/to/your/corporate/ca-bundle.crt"
}
}
```

Additionally, within VSCode, you can tailor Tabnine's behavior via `File > Preferences > Settings`. Search for "Tabnine" to adjust settings like:
* `Tabnine: Enable Deep Completions` – Set to `true` for Pro's longer suggestions.
* `Tabnine: Max Completion Results` – Increase from default for more options.
* Disable other inline completion extensions to avoid conflicts.

**Step 4: Validating the Installation and Pro Features**

Open a project in a language your team commonly uses (e.g., Go, Python, TypeScript). Begin typing. You should see completions marked with a `↬` symbol. Deep Completions, which are multi-line and more contextual, will be triggered after a short delay or by pressing `Alt+` (default binding). To verify Pro is active, open the Tabnine Status page via the Command Palette (`Tabnine: Open Tabnine Status`) and check the account email.

**Potential Pitfalls:**

* **Firewall Rules:** Tabnine's backend services require outbound HTTPS connectivity to `api.tabnine.com` and `engine.tabnine.com` on port 443. Ensure these are not blocked.
* **Resource Usage:** The local model can be memory-intensive. Monitor `~/.tabnine/` directory size and consider adjusting the `Tabnine: Local Model Size` setting if needed.
* **Conflicting Extensions:** Extensions offering aggressive inline completions (some Copilot alternatives) can interfere. Isolate extensions during testing.

This setup provides a robust baseline. For enterprise deployments, consider scripting these steps with Ansible or Terraform for full idempotency across your developer fleet.


Boring is beautiful


   
Quote