# Add Your Own Skill

> Install a skill you wrote — from a public or private Git repository or a Python package — into one skill set in a few clicks.

Source: https://docs.thalovant.com/manage/add-your-own-skill/

---
You can run your own skills next to the ones from the Skill Store. Give Thalovant the address of your code repository or the name of your published Python package, then choose the skill set that should run it.

If you haven't written a skill yet, start with the [Pocket Quiz tutorial](/developers/skillkit-tutorial/). It takes you from an empty folder to a tested skill in English and French.

This is for running a skill you wrote on your own hubs. Start at Skills → Skill Store → **Manage custom skills**, or **Add custom skill**. You're done when your skill shows as installed, the skill set is healthy, and the hub answers.

## What Your Skill Needs First

Confirm:

- your skill installs with `pip`, and its tests and [package checks](/developers/writing-a-skill/#check-what-you-built) pass;
- its code is in a Git repository the hub can read, or its package is published to a package index the hub can use;
- the skill set (and hub) you want it on already exists;
- private skills need a workspace plan that includes private skill sets.

A folder on your computer isn't an install source for the hub. For the tutorial, put the completed project in your own Git repository and keep the exact commit or tag that you tested. A tag is a name you give a saved version, such as `v0.1.0`.

Every hub using the selected skill set receives this skill. Use a separate test skill set when trying your first version.

## Add the Skill

1. Open **Skills** and select the skill set that should run your skill.
2. Open the **Skill Store** tab and choose **Manage custom skills** or **Add custom skill**.
3. Fill in **Skill id** and **Display name**. For the tutorial, use `thalovant-skill-pocket-quiz` and `Pocket Quiz`.
4. Open **Source** and paste your repository URL or package name. For Git, enter your tested tag or commit in **Branch, tag, or version**. For a Python package, enter the tested **Version**.
5. For a **private repository**, add a read-only access token in the Git access fields — it's stored securely, used only to install, and never shown again.
6. Choose **Create and install**. Open **Installed** and follow the row until it shows **installed**. Installation normally applies while the runtime keeps running.
7. Ask your hub one of the skill's example phrases. For the tutorial, say “start pocket quiz,” then answer its question.

Custom skills stay private to your workspace. They install into the one skill set you chose and use your existing plan limits — there's no separate subscription.

## Update Your Skill

First test the changed code and publish a new Git tag or Python package version. Pushing code alone doesn't update a pinned installation.

1. Open **Installed** for the skill set you want to update.
2. Open the skill's actions menu and choose **Edit custom skill**.
3. Open **Source**, enter the new tag, commit, or package version, and choose **Save changes**.
4. Follow the install status, then ask the hub a question that exercises your change. Repeat for any other skill set you want to update.

Updates normally apply while the runtime keeps running. Wait for the installed
status and test the answer; saving the form alone doesn't prove the new code is
ready.

## If Something Fails

- Read the error on the skill row. Check the source address, requested version, and package dependencies.
- Fix the code, test it, publish a new version, and update the source as above.
- A private-repository install that can't authenticate reports it plainly: check the Git access token on the skill set.

## Your Skill Is Ready When

- the skill shows **installed** in the skill set;
- the skill set reports healthy;
- your hub answers to the skill's intents;
- the answer matches the version you tested, including its supported languages.

## Next Step

See [Writing a Skill](/developers/writing-a-skill/) when you want to add more behavior, and [Skills](/concepts/skill-sets/) for how skill sets share skills across hubs. To distribute a built wheel through the catalog, see [Publish A Version Of Your Skill](/manage/add-a-skill-to-a-hub/#publish-a-version-of-your-skill).
