Extensions

Tabnine CLI includes an extensions system that lets you install external packages which define tools, contexts, or workflows for the agent. Extensions are stored locally and can be enabled, disabled, listed, updated, or removed through the CLI.

An extension typically provides:

  • One or more tools, such as integrations with third-party APIs, file systems, or local utilities.

  • Context definitions that tell the agent how to use these tools in specific scenarios.

  • Optional commands or workflows exposed through the agent.

The overall goal is to be compatible with existing extension ecosystems that use a similar structure, while preserving Tabnine’s naming and branding.

Extension structure

Each extension is installed into a dedicated directory under your Tabnine configuration, for example: ~/.tabnine/extensions/<extension-name>/. Within the extension directory, you will usually find a manifest file and possibly a guide/readme file.

Installing and uninstalling extensions

You manage extensions using the tabnine extensions command group. Common operations include:

  • Installing a new extension from a registry, repository, or URL.

  • Uninstalling an extension that you no longer need.

  • Updating one or more extensions to their latest compatible versions.

# Install an extension from a Git repository or local path
tabnine extensions install <source> [--ref <ref>] [--auto-update] [--pre-release]
# Uninstall one or more extensions 
tabnine extensions uninstall <name...>
  • <source>: Git URL or local path.

  • --ref: Branch, tag, or commit to install.

  • --auto-update: Enable automatic updates for this extension.

  • --pre-release: Allow installation of pre‑release versions.

When you install an extension, the CLI clones or downloads the extension source into your local extensions directory.

It will validate the manifest and configuration (such as tabnine-extension.json), then convert metadata and documentation to Tabnine’s expected format where applicable. Finally, it will install or prepare any tool-specific dependencies the extension declares.

Uninstalling removes the local extension directory and unregisters its tools and commands from the agent.

Managing and inspecting extensions

Once you have one or more extensions installed, you can conduct several tasks:

Enable or disable extensions without uninstalling them:

  • <name>: Extension name.

  • --scope: Scope such as user or workspace (if supported).

Listing, updating, and inspecting extensions

Where supported, the CLI can also help you explore a curated list of community extensions that are compatible with the Tabnine Agent, allowing you to discover and install them directly.

You can also display details for a specific extension, including version and description, provided tools or subagents, and known configuration options.

Compatibility with existing extension ecosystems

The Tabnine extension system is designed to be compatible with extensions defined using similar formats in other CLIs. When you install such an extension:

  • Its metadata file is inspected and translated into tabnine-extension.json if necessary.

  • Documentation files (for example, a generic README or another CLI’s guide file) are converted or mirrored into TABNINE.md so the agent can use them as a reference.

  • Tool definitions are adjusted to use Tabnine’s naming and environment conventions.

This allows many existing extensions to work as-is or with minimal adaptation.

Last updated

Was this helpful?