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 --helpTo get detailed information about a specific command or command group, use the --help flag:
tessl <command> --help
tessl <command-group> <subcommand> --helpAuthentication
tessl login
Authenticate with Tessl.
Usage
tessl loginAlternative
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 runningtessl initso 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/repoShorthand:
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.jsonis automatically updated with the tile referenceIf 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/pdfFile system installation: Use
file:<path>to install from a local directory (tile.json expected in the path)Monorepo support: When using
--project-dependenciesin 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-securityto skip this prompt automatically.
Examples
tessl search
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 formatworkspace/tile
Flags
--global/-g(boolean, optional): Uninstall tiles from the global~/.tessl/directory instead of the current project
Notes
Removes the tile from
tessl.jsonand 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.jsonShows tile names in the format
workspace/tilewith their versionsDoes 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 formatworkspace/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-securityto 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
--installto 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/specification
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-evalsto exclude themAutomatic 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 formatworkspace/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--skillor--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.jsontemplateIf run without flags, launches an interactive wizard to guide you through tile creation
Use
--skillor--skill-nameto 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
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 formatworkspace/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 formatworkspace/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:memberpublishermanagerowner
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 unarchiveto 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 setvalue(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 getbut 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 arrayvalue(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 arrayvalue(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
--targetor-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.
This command is not listed in tessl --help but works when invoked directly.
Usage
Arguments
org/repo(string, required): Repository inorg/repoformat
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
Scenario management and codebase evals are in public beta. Workflows and output formats may change in upcoming releases.
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 ororg/repoto 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 generatedscenario.jsonasfixture.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. Eitheridor--lastis 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;replaceclears 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. Eitheridor--lastis 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.jsonfixtures → runs with smart defaults (agentclaude:claude-sonnet-4-6, context pattern fromfixture.exclude, context refinfer)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 asagent:model(e.g.claude:claude-sonnet-4-6). Repeatable — each--agentcreates 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 tofixture.excludefromscenario.json. Example:"**/*.knowledge.mdc"--context-ref(string, optional): Where to source context files from (codebase evals only). Values:infer(default — same commit asfixture.ref),HEAD(latest commit on default branch), or a specific SHA. Requires--context-patternto 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) andwith-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 intessl eval listand 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.excludeis present: once without context files (baseline) and once with them injected (with-context).fixture.excludeis required — omitting it will result in an error. Use--variantto run only one variant (e.g.--variant without-contextto run the baseline only).--context-patternand--context-refare 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.excludeis 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, orskilldepending on the evaluation subjectThe Subject column formats entries by type: tiles as
workspace/tile@version, projects asorg/repo, and skills asorg/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. Eitheridor--lastis 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.
This command is not listed in tessl --help but works when invoked directly.
Usage
Arguments
org/repo(string, required): Repository inorg/repoformat
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

