Changelog
Latest version = 0.28.0
0.28.0
New Features
- Invoking - setup agentvia- npxwill now configure mcp to use tessl via- npx, ensuring smoother setup for users without a global install.
- Added integration with Cursor IDE for automatic generation and application of steering rules from tiles. 
- Added - tessl registry uninstallto easily uninstall tiles.
Improvements
- Improved error messages for the - add-membercommand to enhance clarity.
- Improved - tessl statusoutput to better reflect post-generation changes.
- Aligned arguments for - tessl registry unpublishand- tessl registry archive.
Bug Fixes
- Fixed detection of direct dependencies in the pip detector. 
- Resolved issue where unsupported package managers showed unnecessary user-facing messages. 
- Extended display name support to include PyPI and Maven packages. 
- Removed outdated compatibility code for - specs.json.
0.27.0
New Features
- New - tessl setup project-infoCommand: CLI-only users can use this command to add details that Tessl tools require to- AGENTS.md.
- Framework Initialization: you can choose “full-framework” (closed beta, login required) or “registry only” when running - init.
- Steering Rules: Tiles can now define agent behavior rules via a new - steeringsection in their manifests. These rules are automatically aggregated into a- RULES.mdfile.
- Local Usage Spec Installation: Added support for installing tiles from local directories via a new - sourcefield in- tessl.json.
Improvements
- Simplified usage spec installation paths by removing version info from the directory structure. 
Bug Fixes
- Fixed - config listto return empty results instead of throwing errors when no config file is present.
0.26.0
New Features
- Selecting Cursor during - tessl initor via- tessl setup agentwill now automatically install rule files into- .cursor/rules/tessl/frameworkas part of project setup, improving Framework adherence.
0.25.0
New Features
- Improved Tile Installation UX: Tiles suggested during install/update are now selected by default, making the default path simpler for users. 
- Improved Help for - tessl init: The- -helpoutput for- tessl initnow lists available agents, making it easier to discover options.
- Non-Interactive Shell Support: CLI installation no longer blocks in non-interactive shell environments. 
Improvements
- Better Logging Behavior: In non-interactive mode, JSON logs are now correctly sent to stderr, preserving standard piping behavior. 
- Help Text Visibility: Tile help text remains visible even when tiles are deselected, improving clarity during installation. 
Bug Fixes
- Maven Dependency Detection: Fixed issues with the Maven dependency detector to ensure accurate detection. 
- Logging Flushing Reliability: Addressed a flakiness issue by ensuring that stdio is flushed on close, not exit. 
- Ink Render Handling: Corrected usage of Ink’s rendering logic to prevent hanging or exit-related issues. 
- Security: Updated - pinologger to remove a transitive vulnerability.
0.24.0
New Features
- tessl registry syncto synchronize tiles from the registry.
- tessl setup frameworkto switch between the full Tessl framework and “registry-only” mode.
- tessl stampto manually sync spec/code hashes after intentional edits so tessl status stops flagging them.
- tessl registry searchnow matches by full tile name (workspace/name), making it easier to find your own tiles.
- tessl registry listadded to browse available tiles.
- tessl documentadds tests to spec by default.
Improvements
- tessl statussurfaces an explicit error if bootstrap hasn’t been run.
- Tool calls will fail if agent bootstrap process has not been run, with guidance to fix. 
- Added --print-project-cache flag for getting the path to the project cache. 
- Removed interactive tool picker removed to simplify workflows. 
- AGENTS.md now includes clearer “bootstrap” hints and wording tweaks to reduce confusion about when/why bootstrap should run. 
Bug Fixes
- MCP commands now authenticate correctly in all call sites. 
- Reduced noisy output during - tessl registry sync.
Compatibility
- Minimum Node.js version is now >= 22.0.0. 
0.23.0
New Features
- Added support for GitHub Copilot. 
- tessl editnow supports code files that have an associated- @describespec. Changes are made via the spec.
Improvements
- tessl whoamicommand now includes your user ID.
- Reduced the chances of "token expired" errors, by proactively refreshing tokens when commands are run. 
- Test commands will now time out if no output is received for a set period, preventing hangs. 
- Registry commands now prompt for initialization if the workspace isn’t already set up. 
- Unused - .tessl/usage-specsdirectories are now removed during sync if the corresponding entries are removed from- tessl.json.
- Test generation is now controlled by a unified - generateTestsparam, which always skips locked tests.
- Improved - listcommand usability, to make it easier for agents to select the right parameters.
- tessl registry publishskips uploading irrelevant- .mdand- .gitignored files.
Bug Fixes
- tessl statusno longer shows duplicated test paths.
- Resolved issue where interactively selected tools weren’t able to run. 
- Fixed Goose setup, so that correct - .gooserulesconfiguration is used.
Deprecations
- Removed deprecated annotations like - @describes,- @generates, and- @satisfied-by.
⚠️ Be sure to check out the changes in 0.22.0 if you're coming from an older version
0.22.1
Bug Fixes
- Fixed a project language detection issue that would occasionally cause errors across different commands. 
0.22.0
⚠️ Upgrading for users who installed via npm
If you have already installed tessl via npm, you'll need to:
- Run - npm uninstall -g tessl-alpha(if you have a version earlier than- v0.21.0)
- Run - npm i -g @tessl/clito update to the latest version.
The update command will work as expected from v0.22.0 onwards.
New Features
- initnow offers the option to set up an agent and MCP integration when initializing a project for the first time.
Improvements
- Support information is now listed in help for logged-out users. 
- Tool parameters are now displayed before model parameters in tool-level help. 
- Links are now supported in kitty terminal. 
Bug Fixes
- Fixed the rules file targeting in Gemini CLI agent setup. 
- feedbackis now gated to authenticated users, unauthenticated users can request support via email ([email protected]).
0.21.2
Bug Fixes
- Fixed MCP server not allowing invocation of install or search tools when not logged in. 
0.21.1
Improvements
- Running tools with spec-registry-only context will now fail early and remind you to install the Tessl Framework before continuing. 
- Added ability to exit - registry searchwith the Escape key.
- Search results now link to the spec registry page instead of individual package registries. 
Bug Fixes
- Fixed Ctrl+C handling with the experimental - observecommand.
- Fixed a deprecation warning on - registry install.
0.21.0
⚠️ Upgrading for users who installed via npm
We have now published to public npm! This means that if you installed Tessl using npm, auto update with tessl update will not work for you for this version. To update, you’ll need to run:
npm uninstall -g tessl-alpha
npm install -g @tessl/cli⚠️ Re-initializing your projects
With this release, you’ll need to re-initialize any previously-created Tessl projects by running tessl init inside those directories.
Breaking Changes
- Removed test generation from the - buildtool and introduced a new- build-teststool
- The spec format has been updated to allow capabilities to contain requirements that don’t have - [@test]links:- createand- editspecs will only add- [@test]links if explicitly asked to do so in the- --prompt
 
