> For the complete documentation index, see [llms.txt](https://docs.eesel.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.eesel.ai/skills/custom-skills.md).

# Custom Skills

If the job you want doing isn't one of the [built-in skills](/skills/skills.md), you can have your teammate build it.

A custom skill is a repeatable piece of work you've defined yourself. Once it exists it behaves like any other skill: run it on demand, put it on a schedule, or hang it off a trigger.

## Building one

You don't write a config file. You describe what you want in chat and your agent builds it.

{% stepper %}
{% step %}

### Ask for it

Tell your agent what the skill should do, in as much detail as you can. What it should look at, what steps it should follow, what it should produce, and who it's for.

> "Let's build a skill to create a marketing report as an HTML file with tabs for all our projects, pulling from our customer conversations and Slack to keep track of goals."

<img src="/files/sjfRBdF2Zc4ApKtiVC2J" alt="The Build a skill page with the skill builder chat open, ready to be told what to build" width="563">
{% endstep %}

{% step %}

### Answer its questions

It plans the skill and comes back on anything it needs: which sources to read, what the output should look like, whether it needs to reach an external system.

<img src="/files/RUyt26ABUjtszb4wOTSX" alt="The skill builder coming back with two questions: what the report tabs should be, and which goals to track per project" width="563">
{% endstep %}

{% step %}

### Let it build and check

It lays out the plan (which conversations to read, how the tabs are structured, which goals each one tracks), writes the skill, tests it, and saves it to your workspace. If it needs helper files, like the HTML template for the report, those get bundled with it.
{% endstep %}

{% step %}

### Enable it and run it

Add it to whichever agents should have it, then run it. The output lands wherever you pointed it, and anything saved as a file stays in your dashboard for the next run to build on. If it isn't quite right, say so in chat and your agent edits it.

<img src="/files/pnERtd1LYUjV3WZNFipU" alt="The skill&#x27;s output: a tabbed marketing intelligence report saved as a file in the dashboard, with per-project goal health and customer sentiment" width="563">
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**You need edit access.** Building or changing a custom skill requires the Editor or Owner role in your workspace. See [Account](/account/account.md).
{% endhint %}

## What a skill is made of

Worth knowing, even though you won't usually touch it directly.

A skill is a markdown document. It has a name, an icon and a description, which is what you see on the Skills page, plus the instructions that tell your agent how to do the job. Those instructions are the skill: the steps, the rules, what to do about edge cases, what the output should look like.

Alongside it a skill can carry **bundle files**: helper scripts, reference material, templates, anything the job needs. Your agent uploads these when it builds the skill.

Skills also have their **own memory**. A skill can save instructions that apply only when it runs, so a writing-style guide for your blog posts doesn't have to live in the instructions your support replies read too.

## Reaching your own systems

A custom skill can call APIs eesel doesn't integrate with directly, which is usually the point of building one. Your internal tool, your data warehouse, a niche vendor.

That works through an allowlist. You tell eesel which domains a skill may reach, and which headers it needs to send. Two things worth knowing:

* **You never paste secrets into chat.** Header values are set in your dashboard settings, not in the conversation, and they're never shown to the model. Your agent knows a header exists and what it's called, not what it contains.
* **Only allowlisted domains work.** A skill can't reach somewhere you haven't approved, so a mistake in a skill can't turn into a request to somewhere unexpected.

See [Network Access](/apis-and-developer-resources/network-access.md) for setting this up.

<figure><img src="/files/kfYtDqAp562LJ4zAdDrm" alt="The Network Access settings with two allowlisted domains, and the note that credentials are stored as headers and never shown to the AI"><figcaption><p>The allowlist in Settings. Note the line at the top: credentials are stored as headers and never shown to the AI.</p></figcaption></figure>

## Examples worth building

The built-in skills cover common support and content jobs. Custom skills are for the work that's specific to how *your* company runs:

| Example                         | What it does                                                                                                                              |
| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| **Reporting your way**          | Pulls the same numbers from the same places, writes the report in the shape your team expects, posts it to the same channel on a schedule |
| **Cross-system checks**         | Compares what your helpdesk says against what your billing system says, and flags the mismatches                                          |
| **Competitor and market watch** | Reads the week's conversations for competitor mentions, pulls the quotes, and summarises what customers actually said                     |
| **Onboarding or QA checklists** | Any process your team follows off a document. If it's written down as steps, it can be a skill                                            |
| **Escalation triage**           | Weighs what's open against your priority rules and tells the right people what needs attention first                                      |
| **Pulling from your own tools** | Anything where the data lives in a system eesel doesn't integrate with. If it has an API, a skill can read it                             |

## Related

* [Skills](/skills/skills.md) for the built-in skills and how skills run
* [Automations and Schedules](/automations-and-schedules/automations-and-schedules.md) to run a custom skill on a schedule or a trigger
* [Network Access](/apis-and-developer-resources/network-access.md) to let a skill reach your own systems


---

# 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.eesel.ai/skills/custom-skills.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.
