Developing plugins locally

Develop and test plugins locally

When creating plugins, you'll often want to test them locally before publishing to the Tessl Registry. Tessl lets you install plugins directly from your filesystem, making it easy to iterate on your plugin content and validate it works correctly with your agent.

Why develop locally

  • Test before publishing - Validate your plugin works correctly before sharing it

  • Iterate quickly - Make changes and test them immediately without publishing

  • Create repository-specific plugins - Build context that's specific to one codebase

  • Work with monorepos - Create plugins for different parts of your monorepo that stay with the code

Development workflow

1. Create your plugin

Create a new plugin with a skill

tessl skill new --name my-skill --path ./my-plugin/skills/my-skill

or a generic plugin structure:

tessl plugin new --name myworkspace/my-plugin --path ./my-plugin

2. Install locally

Install your plugin from the filesystem:

The plugin is now available to your agent.

3. Test and validate

Test with your agent:

  • Skills: Invoke the skill - confirm it executes correctly and produces expected results

  • Rules: Ask agent to generate code - check it follows your guidance

Then validate the plugin structure:

4. Iterate

Edit content → reinstall → test → repeat.

Plugin structure

Plugins can contain two types of content:

  • .tessl-plugin/plugin.json will have a reference to where your SKILL.md is located in relation to the .tessl-plugin root. For example, if the skill is in the root of the plugin folder, use "skills" : [.] or if it resides like above use: "skills" : [./skills/<your-skill-name>] where the actual name of the directory is specified.

  • evals/ is only present if scenarios were generated

  • skills/<your-skill-name>/SKILL.md is suggested structure, otherwise plugin.json will need a specific pointer

See Configuration files for complete .tessl-plugin/plugin.json reference.

Last updated