CLI commands

The Tessl CLI provides commands for managing tiles, workspaces, authentication, and project configuration. This page provides a comprehensive reference for all available commands.

Getting started

tessl help

To see all available commands, run:

tessl --help

To get detailed information about a specific command or command group, use the --help flag:

tessl <command> --help
tessl <command-group> <subcommand> --help

Authentication

tessl login

Authenticate with Tessl.

Usage

tessl login

Alternative

tessl logout

Sign out and clear credentials.

Usage

Alternative

tessl whoami

Show current authenticated user.

Usage

Alternative

tessl auth token

Generate a new Tessl API key.

Usage

Flags

  • --expiry-date (string, optional): Expiration date for the API key in YYYY-MM-DD format (e.g., 2025-10-05)

Examples


Setup and initialization

tessl init

Set up your project and sync dependencies.

Usage

Flags

  • --project-dependencies (string, optional): Configure project dependencies mode. Options: install (default), skip, ask

  • --agent (string, optional, repeatable): Configure MCP for coding agent. Supported values: claude-code, cursor, gemini, codex, copilot, copilot-vscode, agents. Can specify multiple agents. See Custom Agents for information on configuring additional agents.

Notes

  • Configures MCP server settings for AI coding agents

  • Automatically syncs project dependencies when configured

  • Important: Open source dependencies must be installed in your project (via npm install, pip install, etc.) before running tessl init so that Tessl can detect them and install the relevant tiles

Examples


Project dependencies

tessl install

Install tiles into your project. Tiles are versioned bundles of reusable, agent-agnostic context that make coding agents more effective. They can contain skills, documentation, and rules.

Alias: tessl i

Usage

Arguments

  • source (string, required): Tile or GitHub URL to install. Can be:

    • Registry tile: workspace/tile[@version] (version optional, defaults to latest)

    • GitHub repository:

      • Full URL: https://github.com/owner/repo

      • Shorthand: github:owner/repo (e.g., github:softaworks/agent-toolkit)

    • File path: file:<path> to install from local directory

Flags

  • --project-dependencies (boolean, optional): Scan project dependencies and install matching tiles (interactive). Dependencies should be installed locally via package manager prior to using this. When used in a monorepo, scans dependencies from the current working directory.

  • --global / -g (boolean, optional): Install tiles globally to ~/.tessl/ instead of the current project. Global tiles are available across all your projects.

  • --skill (string, repeatable, optional): Select specific skills to install from GitHub repositories. Used when a repository contains multiple skills. If omitted, you'll be prompted interactively to select from available skills. Can be specified multiple times to install multiple skills from the same repository.

  • --yes (boolean, optional): Skip confirmation prompts and auto-select all skills

  • --verbose / -v (boolean, optional): Show detailed warning messages during installation

  • --watch-local (boolean, optional): Watch local file-source tiles and reinstall on changes

  • --dangerously-ignore-security (boolean, optional): Bypass security gate for high/critical findings

Notes

  • Tiles are installed to .tessl/tiles/<workspace>/<tile>/ in your project (or ~/.tessl/tiles/ when using --global)

  • Your project's tessl.json is automatically updated with the tile reference

  • If a tile is already installed and up-to-date, it will be skipped

  • GitHub URL formats: https://github.com/owner/repo, github:owner/repo, or with branch/path: https://github.com/owner/repo/tree/main/skills/pdf

  • File system installation: Use file:<path> to install from a local directory (tile.json expected in the path)

  • Monorepo support: When using --project-dependencies in a monorepo, the command scans dependencies from your current working directory. This allows you to initialize Tessl at the monorepo root and then install project-specific dependencies from subfolders.

  • Security gating: If a tile has critical or high Snyk security findings, you will be asked for permission before installation continues. You can always choose to proceed — installation is never blocked. Use --dangerously-ignore-security to skip this prompt automatically.

Examples

Search for tiles and skills in the Tessl registry by name, PURL, or HTTP URL.

Usage

Flags

  • --type (string, optional): Filter by content type. Supported values: skills, docs, rules

