> For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt.

# Distributing via registry

Once you've created and published a plugin, you'll need to share it with your team, keep it updated, and manage its lifecycle. This guide covers the common tasks for managing published plugins.

## Sharing with your team

Add members to your workspace so they can access your private plugins:

```bash
tessl workspace add-member --username <tessl-username> --role member --workspace myworkspace
```

The `member` role gives read-only access to plugins. See [Roles](/administrators/roles.md) for more information about workspace roles and permissions.

To verify members have been added:

```bash
tessl workspace list-members myworkspace
```

## Installing plugins in projects

Team members can install your plugin in their projects:

```bash
tessl install myworkspace/your-plugin
```

Or search for it:

```bash
tessl search your-plugin
```

Private plugins appear in search results for workspace members just like public plugins.

To install a specific version:

```bash
tessl install myworkspace/your-plugin@1.0.0
```

## Updating documentation

When your library or service changes, update the plugin to keep documentation current.

### For automated plugins

If you used automated generation from a repository:

1. Merge code changes to your repository
2. Navigate to the Tessl interface and regenerate the plugin
3. Review new evaluation results
4. Publish the updated version

### For manual plugins

If you created the plugin manually:

1. Edit your documentation files
2. Increment the version in `.tessl-plugin/plugin.json` (following [semantic versioning](https://semver.org/))
3. Validate with `tessl plugin lint`
4. Publish with `tessl plugin publish`

**Version guidelines:**

- **Patch** (1.0.0 → 1.0.1): Bug fixes, typo corrections
- **Minor** (1.0.0 → 1.1.0): New content, backward-compatible changes
- **Major** (1.0.0 → 2.0.0): Restructuring, breaking changes

Users can update to the latest version:

```bash
tessl install myworkspace/your-plugin
```

## Archiving plugins

To remove a plugin from search results without deleting it:

```bash
tessl plugin archive --plugin myworkspace/your-plugin@1.0.0 --reason "replaced by new library"
```

Archived plugins:

- No longer appear in search results
- Cannot be installed by new users
- Remain accessible to projects that already have them installed
- Can be restored by contacting support

Use archiving when:

- A library is deprecated but still used by some projects
- You're migrating to a new plugin and want to phase out the old one
- The plugin is outdated but may still be needed for reference

## Unpublishing plugins

To completely remove a plugin version:

```bash
tessl plugin unpublish --plugin myworkspace/your-plugin@1.0.0
```

You can unpublish a version unless all of these are true:

- The plugin is public
- The version was published more than 48 hours ago
- The plugin has 500 or more downloads

In that case, archive the plugin instead, or contact [support@tessl.io](mailto:support@tessl.io).

Unpublished versions are completely removed and cannot be recovered.

## Monitoring plugin usage

Track how your plugins are being used:

1. Navigate to the [Tessl Registry](https://tessl.io/registry)
2. Log in and select your workspace
3. View your plugins to see usage statistics and install counts

This helps you understand which plugins are most valuable to your team.

## Best practices

- **Update regularly** - Keep documentation in sync with code changes
- **Use semantic versioning** - Help users understand the impact of updates
- **Archive deprecated plugins** - Guide users to replacement plugins
- **Monitor usage** - Focus maintenance effort on widely-used plugins
- **Document breaking changes** - Communicate major version updates to your team

## Related

- [Workspaces](/reference/workspaces.md) - Understanding workspaces and permissions
- [Configuration files](/reference/configuration.md) - Complete `.tessl-plugin/plugin.json` reference
