> For the complete documentation index, see [llms.txt](https://docs.tessl.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tessl.io/distribute/promote-or-claim-a-skill-you-have-created.md).

# Promote or claim a skill you have created

Have you authored a skill in GitHub and want to promote it using Tessl? Tessl allows you to take a skill from a local repository or GitHub repository, and generate the plugin.json, which is essential for Tessl plugins and Skills. Once imported, you will publish the plugin to make it available, publicly or privately, to your teams. The following section discusses organization of your skills and how to publish them. Additionally if you have authored a plugin on GitHub that appears in Tessl, there is a section on [claiming that skill in Tessl](#claim-a-tessl-skill).

## Prerequisites

* Tessl [installed](/introduction-to-tessl/installation.md)
* Tessl logged in
* Skill code available locally
* Access to a [workspace](/reference/workspaces.md)

## Mapping and importing your skills into Tessl plugins

If you've authored a number of skills and documents to help your agents, you can logically group the related files together and create individual skill plugins in Tessl. For example:

* If you're developing a "data migration" skill, place all the files related to that skill and documentation in a single folder or repository. This would be a single plugin.

<figure><img src="/files/UJb8ncBGSktk40nC9pRY" alt="" width="375"><figcaption></figcaption></figure>

* Similarly if you've built a skill for "building a front end", that might contain best practices and design skills you would group them together into its own plugin, create the plugin.json, by running the import command, then lint, review, eval and publish the skill to your workplace.

<div align="center"><img src="/files/cZSwQuHu4IMb9FTPJNsc" alt=""></div>

### Anti-patterns

To avoid performance issues and confusion of your agents, avoid throwing in the kitchen sink! Make your skill purpose built, providing the information for specific tasks.<br>

<figure><img src="/files/8WJH5Znn06WGMdQnCghv" alt="" width="375"><figcaption></figcaption></figure>

## Clone the Repository

Clone your repository locally.

## Create a .tessl-plugin/plugin.json

* Create a [.tessl-plugin/plugin.json](/reference/configuration.md#plugin-configuration) (metadata describing it) by running the following command, with your workspace and folder location values:<br>

  ```
  tessl skill import ./<directory with SKILL.md> --workspace <myworkspace>
  ```
* You can create an eval file in `/eval` or request one through the web interface. More on this coming soon!

## Improve your skill with Lint, Review, and Evaluate your Skill

### Review your Skill against best practices

Before publishing, validate your skill structure and contents:

```sh
tessl skill lint ./my-skill
```

This command checks:

* `SKILL.md` format and structure
* Required frontmatter fields (name, description)
* Conformance to the Agent Skills specification
* Markdown validity

To optimize your skill, run the following:

```sh
tessl skill review --optimize ./my-skill
```

Fix any errors before proceeding.

### Evaluate quality using Scenarios

Once you've built your skill the final step before publishing is to create scenarios your skill can be evaluated against. The following document illustrates how you would accomplish this:

* [Evaluate skill quality using scenarios](/improving-your-skills/evaluate-skill-quality-using-scenarios.md)

## Set up GitHub Action to publish to Tessl's Registry

The following steps introduce the [GitHub action](https://github.com/tesslio/setup-tessl) to your repository to publish your plugin automatically.

Using the GitHub action will automatically link your plugin to the repository, and all skills we previously indexed in the repository will be hidden and redirected to the plugins.\
\
See Tessl's [setup-tessl GitHub action](https://github.com/tesslio/setup-tessl) for additional options and information.

{% stepper %}
{% step %}
**Create your workflow**

Create your workflow file `.github/workflows/tessl-publish.yml`. [Here's an example action for auto-publishing](https://github.com/tesslio/setup-tessl?tab=readme-ov-file#publish-a-plugin-on-push).
{% endstep %}

{% step %}
**Create an API Key**

Log into [Tessl](https://tessl.io/registry) on web UI, then navigate to [API keys](https://tessl.io/account/api-keys). Create a new API key. Copy the value as it will only be shown once.

![](/files/v4AWhByPOpN0RqduSHd2)
{% endstep %}

{% step %}
**Add your API Key as a Repository Secret**

In GitHub, navigate to your repo **Settings**, select **Secrets and variables**, under actions find **New Repository Secret**. Provide the name: `TESSL_TOKEN` and the value is the Tessl API key you procured in the earlier step.
{% endstep %}

{% step %}
**Run your workflow**

Kick off your workflow by running the relevant trigger, or manually triggering from the UI if you enabled that in your workflow definition.
{% endstep %}
{% endstepper %}

## Claim a Tessl Skill

Found a skill in Tessl that is created/indexed from your Skill/GitHub repository of skills? You'll want to claim ownership and disable indexing by Tessl. To do this, you will:

* Recreate the skill in your workspace by importing it locally, update the workspace in `.tessl-plugin/plugin.json`.
* Use the [GitHub action to publish](https://github.com/tesslio/setup-tessl?tab=readme-ov-file#publish-a-plugin-on-push) , which will manage the Skill and ensure changes to the repo are reflected in your Tessl workspace and not reindexed by Tessl.

{% hint style="info" %}
If you accidentally use the CLI to publish a skill to your workspace, and the skill was already indexed by Tessl in the Tessl workspace, you would find two versions, in two different workspaces, when searching for that skill. You can [contact Tessl support](/support/giving-feedback.md) to claim your plugin and address the duplicate. Be sure to set up the GitHub action as part of this.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.tessl.io/distribute/promote-or-claim-a-skill-you-have-created.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
