Agent Skills
Agent Skills
Agent Skills allow you to extend Tabnine CLI with specialized expertise, procedural workflows, and task-specific resources. A "skill" is a self-contained directory that packages instructions and assets into a discoverable capability.
Skills
What are skills?
A skill is a reusable capability that the Tabnine Agent or a subagent can call when solving a task.
Examples of skills include summarization, testing, validation, and prompt composition or command composition:
Summarization:
Summarize this file for a code review.
Testing:
Generate unit tests for this function.
Validation:
Extract configuration values and validate them against a schema.
Command Composition:
Convert a natural language description into a CLI command.
Skills can be combined: a subagent might chain several skills together to complete a higher-level workflow.
How skills are invoked
In typical usage, skills are invoked implicitly:
You describe what you want done in natural language.
The agent selects one or more skills that match the request.
The skills operate on your project files, external content, or prior conversation.
Extensions can register new skills, and those skills become available wherever the agent runs: in your terminal, inside supported IDEs, or as part of automated workflows.
Overview
Unlike general context files (such as TABNINE.md), which provide persistent workspace-wide background, skills represent on-demand expertise for specific types of tasks. This lets Tabnine CLI keep a large library of specialized capabilities – like security auditing, cloud deployments, or codebase migrations – without loading all of that detail all the time.
When your request matches a skill's description, Tabnine CLI can choose to use that skill, load its instructions, and apply them to your task.
Key Benefits
Shared Expertise: Package complex workflows (like a specific team's PR review process) into a folder that anyone can use.
Repeatable Workflows: Ensure complex multi-step tasks are performed consistently by providing a procedural framework.
Resource Bundling: Include scripts, templates, or example data alongside instructions so Tabnine has everything it needs.
Progressive Disclosure: Only skill metadata (name and description) is loaded initially. Detailed instructions and resources are only disclosed when Tabnine explicitly activates the skill, saving context tokens.
Skill Discovery Tiers
Tabnine CLI discovers skills from three primary locations:
Workspace Skills -- Located in
.tabnine/skills. Workspace skills are typically committed to version control and shared with the team.User Skills -- Located in
~/.tabnine/skills. These are personal skills available across all your workspaces.Extension Skills -- Skills bundled within installed extensions.
Precedence: If multiple skills share the same name, higher-precedence locations override lower ones: Workspace > User > Extension.
Managing Skills
In an Interactive Session
Use the /skills slash command to view and manage available expertise:
/skills list(default): Shows all discovered skills and their status./skills link <path>: Links agent skills from a local directory via symlink./skills disable <name>: Prevents a specific skill from being used./skills enable <name>: Re-enables a disabled skill./skills reload: Refreshes the list of discovered skills from all tiers.
From the Terminal
The tabnine skills command provides management utilities:
Creating Skills
You can define skills either with Tabnine's help or manually, depending on how much control you want.
Option 1: Use a helper skill (recommended)
If your Tabnine CLI environment includes a helper skill such as skill-creator, you can ask Tabnine to scaffold a new skill for you:
Start an interactive Tabnine CLI session.
Describe the skill you want. For example:
Create a new skill called "code-reviewer" that reviews pull requests and local changes.Tabnine will:
Create a new folder for the skill (for example,
code-reviewer/).Add a
SKILL.mdfile with the required metadata (name,description) and starter instructions.Optionally add common subfolders like
scripts/,references/, andassets/.
You can then edit SKILL.md and add any supporting files you want Tabnine to
use when this skill is active.
If you don't have a helper skill available yet, you can still create skills manually as described below.
Option 2: Create a skill manually
To define a skill by hand:
Create a folder for your skill, for example:
my-new-skill/Add a
SKILL.mdfile inside that folder. At minimum it should include:--- name: my-new-skill description: > Short description of what this skill does and when Tabnine should use it. --- # My New Skill Explain how Tabnine should approach this kind of task. Include any steps, checklists, or rules that matter.(Optional) Add subfolders for supporting resources:
my-new-skill/ ├── SKILL.md ├── scripts/ # shell scripts, helpers, etc. ├── references/ # docs, guides, specs └── assets/ # templates, sample filesPlace the skill folder in one of the discovery locations:
Workspace scope:
.tabnine/skills/in your project.User scope:
~/.tabnine/skills/in your home directory.
Reload skills:
In an interactive session:
/skills reloadOr from the terminal:
tabnine skills list(which will trigger discovery)
Once discovered, the new skill will appear in /skills list and can be enabled or disabled like any other skill.
Example: code-reviewer skill
code-reviewer skillHere is a concrete example of a SKILL.md for a code-reviewer skill that
works both with local changes and remote pull requests:
Last updated
Was this helpful?