New Features
- Our spec format now supports distinguishing between three types of tests: - lockedtests: capture functional requirements provided- Denoted by - { .locked }next to the- [@test]link or in a header containing- [@test]links.
- You can manually mark tests as locked or use - tessl testto do it by passing- --lock-tests.
 
- impltests: cover implementation details that are tested to identify changes in behaviour disconnected from a spec’s functional requirements.- Denoted by - { .impl }.
- They are generated by - tessl document --include-impl-details.
 
- drafttests: are untagged and could have been added manually or using- editor- create- You can use - tessl test --lock-teststo automatically lock all draft the tests from a spec when all tests pass.
 
 
- Added flags to - build-teststool to select which kind of tests to generate- --generate-draft-tests,- --generate-locked-tests, and- --generate-impl-tests.
New Commands & Tools
- Added new - registry install,- registry search, and- registry synccommands for working with Usage Specs.
- Added a new - testtool, to run all of the tests for a given spec.
- Added - generate-teststool to add tests to a given spec.
- Added experimental - observetool to observe MCP tool invocations.
Spec Registry
- Unauthenticated users can now access a subset of Tessl’s features to add Usage Specs to their projects. - Running - initwhile logged out will set up AGENTS.md and framework files relating to the Tessl Spec Registry.
 
Global Config
- configcommands now support the- --globalflag, for updating the global Tessl config.
- The global config now supports a - shareUsageDatakey to allow for analytics opt-out.
Improvements
- Cleaner output for - buildand- build-testswith a final summary listing successful and failed specs.
- Spec discovery for - buildis smarter: only builds specs with @generate links that actually need code updates.
- Diagnostics suggestions now correctly use positional parameters (e.g., - tessl build <spec>), and- statusaccepts <spec> as positional.
- Registry-only flows link to the Knowledge Index; usage spec manifest split into tessl.json (structured) and KNOWLEDGE.md (narrative). 
- Tessl MCP tools can now log detailed output to a file to reduce their output and avoid saturating agent context when the agent is instructed to do so. 
- Added - --codeand- --testsfilters to- listcommand for finer control.
- Made - testtools- specargument positional in CLI commands.
- statusnow splits diagnosed issues into errors and warnings and includes errors regarding spec parsing.
- config setnow validates keys before setting.
- Updated spec syntax information in our system prompts: - Added context about our content tags: untagged (draft), - lockedand- impl.
- Removed un-used - .dependenciesand- .dependencytags.
 
- Updated Tessl framework content with clearer guidance on - tessl test,- status, and- fixbehavior.
- versionoutput is now cleaner and includes a hint to update if a new version is available.
- The - --specargument in- buildis now positional.
- Exposed - modelNameparameter in MCP tools
Bug Fixes
- Spec selection no longer appears to “infinite scroll.” 
- infer-specno longer swallows errors.
- Fix loop now receives test results properly. 
- Reporter failures print helpful context (e.g., missing file paths) to the terminal. 
- Prevent generation of tests when using edit on code files. 
- Test-runner name generation validates input and throws on invalid paths. 
- Tessl framework files are now filtered from context provided to tools to prevent context poisoning. 
- Fixed issue where login could not be cancelled while polling. 
- Fixed truncated console logs when running in non-interactive/piped mode. 
- Fixed - edittool so context files are properly passed.
- Fixed dependency verification to use correct - @usepath resolution.
- Prevented whitespace-only messages from being sent to models. 
- Pass test results through fix loop iterations correctly. 
- Fixed an incorrect path in - .tessl/.gitignorefor session data storage.
- Fixed - initmissing from global help.
- Reject invisible characters from LLM interactions. 
0.19.0
This release includes breaking changes that require migration for existing projects.**
To migrate your existing projects using TESSL.md, run the following steps:
- Remove old system prompt directory: - rm -rf .tessl/system-prompt
- Run - tessl initto initialize the new framework.
- Migrate any custom content from - TESSL.mdto- AGENTS.md
- Remove the old file: - rm TESSL.md
- Re-configure any existing agent integrations: - tessl setup agent
New Features
- Adopted - AGENTS.mdstandard (replacing- TESSL.md) for unified AI agent configuration across your development workflow.
- Improved Dependency Handling - verify-depsnow runs automatically after code generation in the build process.
- New - specifyMissingDependenciesflag can auto-update your spec with missing dependencies in- tessl buildand- tessl edit.
- New - neveroption added to generation mode to skip file generation entirely.
 
- tessl statusenhancements:- Highlights whether a spec includes - @generateor- @describeannotations.
- Added dirtiness diagnostic to detect out-of-sync code/test files. 
- Added diagnostic for missing - AGENTS.mdentries in- tessl status.
 
- Improved Spec & Test Management - Rewritten - documenttool with more intuitive behavior and support for complex specs.
- Re-initializing a project now regenerates framework files. 
 
Improvements
- Removes - setup languagecommand; tools that require test commands now have a- --test-commandflag.
- Removed description upon tool invocation. 
- Increased latest version check timeout in - updatecommand to reduce false negatives.
Bug Fixes
- Logging in from an agent now automatically updates the MCP server so you can continue without restarting. 
- Fixed tool summaries not showing in CLI output. 
- CLI session data no longer prevents process exit after command completion. 
0.18.1
New Features
- buildtool now has a post-generation fix loop to automatically resolve issues - we will be tweaking how we decide which test command to run in the coming week
- New - statuschecks for orphaned tests, mixed implementation links & missing required files
- Added support for agent-native planning: agents now create and maintain - .plan.mdfiles automatically during planning.
Improvements
- Removed - --recursiveoption from status command for consistency with other commands
- Replaced - --rebuild-testswith- --generate-teststo- buildto generate only missing, outdated or always (default is now- outdatedrather than- missing)
- Added - --generate-codeto- buildwhich behaves like- --generate-testsbut for code files (default is- outdated, but is likely to change)
- Generated code now includes self-hashing for integrity checking and better status reporting on modified files 
- Removed timestamps from generated code tags 
- Improved logging and error messages across tools 
- Improved exception messages to include more debugging context 
- Better editor detection and logging in planning workflows 
- Clarified descriptions for several commands & tools 
- Tools invoked via MCP now return more information about their run, improving feedback visibility for agents 
- The - buildtool now returns a failure exit code when the fix loop fails, ensuring accurate signaling of build status.
Bug Fixes
- Fixed update command in Linux when using npm 
- Fixed test generation messages saying “tests” instead of “test files” 
Deprecations
- Removed ability to edit plan files directly via the - edittool; users now receive a clear error if they attempt to do so.
- Made the - plantool private to reduce confusion and encourage agent-driven planning workflows
0.17.1
Bug Fixes
- Fixes creation of the Claude subagent instructions directory as part of - setup agent
0.17.0
New Features
- Enabled tessl status to list all specs by default, providing broader project insights. 
- Updated tessl status to include sync checks that detect whether a spec's code and tests are up to date. 
Improvements
- Updated build and document tool descriptions for clarity and accuracy. 
- Made the -spec parameter more explicit and consistently required in tessl status help output. 
- Renamed build tool's iterations parameter to maxIterations for clarity. 
- Renamed @build links to @generate to reflect intended behavior. 
Bug Fixes
- Fixed bash execution in the update command to work reliably across Mac and Linux. 
- Corrected error handling for expired keys. 
- Made terms and conditions check respect a global directory set via environment variable. 
- Fixed a crash in tessl status when a non-existent or empty spec file is provided. 
- Resolved incorrect logging of issue counts in single-spec status output. 
- Improved handling of file paths in the document tool to normalize inputs like ./path/to/file. 
Last updated