Arguments

  • query (string, optional): Search query (name, PURL, or HTTP URL). If omitted, you'll be prompted interactively.

Examples

tessl uninstall

Uninstall tiles from your project.

Usage

Arguments

  • workspace/tile (string, required): Full tile name in the format workspace/tile

Flags

  • --global / -g (boolean, optional): Uninstall tiles from the global ~/.tessl/ directory instead of the current project

Notes

  • Removes the tile from tessl.json and deletes files from .tessl/tiles/

  • Does not require authentication (local operation only)

Examples

tessl list

List all installed tiles in your project.

Usage

Flags

  • --json / --no-json (boolean, optional): Output tiles as JSON instead of human-readable format

Notes

  • Lists all tiles installed in your project based on tessl.json

  • Shows tile names in the format workspace/tile with their versions

  • Does not require authentication (local operation only)

Examples

tessl outdated

Check for available tile updates.

Usage

Flags

  • --json (boolean, optional): Output as JSON

Examples

tessl update

Update tiles to newer versions.

Usage

Flags

  • --yes / -y (boolean, optional): Skip prompts and update all compatible tiles

  • --force / -f (boolean, optional): Include breaking updates

  • --dangerously-ignore-security (boolean, optional): Bypass security gate for high/critical findings

Arguments

  • tile (string, optional): Tile to update in the format workspace/tile. If omitted, updates all tiles.

Notes

  • If a tile has critical or high Snyk security findings in the new version, you will be asked for permission before the update is applied. Use --dangerously-ignore-security to skip this prompt automatically.

Examples


Skill management

tessl skill new

Create a new skill with an interactive wizard or using flags.

Usage

Flags

  • --name (string, optional): Name of the skill

  • --description (string, optional): When the skill should be triggered

  • --workspace (string, optional): Workspace to create the skill in

  • --path (string, optional): Local path where the skill directory will be created

  • --install (boolean, optional): Install the skill locally after creation

  • --public (boolean, optional): Make the skill public (default is private)

Notes

  • If flags are omitted, an interactive wizard will guide you through skill creation

  • The skill will be created as a directory with the proper Agent Skills specification structure

  • Use --install to immediately add the skill to your local agent configuration

Examples

tessl skill import

Create tile.json from SKILL.md.

Usage

Flags

  • --workspace (string, optional): Workspace for the skill

  • --public (boolean, optional): Make skill public (default: prompt)

  • --force (boolean, optional): Overwrite existing tile.json without prompting

Arguments

  • path (string, optional): Path to directory containing SKILL.md or to SKILL.md file. Defaults to current directory if omitted.

Examples

tessl skill lint

Validate skill structure and contents.

Usage

Arguments

  • path/to/tile.json (string, optional): Path to skill folder or tile.json. Defaults to current directory if omitted.

Notes

  • Checks for required files and proper structure

  • Validates frontmatter fields (name, description, etc.)

  • Verifies conformance to the Agent Skills specification at agentskills.io/specificationarrow-up-right

  • Returns validation errors and warnings

Examples

tessl skill publish

Import (if needed) and publish skill to the registry. This command bundles skills, rules, documentation into a tile.

Usage

Flags

  • --workspace (string, optional): Workspace for the skill (used if importing)

  • --public (boolean, optional): Make skill public (used if importing)

  • --force (boolean, optional): Overwrite existing tile.json without prompting

  • --bump (string, optional): Auto-bump version if it already exists in the registry. Supported values: patch, minor, major

  • --dry-run (boolean, optional): Run all pre-publish checks without publishing

  • --skip-evals (boolean, optional): Skip publishing eval scenarios from evals/ directory

Arguments

  • path (string, optional): Path to the skill directory to publish. Defaults to current directory if omitted.

Notes

  • Skills are automatically linted before publishing

  • Published skills are versioned based on the version in the skill manifest

  • Eval scenarios from the evals/ directory are published by default; use --skip-evals to exclude them

  • Automatic evaluation: When published, skills are automatically evaluated and review scores are calculated (see Evaluating skills)

