Skip to content

tabnine/skills

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tabnine Skills

Agent skills, tools, and integrations for AI coding agents — enabling semantic code search, coding guidelines enforcement, and Context Engine knowledge graph access across Claude Code, Cursor, Gemini CLI, and Tabnine agent.

Plugins

This repo ships two independent plugins with support for four agents. Install what you need:

Plugin What it does Claude Code Cursor Gemini CLI Tabnine Agent
tabnine Semantic code search across remote repos, coding guidelines claude plugin install tabnine Marketplace gemini skills install tabnine skills install
ctx Query the Context Engine knowledge graph — semantic + lexical search, graph adjacency, CVE triage with ready-to-apply fix diffs claude plugin install ctx@tabnine Marketplace gemini skills install tabnine skills install

Quick Start

Claude Code

# 1. Add the marketplace (one time)
claude plugin marketplace add tabnine/skills

# 2. Install plugins
claude plugin install tabnine       # codebase search + coding guidelines
claude plugin install ctx@tabnine   # Context Engine CLI

Cursor

Install via the Cursor plugin marketplace — both tabnine and ctx appear as separate plugins.

Manual install:

# Install Tabnine plugin into current project
bash <(curl -fsSL https://raw.githubusercontent.com/tabnine/skills/main/scripts/install-cursor-plugin.sh)

# Install globally
bash <(curl -fsSL https://raw.githubusercontent.com/tabnine/skills/main/scripts/install-cursor-plugin.sh) --global

Gemini CLI

Each skill is installed independently:

# Codebase search
gemini skills install https://github.com/tabnine/skills.git --path plugins/gemini/tabnine/codebase-search

# Coding guidelines
gemini skills install https://github.com/tabnine/skills.git --path plugins/gemini/tabnine/coding-guidelines

# Context Engine CLI
gemini skills install https://github.com/tabnine/skills.git --path plugins/gemini/ctx

Tabnine Agent

# Context Engine CLI
tabnine skills install https://github.com/tabnine/skills.git --path plugins/tabnine/ctx

# Codebase search
tabnine skills install https://github.com/tabnine/skills.git --path plugins/tabnine/codebase-search

# Coding guidelines
tabnine skills install https://github.com/tabnine/skills.git --path plugins/tabnine/coding-guidelines

Prerequisites

Tabnine plugin (codebase search + coding guidelines)

export TABNINE_HOST="your-tabnine-instance.tabnine.com"
export TABNINE_TOKEN="your-personal-access-token"

Obtaining a token: Open https://<TABNINE_HOST> > Settings > Access Tokens > Generate token.

ctx plugin (Context Engine CLI)

The ctx plugin requires the ctx-cli binary. The skill teaches your agent how to download the newest CLI-scoped release, or install manually:

RELEASES=$(curl -fsSL --max-time 8 'https://api.github.com/repos/tabnine/skills/releases?per_page=100')
TAG=$(printf '%s\n' "$RELEASES" | tr '{' '\n' | sed -n 's/.*"tag_name"[[:space:]]*:[[:space:]]*"\(ctx-cli-v[0-9][^"]*\)".*/\1/p' | head -1)
[ -n "$TAG" ] || TAG=$(printf '%s\n' "$RELEASES" | tr '{' '\n' | sed -n 's/.*"tag_name"[[:space:]]*:[[:space:]]*"\(v[0-9][^"]*\)".*/\1/p' | head -1)
test -n "$TAG" || { echo "No ctx-cli release found"; exit 1; }
curl -fsSL "https://github.com/tabnine/skills/releases/download/$TAG/ctx-cli-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/aarch64/arm64/;s/x86_64/x64/')" -o /usr/local/bin/ctx-cli && chmod +x /usr/local/bin/ctx-cli

Then configure the API URL and credentials. ctx-cli reads these from environment variables and/or a config file at ~/.ctx/config.yaml. Env vars override config when both are set.

ctx-native API key (ctx_...) — env-only works:

export CTX_API_URL="https://ctx.tabnine.com"
export CTX_API_KEY="ctx_..."

Tabnine PAT (t9u_...) — requires config.yaml for the x-auth-type header:

The token itself can come from env (TABNINE_TOKEN or CTX_TOKEN) or from config, but custom headers can only be set in config — ctx-cli has no env var that maps to headers. So Tabnine PATs need at least one ctx-cli config set-header call:

ctx-cli config init                                  # interactive: prompts for url + key
ctx-cli config set api_url https://ctx.tabnine.com   # or set fields individually
ctx-cli config set api_key t9u_...
ctx-cli config set-header x-auth-type tabnine        # required for Tabnine PATs

Env vars ctx-cli recognizes (checked in this order for the bearer token): CTX_API_KEYTABNINE_TOKENCTX_TOKEN. Plus CTX_API_URL for the URL. Other useful commands: ctx-cli config list (show profiles with masked secrets), ctx-cli config use-profile <name> (switch active profile), ctx-cli config remove-header <key> (remove a stored header).

Tabnine Plugin

Skills

Skill Description
codebase-search Search, explore, and investigate remote repositories using Tabnine's Context Engine
coding-guidelines Fetch and apply team coding standards when reviewing or writing code

MCP Tools

All tools are served by the tabnine-context MCP server.

Tool Description
remote_repositories_list List all indexed repositories
remote_codebase_search Semantic + lexical code search
remote_symbol_content Find symbols with full source code
remote_symbols_search Search for functions/classes/enums
remote_file_content Fetch file contents from remote repos
remote_files_search Search files by path/name
remote_repository_folder_tree Browse repo directory structure
remote_search_assets Search OpenAPI specs and service summaries
remote_openapi_spec_query Query OpenAPI specs with jq expressions
remote_get_asset Get full asset content
remote_grep_asset Grep through asset content with regex

Investigator Agent

A read-only agent that performs deep investigation of remote repositories. It systematically explores code using all available MCP tools, follows references across repositories, and returns structured findings. Available in both Claude Code and Cursor.

/investigate How does the authentication flow work?

ctx Plugin

What it enables

The ctx skill teaches your agent to use the Context Engine CLI (ctx-cli) to search the knowledge graph and triage CVEs. Examples:

# Semantic search — find entities by natural-language query
ctx-cli mcp call find_entities -p query="authentication service" -p limit=5 -o json

# Lexical search — enumerate entities by type
ctx-cli mcp call query_entities -p entityType=Service -p limit=50 -o json

# Graph adjacency — what is this entity connected to?
ctx-cli mcp call traverse_edges -p entityId=<id> -p direction=out -o json

# CVE inbox — each row carries the suggested fix in data.recommendedAction
ctx-cli mcp call get_cve_resolution_status -p status=fix_pending_review -o json

# Discover available tools
ctx-cli mcp list

The two sub-skills cover the verified flows:

  • codebase-search.md — semantic + lexical search across the graph, plus adjacency traversal from a known entity.
  • security.md — CVE triage via get_cve_resolution_status, with ready-to-apply diffs embedded in each entity.

How it works

The skill teaches the agent when and how to call ctx-cli. The CLI dynamically discovers tools from the Context Engine API — no hardcoded commands. The agent shells out to ctx-cli, parses JSON output, and presents results.

See the CLI spec for full design details.

Project Structure

tabnine-skills/
├── .claude-plugin/
│   └── marketplace.json              # Claude marketplace (tabnine + ctx plugins)
├── .cursor-plugin/
│   └── marketplace.json              # Cursor marketplace (tabnine + ctx plugins)
├── plugins/
│   ├── claude/
│   │   ├── tabnine/                  # Tabnine plugin (codebase search + guidelines)
│   │   │   ├── .claude-plugin/plugin.json
│   │   │   ├── .mcp.json
│   │   │   ├── agents/investigator.md
│   │   │   ├── commands/investigate.md
│   │   │   ├── skills/
│   │   │   │   ├── codebase-search/SKILL.md
│   │   │   │   └── coding-guidelines/SKILL.md
│   │   │   └── README.md
│   │   └── ctx/                      # ctx plugin (Context Engine CLI)
│   │       ├── .claude-plugin/plugin.json
│   │       └── skills/ctx/SKILL.md
│   ├── cursor/
│   │   ├── tabnine/                  # Tabnine plugin
│   │   │   ├── .cursor-plugin/plugin.json
│   │   │   ├── .mcp.json
│   │   │   ├── agents/investigator.md
│   │   │   ├── rules/use-tabnine-context.mdc
│   │   │   ├── skills/
│   │   │   │   ├── codebase-search/SKILL.md
│   │   │   │   └── coding-guidelines/SKILL.md
│   │   │   └── README.md
│   │   └── ctx/                      # ctx plugin
│   │       ├── .cursor-plugin/plugin.json
│   │       ├── rules/ctx.mdc
│   │       └── skills/ctx/SKILL.md
│   ├── gemini/                       # Gemini CLI skills
│   │   ├── tabnine/
│   │   │   ├── codebase-search/SKILL.md
│   │   │   └── coding-guidelines/SKILL.md
│   │   └── ctx/SKILL.md
│   └── tabnine/                      # Tabnine agent skills
│       ├── ctx/SKILL.md
│       ├── codebase-search/SKILL.md
│       └── coding-guidelines/SKILL.md
└── scripts/
    ├── validate-cursor-plugin.mjs
    └── install-cursor-plugin.sh

About

Tabnine skills

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors