---
source: https://carbone.io/documentation/developer/ai/skills.html
title: "Carbone Skill — Carbone Templating Syntax Reference for Claude and ChatGPT"
description: "The official Carbone skill gives Claude and ChatGPT accurate knowledge of Carbone tags, formatters, conditions, loops, :set patterns, and template best practices. Built on the open Agent Skills standard."
generated_at: "2026-07-13"
---

# Carbone Skill

Accurate Carbone tag syntax, formatters, and best practices for AI assistants

## Overview

A Carbone Skill is a knowledge file that teaches AI assistants the Carbone templating syntax — so they can design valid templates accurately, without trial and error.

**What the Skill covers:**

-   Tag syntax for fields, nested objects, and arrays
-   Formatters: date, number, string, currency, and chaining formatters
-   Conditional display: show or hide content based on data values
-   Loops: iterating over arrays with automatic section repetition
-   Variable patterns for computed values
-   HTML and Markdown template rendering
-   Best practices and a validation checklist before rendering

**Compatible with:** Claude, ChatGPT, Cursor, Copilot, Gemini, Grok, and all platforms supporting the [open Agent Skills standard](https://agentskills.io/).

## Installation

Download carbone.skill, then follow the steps for your assistant below.

[**Download carbone.skill**](https://github.com/carboneio/carbone-skill/releases/latest/download/carbone.skill)  ·  [View source on GitHub](https://github.com/carboneio/carbone-skill)

### ChatGPT

1.  Click your profile icon and select **Skills** (or go to [chatgpt.com/skills](https://chatgpt.com/skills))
2.  Click **New skill** → **Upload from your computer**
3.  Select [`carbone.skill`](https://github.com/carboneio/carbone-skill/releases/latest/download/carbone.skill)

The skill appears under **Installed** and is active immediately.

### Claude (Desktop & claude.ai)

First, open **Settings → Capabilities** and enable **Code execution and file creation**, since skills will not run without it.

Then upload the [skill](https://github.com/carboneio/carbone-skill/releases/latest/download/carbone.skill):

1.  Click the **Customize** button in the left navigation bar and select **Skills**
2.  Click the **+** button, then **Create skill**
3.  Choose **Upload a skill** and select `carbone.skill`

The skill appears in your list, toggled on for all conversations.

### Claude Code

Install via the plugin marketplace:

```bash
/plugin marketplace add carboneio/carbone-skill
/plugin install carbone@carbone-skill
```

Or install manually by extracting the [skill](https://github.com/carboneio/carbone-skill/releases/latest/download/carbone.skill) into your personal skills folder:

```bash
unzip carbone.skill -d ~/.claude/skills/carbone
```

To limit it to a single project instead:

```bash
unzip carbone.skill -d .claude/skills/carbone
```

### Cursor

Extract the [skill](https://github.com/carboneio/carbone-skill/releases/latest/download/carbone.skill) into your personal skills folder so it is available across all your projects:

```bash
unzip carbone.skill -d ~/.cursor/skills/carbone
```

To limit it to a single project instead, extract it into the project directory:

```bash
unzip carbone.skill -d .cursor/skills/carbone
```

### Copilot

Extract the [skill](https://github.com/carboneio/carbone-skill/releases/latest/download/carbone.skill) into your personal skills folder so it is available across all your projects in VS Code (GitHub Copilot):

```bash
unzip carbone.skill -d ~/.copilot/skills/carbone
```

To limit it to a single project instead, extract it into the project directory:

```bash
unzip carbone.skill -d .github/skills/carbone
```

### Gemini

Install with the [Gemini CLI](https://geminicli.com/docs/cli/skills/) directly from GitHub:

```bash
gemini skills install https://github.com/carboneio/carbone-skill.git
```

To limit it to the current project only, add `--scope workspace`:

```bash
gemini skills install https://github.com/carboneio/carbone-skill.git --scope workspace
```

Or install manually by extracting the downloaded [skill](https://github.com/carboneio/carbone-skill/releases/latest/download/carbone.skill) into your skills folder:

```bash
unzip carbone.skill -d ~/.gemini/skills/carbone
```

For a single project instead, extract it into `.gemini/skills/carbone`.

### OpenAI Codex

Extract the [skill](https://github.com/carboneio/carbone-skill/releases/latest/download/carbone.skill) into your personal skills folder so it is available across all your projects:

```bash
unzip carbone.skill -d ~/.agents/skills/carbone
```

To limit it to a single project instead, extract it into the project directory. Codex scans `.agents/skills` from your working directory up to the repository root:

```bash
unzip carbone.skill -d .agents/skills/carbone
```

### Vibe

Extract the [skill](https://github.com/carboneio/carbone-skill/releases/latest/download/carbone.skill) into your personal skills folder so it is available across all your projects in the [Vibe CLI](https://docs.mistral.ai/vibe/code/cli/skills) (by Mistral):

```bash
unzip carbone.skill -d ~/.vibe/skills/carbone
```

To limit it to a single project instead, extract it into the project directory:

```bash
unzip carbone.skill -d .vibe/skills/carbone
```

### Grok

Extract the [skill](https://github.com/carboneio/carbone-skill/releases/latest/download/carbone.skill) into your personal skills folder so it is available across all your projects:

```bash
unzip carbone.skill -d ~/.grok/skills/carbone
```

To limit it to a single project instead, extract it into the project directory:

```bash
unzip carbone.skill -d .grok/skills/carbone
```

Grok discovers skills from `./.grok/skills/` (walked up to the repo root), `~/.grok/skills/`, any enabled plugin's `skills/` directory, and any extra paths listed under `[skills] paths` in `~/.grok/config.toml`.

Grok is also fully compatible with Claude Code, with zero configuration needed: it automatically reads Claude Code marketplaces, plugins, skills, MCPs, agents, hooks, and instruction files (`CLAUDE.md`, `Claude.md`, `CLAUDE.local.md`, and `.claude/rules/`) alongside `.grok/`. A skill already installed for Claude Code works in Grok with no extra setup.

### Llama

Llama is a model, not an agent, so it has no skills system of its own — a skill is read by the agent or app around the model. For a direct Llama API integration, give it the Carbone syntax by prepending the [skill's](https://github.com/carboneio/carbone-skill/releases/latest/download/carbone.skill) `SKILL.md` to your system prompt. If you run Llama inside an agent that implements the open [Agent Skills standard](https://agentskills.io/), install the skill the way that agent documents.

### DeepSeek

DeepSeek works the same way: there is no built-in skills system. For a direct API integration, prepend the [skill's](https://github.com/carboneio/carbone-skill/releases/latest/download/carbone.skill) `SKILL.md` to your system prompt so DeepSeek always has the Carbone syntax. If you drive DeepSeek through an agent that implements the open [Agent Skills standard](https://agentskills.io/), install the skill as that agent documents.

## Using Skill + MCP Together

With both installed, you can go from data to a finished document in a single conversation.

**Skill vs MCP in one sentence:** The Skill gives the AI knowledge of Carbone syntax; the [MCP server](/documentation/developer/ai/mcp.md) gives it actions (generate, convert, manage templates). Used together, the AI can design a correct template and render it in the same conversation.

**Prompt to AI:**

```text
I have a customer record in data.json. Create an invoice template for it, then render it as PDF.
```

**What happens:**

1.  The AI uses the **Skill** to design a valid Carbone template with correct syntax
2.  The AI uses the MCP `upload_template` tool to store the template
3.  The AI uses the MCP `render_document` tool to generate the PDF

Without the Skill, the AI would need several render-and-fix cycles to get the syntax right. With it, the first render typically works.

**Recommended workflow:**

1.  Share a sample JSON with the AI so it understands your data structure
2.  Ask the AI to draft the template — the Skill handles syntax correctness
3.  Review the template before rendering
4.  Ask the AI to render with a test record and confirm the output looks right

## Keeping the Skill Up to Date

Re-download and reinstall `carbone.skill` when Carbone ships major updates to stay in sync with new formatters, options, and syntax changes. Watch the [carboneio/carbone-skill](https://github.com/carboneio/carbone-skill) repository on GitHub to be notified of new releases.

## See also

-   [Carbone MCP server](/documentation/developer/ai/mcp.md) — let your AI assistant render and convert documents directly
-   [AI integrations](/integration/index.md#ai) — dedicated pages for [Claude](/integration/claude.md), [ChatGPT](/integration/chatgpt.md), [Cursor](/integration/cursor.md), [Grok](/integration/grok.md), [Google Gemini](/integration/gemini.md), [Vibe by Mistral](/integration/vibe.md), and [DeepSeek](/integration/deepseek.md)

## Related topics

- [MCP](/documentation/developer/ai/mcp.md)