Examples

tessl skill review

Review a skill file for quality and compliance.

Usage

Flags

  • --json (boolean, optional): Output as JSON

  • --optimize (boolean, optional): Automatically improve the skill file and apply changes

  • --max-iterations (number, optional): Maximum number of improvement iterations (1-10, default: 3)

  • --skill (string, optional): Select specific skill to review from a remote repository

  • --yes / -y (boolean, optional): Skip confirmation prompt and auto-apply improvements

Arguments

  • path-or-url (string, optional): Path to SKILL.md, skill directory, or GitHub URL. Defaults to current directory if omitted.

Notes

  • Performs a comprehensive conformance review against the Agent Skills specification

  • Validates skill structure, formatting, and best practices

  • Provides detailed feedback on how to improve the skill

  • If optimize flag used automatically loops through rounds of skill review and changes to improve your skill in place

Examples

Reviewing a skill

Optimizing a skill


Tile management

tessl tile new

Create a new tile with an interactive wizard.

Usage

Flags

  • --name (string, optional): Tile name in format workspace/tile-name

  • --summary (string, optional): Brief description of the tile

  • --path (string, optional): Directory path where tile will be created

  • --docs / --no-docs (boolean, optional): Include documentation

  • --rules (string, repeatable, optional): Include rule by name (can be specified multiple times)

  • --workspace (string, optional): Workspace for the tile

  • --skill / --no-skill (boolean, optional): Include a skill in the tile

  • --skill-name (string, optional): Skill name (implies --skill)

  • --skill-description (string, optional): Skill description (required with --skill or --skill-name)

  • --describes (string, optional): PURL of package this tile documents

  • --install / --no-install (boolean, optional): Automatically install in current project

  • --public / --no-public (boolean, optional): Make tile public (default: private)

Notes

  • Creates a new tile directory with a basic tile.json template

  • If run without flags, launches an interactive wizard to guide you through tile creation

  • Use --skill or --skill-name to create a tile with a skill component

Examples

tessl tile lint

Validate tile structure and contents

Usage

Arguments

  • source (string, optional): Path to the tile directory to lint. Defaults to current directory if omitted.

tessl tile pack

Package a tile into a .tgz file.

Usage

Flags

  • --output (string, optional): Output path for .tgz file. If omitted, uses the tile name and version to create a file in your current directory.

Arguments

  • source (string, optional): Path to tile folder or tile.json. Defaults to current directory if omitted.

tessl tile info

Show tile details from the registry.

Usage

Arguments

  • name-or-path (string, optional): Tile name (workspace/tile[@version]) or path to tile directory. Defaults to current directory if omitted.

Examples

tessl tile publish

Publish tiles to the Tessl registry. This command bundles skills, rules, documentation into a tile.

Usage

Flags

  • --dry-run (boolean, optional): Run all pre-publish checks without publishing

  • --bump (string, optional): Auto-bump version if it already exists in the registry. Supported values: patch, minor, major

  • --skip-evals (boolean, optional): Skip publishing eval scenarios from evals/ directory

Arguments

  • path (string, optional): Path to the tile directory to publish. Defaults to current directory if omitted.

Examples

circle-info

Not sure what your published tile's URL will look like? See Workspaces to learn how workspace and tile names map to Registry URLs.

tessl tile unpublish

Unpublish tiles from the registry.

Usage

Flags

  • --tile (string, required): Tile to unpublish in the format workspace/tile@version

Notes

  • Only available within 2 days of publishing

Examples

tessl tile archive

Archive tiles in the registry.

Usage

Flags

  • --tile (string, required): Tile to archive in the format workspace/tile@version

  • --reason (string, required): Reason for archiving the tile

Notes

  • Prevents new installations while preserving existing installations

Examples


Workspace management

Workspaces enable you to create private collections of tiles that are restricted to yourself or your organization. You can control member access and permissions. To learn more, see Distributing via registry.

tessl workspace create

