whatisgithub

What is tabnine?

codota/tabnine — explained in plain English

Analysis updated 2026-06-24

10,794ShellAudience · developerComplexity · 1/5Setup · easy

In one sentence

Configuration repository for TabNine, an AI code autocomplete tool. The actual engine is closed source, this repo only holds language mapping and tokenization config files.

Mindmap

mindmap
  root((repo))
    What It Does
      Maps file extensions to languages
      Controls text tokenization
      Supports editor integrations
    Editors Supported
      VS Code
      Sublime Text
      Vim
      Atom
    Contribute
      Edit config files
      File a GitHub issue
      Build new editor client
    Limitations
      Backend is closed source
      No source to build
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Customize how TabNine maps file extensions to programming languages for better cross-file autocomplete suggestions.

USE CASE 2

Modify tokenization rules for a specific language to improve which identifiers are considered valid completion candidates.

USE CASE 3

Build a new editor client using the provided documentation to add TabNine support to an unsupported editor.

What is it built with?

ShellYAMLJSON

How does it compare?

codota/tabninejnmetacode/agency-agents-zhxzhih/one-key-hidpi
Stars10,79410,84010,851
LanguageShellShellShell
Setup difficultyeasyeasymoderate
Complexity1/51/52/5
Audiencedevelopervibe codergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

The backend is closed source, only the config files can be modified or contributed via pull request.

License not mentioned in the explanation.

So what is it?

TabNine is an autocomplete tool for writing code, designed to work across many programming languages and editors. This particular repository holds the backend configuration for the project, not the main program itself. The backend code is closed source, so there are no source files here to read or build from. What the repository does contain are two configuration files that influence how the autocomplete suggestions work. The first, languages.yml, maps file extensions to programming languages so that identifiers from related files can be shared across them. For example, a variable defined in a C file might also be suggested when you are writing in a header file. The second, language_tokenization.json, controls how each language breaks up text into individual identifiers, which affects what the tool considers a valid completion candidate. Lisp identifiers can include dashes while Java identifiers cannot, for instance. The editors TabNine officially supports through first-party clients include VS Code, Sublime Text, Vim, and Atom, each maintained in a separate repository. A handful of community-built clients also exist for other editors such as Emacs and Eclipse, though those are third-party and not validated by the project maintainers. If you want to request a new feature or report a problem, the repository accepts GitHub issues. Pull requests are welcome for changes to the configuration files. The project also provides documentation on how to build a new editor client from scratch, so developers can add support for editors that do not yet have one. The backend itself runs on common desktop architectures including x86_64 and ARM on Linux, macOS, and Windows.

Copy-paste prompts

Prompt 1
I want to add a new file extension mapping to TabNine's languages.yml so that .myext files are treated as Python. How should I write that YAML entry based on the existing format?
Prompt 2
Help me write a pull request for codota/tabnine that adds correct tokenization rules for a new language in language_tokenization.json, following the existing Lisp and Java examples.
Prompt 3
I want to build a TabNine editor client for a custom editor. Based on the codota/tabnine documentation, what protocol and API calls do I need to implement to get autocomplete suggestions?
Prompt 4
Explain what the language_tokenization.json file in codota/tabnine controls and how changing the delimiter rules would affect what identifiers get suggested during autocomplete.

Frequently asked questions

What is tabnine?

Configuration repository for TabNine, an AI code autocomplete tool. The actual engine is closed source, this repo only holds language mapping and tokenization config files.

What language is tabnine written in?

Mainly Shell. The stack also includes Shell, YAML, JSON.

What license does tabnine use?

License not mentioned in the explanation.

How hard is tabnine to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is tabnine for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.