---
schema_version: "1"
id: c8817de3e2afde7b04b9af0c93ef65f2fd5b1ce43e46e1938f89d845aa77d2fe
title: Customize Skills
collection: tableau
version: next
locale: en-us
portal_url: https://docs.salesforce.com/tableau/next/en-us/api/studio-dev-guide/customize-skills.md
canonical_url: https://help.tableau.com/v0.0/api/studio-dev-guide/en-us/customize-skills.html
source_site: help.tableau.com
content_type: documentation
content_hash: adec9394deac6814b55bd2747858fa1d9ccdaaabe8447cde896641ab5416c6bd
description: Developer documentation for Tableau Studio
---
# Customize Skills

  

#### On This Page

## Tableau Agent skills overview

A **skill** teaches the agent to do something reusable. You see a list of skills and choose one to use by selecting the `/` icon at the bottom of the chat window.

Tableau Agent comes loaded with a set of standard skills to do common basic tasks. To suit your needs, you can **customize** the skills your agent has by creating new ones or you can **override standard skills**.

Skills live in the `~/Documents/My Tableau Repository (Beta)/Tableau Agent/skills/` folder. As shown in the tree diagram below, custom skills and skill overrides can live at the root folder. The standard skills live in the `.vendored/overridable/` and `.vendored/protected` folders.

**Note** Changing vendored skills files themselves is not supported. Read on to understand how to customize overridable skills, but changing protected skills may disable Tableau Studio functionality, and changes to these files will heal themselves at the start of the next session.

```
~/Documents/My Tableau Repository (Beta)/
└── Tableau Agent/
    └── skills/
        ├── .vendored/                         # bundled standard skills — rebuilt each session; do not edit
        │   ├── overridable/                   # standard skills you may override
        │   │   ├── .markers/                  # one .sha256 per overridable skill
        │   │   ├── insights/
        │   │   │   └── SKILL.md
        │   │   └── tableau-desktop-authoring/
        │   │       └── SKILL.md
        │   └── protected/                     # core skills that cannot be overridden
        │       ├── author-extension/
        │       │   └── SKILL.md
        │       ├── skill-creator/
        │       │   └── SKILL.md
        │       ├── tableau-agent-debug/
        │       │   └── SKILL.md
        │       └── tableau-workbook-cli/
        │           └── SKILL.md
        ├── <my-skill-override-name>/           # your override skill — same name as the overridable skill
        │   └── SKILL.md
        └── <my-skill-name>/                    # your added custom skill
            └── SKILL.md
```

## Use `/skill-creator` and natural language

To create a skill in a Tableau Agent chat, type `/skill-creator <description of your skill>`.

If you want help spelling out the details, try plan mode (the checklist icon at the bottom of the agent chat box). Describe the basics and ask the agent to flesh out the plan for the skill. When you are finished, switch out of plan mode and tell the agent to create the skill.

After you have added a skill, run the `/reload-skills` skill and your new skill will appear in the list in the agent. To view the new skill’s file, look in `~/Documents/My Tableau Repository (Beta)/Tableau Agent/skills/`.

## Import an existing or shared skill

If you have skills already created that you want to reuse or share, they can be placed in the Tableau Agent/skills folder at `~/Documents/My Tableau Repository (Beta)/Tableau Agent/skills/`. Once your imported skills are there, run the `/reload-skills` skill and they will show up in your skills list in the agent.

## Override a standard skill

You can override a standard skill by chatting with Tableau Agent (plan mode recommended first) or by manually copying and editing the standard skill. Skill overrides and custom skill folders you add both live at `~/Documents/My Tableau Repository (Beta)/Tableau Agent/skills/`.

## Manage your skills

You can view the skills you have available, turn them on or off, or delete them. To find the controls for these actions, select the three-dot menu at the top of the agent window, select **Settings**, and select the **Skills** tab.

## Author a skill by hand

### How the agent loads a skill

The agent reads a skill in layers, so put content where it earns its place:

1. **Frontmatter** (`name` + `description`) is always in context. This is the trigger — keep it specific and cheap.
2. The **`SKILL.md` body** loads only once the skill fires. Keep it to the steps and rules the agent needs every time — aim for well under ~200 lines.
3. **Supporting files** (`references/`, `scripts/`, `assets/`) load only when the body points the agent at them. This is where long specs, examples, schemas, or helper scripts go, so they never cost context until they’re actually needed.

### How to write a skill

If you prefer to write the files yourself, use the same layout and rules `/skill-creator` applies.

#### 1\. Capture intent

Pin down the _one_ capability the skill covers, when it should trigger, and what a good result looks like. If you’ve already described the workflow to the agent in chat, mine that; ask only what you can’t infer.

#### 2\. Write the frontmatter

Create `skills/<skill-name>/SKILL.md`. The frontmatter is what makes the skill fire, so write it for triggering:

```
---
name: <kebab-case-name>
description: <lead with WHEN to use it and the trigger phrases a user would actually say>
---
```

- `name` **must** equal the directory name and be kebab-case.
- The `description` should name the situations and the words a user would actually type (“Use when the user asks to …”). Lean slightly eager — a skill that never triggers is worthless — but don’t claim capabilities it lacks. Vague descriptions never fire.

#### 3\. Write a tight body

Follow the frontmatter with a short, focused body — the steps and rules the agent should apply every time:

```
# <Human title>

<What the skill is for, then the concrete steps or rules the agent follows.>
```

- Prefer imperative instructions (“Read the manifest, then …”) over prose.
- Explain the _why_ behind any non-obvious rule so the agent applies it sensibly instead of blindly.
- If the body sprawls into several capabilities, split it into separate skills. If one section is long reference material, move it into `references/` and link to it from the body.
- If the skill needs temporary scratch space at runtime, have it write under its own namespaced subdirectory rather than a shared scratch root, so two skills can’t clobber each other’s working files.

#### 4\. Try it

Try the skill the way a user would. Type a few requests that should use it, and a few that shouldn’t. Watch for these common problems:

- The skill never runs because the description is vague, or doesn’t use the words a user would actually type.
- The skill runs when it shouldn’t because the description is too broad, or claims more than the skill can do.
- The agent starts the skill but gets stuck — a step is missing, or the body assumes something it never explains.
- The body is too long, or tries to cover several jobs at once. If this is the case, move the extra material into a `references/` folder next to `SKILL.md`. That’s where specs, examples, schemas, and other background belong. Point to those files from the body (“Read `references/schema.md`, then …”) instead of pasting them in. The agent only opens a reference file when the skill tells it to, so the skill stays short and cheap until that detail is actually needed.

#### 5\. Refine

After you try the skill, make it more general than the one prompt you tested. Cut anything the agent already knows.

#### 6\. Load it in Tableau Studio

After you add your skill, run `/reload-skills` so the running agent picks it up without a restart. Then prompt the agent with a request that should trigger the skill and confirm it fires.

For an example of a finished `SKILL.md`, see the ones in the `~/Documents/My Tableau Repository (Beta)/Tableau Agent/skills/.vendored/overridable/` folder.

  

CONFIDENTIAL — PRE-RELEASE CONFIDENTIAL — PRE-RELEASE CONFIDENTIAL — PRE-RELEASE CONFIDENTIAL — PRE-RELEASE CONFIDENTIAL — PRE-RELEASE CONFIDENTIAL — PRE-RELEASE