Create a new workspace.

Usage

Arguments

  • name (string, optional): Name for the workspace. The name must be lowercase. If omitted, you'll be prompted.

Examples

tessl workspace list

List all workspaces that you are a member of.

Usage

tessl workspace delete

Delete an existing workspace.

Usage

Arguments

  • name (string, optional): The name or ID of the workspace. If omitted, you'll be prompted.

Examples

tessl workspace add-member

Add a user to a workspace with specified permissions.

Usage

Flags

  • --workspace (string, optional): The name or ID of the workspace

  • --user (string, optional): The username or ID of the user to add

  • --role (string, optional): The role of the user. Options:

    • member publisher

    • manager owner

See Roles for more information

Examples

tessl workspace remove-member

Remove a user from a workspace.

Usage

Flags

  • --workspace (string, optional): The name or ID of the workspace

  • --user (string, optional): The username or ID of the user to remove

Examples

tessl workspace list-members

List all members of a workspace.

Usage

Arguments

  • name (string, optional): The name or ID of the workspace. If omitted, you'll be prompted.

Examples

tessl workspace archive

Archive a workspace. An archived workspace won't be available to publish to or read from, but can be unarchived later.

Usage

Flags

  • --reason (string, required): Reason for archiving the workspace

Arguments

  • name (string, optional): The name or ID of the workspace. If omitted, you'll be prompted.

Notes

  • Archiving is a safer alternative to deleting, as archived workspaces can be restored

  • Use tessl workspace unarchive to restore an archived workspace

Examples

tessl workspace unarchive

Unarchive an archived workspace, making it active again.

Usage

Arguments

  • name (string, required): The name or ID of the workspace.

Examples


Configuration management

tessl config get

Get a configuration value or show all configuration.

Usage

Arguments

  • key (string, optional): Configuration key to get. If omitted, shows all configuration.

Examples

tessl config set

Set a configuration value.

Usage

Arguments

  • key (string, required): Configuration key to set

  • value (string, required): Value to set

Examples

tessl config list

List all configuration values.

Usage

Arguments

  • key (string, optional): Configuration key to list. If omitted, lists all configuration.

Notes

  • Similar to tessl config get but specifically for listing configuration values

Examples

tessl config add

Add one or more values to a configuration array.

Usage

Arguments

  • key (string, required): Configuration key for the array

  • value (string, required, repeatable): One or more values to add to the array

Notes

  • Use this command to add values to array-type configuration settings

  • Can specify multiple values in a single command

Examples

tessl config remove

Remove a value from a configuration array.

Usage

Arguments

  • key (string, required): Configuration key for the array

  • value (string, required): Value to remove from the array

Notes

  • Use this command to remove values from array-type configuration settings

  • Only removes the specified value, not the entire configuration key

Examples


Diagnostics and utilities

tessl doctor

Run authentication and manifest diagnostics to troubleshoot issues.

Usage

Flags

  • --json (boolean, optional): Output diagnostics as JSON for programmatic processing

Examples

tessl feedback

Send feedback to the Tessl team.

Usage

Arguments

  • message (string, optional): Feedback message to send. If omitted, you'll be prompted interactively.

Examples


CLI self-management

tessl cli update

Update the CLI to the latest or specified version.

Usage

Note: --target can be shortened to -t

Flags

  • --target or -t (string, optional): Target version to update to (e.g., v1.0.0)

  • --dry-run (boolean, optional): Show what would be run without executing the update

Examples


Model Context Protocol (MCP)

tessl mcp start

Start the Tessl MCP (Model Context Protocol) server for integration with AI coding agents.

Usage


Repository

tessl repo select-commits

Browse recent commits in a repository and select which ones to evaluate. Used as the first step in setting up a codebase eval.

circle-info

This command is not listed in tessl --help but works when invoked directly.

Usage

Arguments

  • org/repo (string, required): Repository in org/repo format

