# Creating plugins

This section covers how to create custom Tessl packages (plugins) containing skills and rules tailored to your team's specific needs.

## When to create plugins

Create custom plugins when you want to:

* **Codify team standards** - Capture your coding conventions, best practices, and style guidelines as rules
* **Share procedural knowledge** - Document workflows and processes as skills that team members can follow
* **Ensure consistency** - Make sure everyone on your team follows the same practices automatically

## What can you create?

### Skills

Procedural workflows that guide agents through complex tasks step-by-step.

**Example use cases:**

* API testing workflows
* Database migration procedures
* Deployment checklists
* Code review processes

**Learn more:** [Creating skills](/create/creating-skills.md)

### Rules

Mandatory coding standards and conventions that agents always follow.

**Example use cases:**

* Error handling patterns
* Validation requirements
* Response format conventions
* Security best practices
* Naming conventions

### Hooks - Coming Soon

Hooks are deterministic commands that run automatically in response to events within an agent harness — for example, running a linter after a file is saved, or triggering a test suite before a commit.

**Example use cases:**

* Run `npm run lint` automatically after the agent edits a TypeScript file
* Validate an OpenAPI spec whenever a route handler changes
* Post a summary to Slack when a PR is created

### MCP - Coming Soon

MCP (Model Context Protocol) tools let your plugin expose custom tools that agents can call during a session — connecting them to internal APIs, databases, or services that wouldn't otherwise be accessible.

**Example use cases:**

* Query an internal feature flag service so the agent knows which flags are active
* Look up your internal component library to suggest the right component for a given UI pattern
* Fetch live API schema from a staging environment to keep the agent's understanding current

**Learn more:** Rules are included in plugins - see [Developing plugins locally](/create/developing-plugins-locally.md)

## Development workflow

1. **Develop locally** - Create and test your plugin in your project
   * See [Developing plugins locally](/create/developing-plugins-locally.md)
2. **Package as a plugin** - Structure your skills, docs, and rules into a plugin format
   * Skills: [Creating skills](/create/creating-skills.md)
3. **Distribute** - Share your plugin with your team or the community
   * See [Distributing via registry](/distribute/distributing-via-registry.md)

## Quick links

<table data-view="cards"><thead><tr><th data-type="content-ref"></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><a href="/pages/4d1qxFXPDzWDnh0yqk7O">/pages/4d1qxFXPDzWDnh0yqk7O</a></td><td></td><td><a href="/files/LvjP0ckl5Rp0XSl5eDAh">/files/LvjP0ckl5Rp0XSl5eDAh</a></td></tr><tr><td><a href="/pages/H3TBZZO6LEPzRCvYou4X">/pages/H3TBZZO6LEPzRCvYou4X</a></td><td></td><td><a href="/files/LvjP0ckl5Rp0XSl5eDAh">/files/LvjP0ckl5Rp0XSl5eDAh</a></td></tr></tbody></table>

## Related documentation

* [Glossary](/reference/glossary.md) - Understanding plugins, skills, docs, and rules
* [Distributing via registry](/distribute/distributing-via-registry.md) - Publishing your plugins
* [Configuration files](/reference/configuration.md) - plugin configuration reference


---

# Agent Instructions: 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:

```
GET https://docs.tessl.io/create/creating-plugins.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