Flags

  • --keyword (string, optional): Filter by commit message keyword

  • --author (string, optional): Filter by author name

  • --since / --until (string, optional): Date range in YYYY-MM-DD format

  • --count / -n (number, optional): Number of commits to show (1–100)

  • --workspace / -w (string, optional): Required outside interactive mode

  • --json (boolean, optional): Output as JSON

Prerequisite: your GitHub or GitLab account must be connected in workspace settings. If it isn't, the error message includes a direct link to the settings page.

Examples


Scenario management

circle-exclamation

Scenario commands generate and manage eval scenarios from real repository commits. For a full walkthrough, see Evaluate your codebase.

tessl scenario generate

Generate eval scenarios from a tile or repository commits. Runs server-side — the CLI polls until complete. Ctrl-C detaches without cancelling; check progress with tessl scenario list.

Alias: tessl scenarios generate

Usage

Arguments

  • source (string, required): Tile path or org/repo to generate scenarios from

Flags

  • --commits (string, optional): Comma-separated commit hashes to generate scenarios from (repo only)

  • --prs (string, optional): Comma-separated PR numbers to resolve as commit ranges (repo only)

  • --count / -n (number, optional): Number of new scenarios to add (tile only)

  • --context (string, optional): Glob patterns for context files to exclude from baseline, comma-separated (repo only). These patterns are stored in each generated scenario.json as fixture.exclude — they are stripped for the baseline eval variant and injected back for the with-context variant. Defaults to *.mdc, *.md, tile.json, tessl.json, .tessl/ when omitted.

  • --workspace / -w (string, optional): Workspace name or ID (repo only). Required outside interactive mode.

  • --json (boolean, optional): Output as JSON

Examples

tessl scenario list

List recent scenario generation runs in reverse chronological order.

Alias: tessl scenarios list

Usage

Flags

  • --mine (boolean, optional): Only show generation runs created by you

  • --workspace / -w (string, optional): Filter by workspace name

  • --limit (number, optional): Maximum number of runs to display (default: 20)

  • --status (string, optional): Filter by status. Supported values: pending, in_progress, completed, failed

  • --json (boolean, optional): Output as JSON

tessl scenario view

Inspect a scenario generation run. Shows run metadata and a table of generated scenarios with titles and checklist item counts.

Alias: tessl scenarios view

Usage

Flags

  • --last (boolean, optional): View the most recent generation run

  • --json (boolean, optional): Output as JSON

Arguments

  • id (string, optional): Generation run ID. Either id or --last is required.

Examples

tessl scenario download

Download generated scenarios to your local evals/ folder.

Alias: tessl scenarios download

Usage

Flags

  • --output / -o (string, optional): Output directory (default: evals)

  • --strategy / -s (string, optional): Write strategy: merge (default) adds new scenarios alongside existing ones; replace clears the directory first

  • --json (boolean, optional): Output as JSON

  • --last (boolean, optional): Download from the most recent generation run

Arguments

  • id (string, required, repeatable): Generation IDs to download. Can specify multiple IDs. Either id or --last is required.

If the generation run is still in progress or pending, the command reports the status and exits.

Downloaded structure:

Examples


Evaluations

For more information on workflows and usage, see Evaluate your codebase and Evaluate skill quality using scenarios.

tessl eval run

Run evaluations for a tile or a codebase scenarios directory. The CLI auto-detects the eval type from the source:

  • Codebase eval — source directory contains scenario.json fixtures → runs with smart defaults (agent claude:claude-sonnet-4-6, context pattern from fixture.exclude, context ref infer)

  • Tile eval — source contains tile.json → runs the tile's own evals

Usage

Flags

  • --force / -f (boolean, optional): Re-run all evals, including previously solved cases

  • --workspace / -w (string, optional): Workspace name or ID

  • --agent (string, optional, repeatable): Agent and model as agent:model (e.g. claude:claude-sonnet-4-6). Repeatable — each --agent creates a separate eval run. Default: claude:claude-sonnet-4-6

  • --context-pattern (string, optional): Glob patterns for context files to inject for the with-context variant (codebase evals only). Defaults to fixture.exclude from scenario.json. Example: "**/*.knowledge.mdc"

  • --context-ref (string, optional): Where to source context files from (codebase evals only). Values: infer (default — same commit as fixture.ref), HEAD (latest commit on default branch), or a specific SHA. Requires --context-pattern to be active.

  • --runs / -n (number, optional): Number of times to repeat each agent configuration

  • --variant (string, optional, repeatable): Restrict which variants to run. Supported values: without-context (baseline only) and with-context. Repeatable — pass both to run both. Defaults to running all variants. Codebase evals only.

  • --label / -l (string, optional): A short description to attach to this eval run. Visible in tessl eval list and the Tessl web UI.

  • --json (boolean, optional): Output eval run IDs as JSON immediately without polling

Arguments

  • source (string, optional): Path to tile folder, tile.json, or scenarios directory. Defaults to current directory if omitted.

Notes

  • For codebase evals, each scenario is solved twice by default when fixture.exclude is present: once without context files (baseline) and once with them injected (with-context). fixture.exclude is required — omitting it will result in an error. Use --variant to run only one variant (e.g. --variant without-context to run the baseline only).

  • --context-pattern and --context-ref are only valid for codebase evals — passing them for a tile eval returns an error.

  • Ctrl-C detaches without cancelling — runs continue server-side. The CLI prints each run ID.

Agent format: <agent>:<model> — supported agents: claude, cursor, codex

Examples

tessl eval compare

Compare agent scores across all runs for a local scenarios directory. The CLI fingerprints your local scenarios and fetches matching results from the server. Pass the same directory used with eval run.

Usage

Arguments

  • path (string, required): Path to the scenarios directory

Flags

  • --workspace / -w (string, optional): Workspace name or ID. Required outside interactive mode.

  • --breakdown (boolean, optional): Show per-scenario detail with all runs

  • --json (boolean, optional): Output raw JSON

Notes

  • Score colours: 🟢 ≥ 80% 🟡 ≥ 50% 🔴 < 50%

  • When fixture.exclude is present in scenarios, output shows baseline vs with-context scores with a delta (Δ)

Examples

tessl eval list

List recent eval runs in reverse chronological order.

Usage

Flags

  • --json (boolean, optional): Output results as JSON

  • --limit (number, optional): Maximum number of eval runs to display (default: 20)

  • --mine (boolean, optional): Only show eval runs created by you

  • --workspace (string, optional): Filter by workspace name

  • --tile (string, optional): Filter by tile name

  • --status (string, optional): Filter by run status. Supported values: pending, in_progress, completed, failed

  • --type (string, optional): Filter by eval type. Supported values: tile, skill, project

Notes

  • The output table includes ID, Type, Subject, Status, Created By, and Created columns

  • The Type column shows tile, project, or skill depending on the evaluation subject

  • The Subject column formats entries by type: tiles as workspace/tile@version, projects as org/repo, and skills as org/repo:skillName

Examples

tessl eval view

View results for a specific eval run.

Usage

Flags

  • --json (boolean, optional): Output results as JSON

  • --last (boolean, optional): View results for the most recent eval run

Arguments

  • id (string, optional): Eval run ID

Examples

tessl eval retry

Re-run a failed eval run.

Usage

Flags

  • --json (boolean, optional): Output as JSON

  • --last (boolean, optional): Retry the most recent eval run

Arguments

  • id (string, optional): Eval run ID to retry. Either id or --last is required.

Examples

tessl eval view-results

Show aggregated eval results across all scenarios and runs for a given repository. Unlike eval compare <path> which works from your local scenarios directory, this queries all results for the repo from the server.

circle-info

This command is not listed in tessl --help but works when invoked directly.

Usage

Arguments

  • org/repo (string, required): Repository in org/repo format

Flags

  • --workspace / -w (string, optional): Workspace name or ID. Required outside interactive mode.

  • --breakdown (boolean, optional): Show per-scenario detail with all runs

  • --json (boolean, optional): Output raw JSON

Last updated