All notable changes to this project will be documented in this file.
- cursor-tools now only recommends global installation
- Updated install command to check for and warn about cursor-tools dependencies in package.json files
- Checks both dependencies and devDependencies in package.json
- Provides clear instructions for removing local installations using npm, pnpm, or yarn
- This is in response to multiple issues caused by local installation and execution under different js runtimes
- Added validation to require --tag alpha or --tag latest when running release command
- Added ModelBox provider for access to a wider range of models through an OpenAI-compatible API
- Added OpenRouter provider to enable access to models from various providers including Perplexity
- Improved browser command state management when using
--connect-to
:- Reuses existing browser tabs for subsequent commands in a session, preserving page state
- Introduced
reload-current
as a special URL value to refresh the current page without losing the connected session
- Fixed debug logging in all provider commands to properly pass through the debug flag
- Fixed
ask
command to pass debug flag to provider - Fixed
web
command to properly handle debug flag - Fixed
doc
command to include debug flag in options - Fixed
plan
command to pass debug flag to both file and thinking providers - Standardized debug logging format across all providers
- Debug logs now show full request and response details when enabled
- Fixed
- Changed default thinking provider for plan command to OpenAI with o3-mini model for significantly faster plan generation, while maintaining plan quality
- Browser commands (
open
,act
,observe
,extract
) now have--console
and--network
options enabled by default. Use--no-console
and--no-network
to disable them. - Improved page reuse in browser commands when using
--connect-to
: now reuses existing tabs instead of creating new ones for better state preservation - Improved error handling and type safety in cursor rules management
- Enhanced directory creation order in installation process
- Added user choice during installation for cursor rules location (legacy
.cursorrules
or new.cursor/rules/cursor-tools.mdc
) - Added
USE_LEGACY_CURSORRULES
environment variable to control cursor rules file location - Improved output handling across all commands:
- Centralized output handling in main CLI
- Commands now yield output consistently
- Better error handling for file writes
- Added timeout protection for stdout writes
- More reliable output flushing
- New
ask
command for direct model queries- Requires both provider and model parameters
- Allows querying any model from any provider directly
- Simple and focused command for direct questions
- Support for new Cursor IDE project rules structure
- New installations now use
.cursor/rules/cursor-tools.mdc
by default - Maintain compatibility with legacy
.cursorrules
file viaUSE_LEGACY_CURSORRULES=true
- Interactive choice during installation
- When both exist, use path based on
USE_LEGACY_CURSORRULES
environment variable - Updated documentation to reflect new path structure
- New installations now use
- Added support for the
gpt-4o
model in browser commands (act
,extract
,observe
)- The model can be selected using the
--model=gpt-4o
command-line option - The default model can be configured in
cursor-tools.config.json
- If no model is specified, a default model is used based on the configured provider (OpenAI or Anthropic)
- The model can be selected using the
- Internal: Bundled Stagehand script directly into the codebase to prevent dependency issues
- Build: Added stagehand script verification to the release process
- Enhanced
plan
command with dual-provider architecture:- Separate providers for file identification and plan generation
fileProvider
handles repository file analysisthinkingProvider
generates implementation plans- New command options:
--fileProvider
: Provider for file identification (gemini, openai, or openrouter)--thinkingProvider
: Provider for plan generation (gemini, openai, or openrouter)--fileModel
: Model to use for file identification--thinkingModel
: Model to use for plan generation--fileMaxTokens
: Maximum tokens for file identification--thinkingMaxTokens
: Maximum tokens for plan generation
- Brand new provider system with enhanced error handling and configuration:
- New provider interfaces for specialized tasks
- Shared implementations via provider mixins
- Better error messages and debugging support
- Configurable system prompts for different tasks
- Added
--quiet
flag to suppress stdout output while still saving to file with--save-to
- Useful for scripting and automated documentation generation
- All commands now support quiet mode
- Error messages are still displayed even in quiet mode
- Fixed browser commands to respect system color scheme when using
--connect-to
by not forcing a specific color scheme
- Fixed browser commands to not set viewport size in Stagehand when using
--connect-to
- Fixed browser commands to not set viewport size when using
--connect-to
without an explicit--viewport
option
- Browser commands (
open
,act
,observe
,extract
) now have--console
and--network
options enabled by default. Use--no-console
and--no-network
to disable them.
- Fixed browser commands to always reuse existing tabs when using
--connect-to
instead of creating new ones
- Browser commands now preserve viewport size when using
--connect-to
unless--viewport
is explicitly provided - Added validation to prevent using
--video
with--connect-to
as video recording is not supported when connecting to existing Chrome instances
- Added
reload-current
as a special URL value for browser commands when using--connect-to
. This allows refreshing the current page while maintaining the connection, which is particularly useful in development workflows.
- Fixed console logging in browser act command by correcting parameter order in outputMessages call
- Browser commands now support
--url=current
to skip navigation and use the current page - Browser commands now automatically skip navigation if already on the correct URL
- Improved page reuse when connecting to existing Chrome instance
- New
browser
command for AI-powered web automation and debugging, leveraging Stagehand AI for natural language interactionact <instruction> --url <url> [options]
: Execute actions on a webpage using natural language instructions<instruction>
: Natural language instruction describing the action (e.g., "Click Login", "Type 'hello' in the search box")--url <url>
: Required URL to navigate to before performing actions- Additional options:
--delay=<milliseconds>
: Delay between actions (default: 100)--retry=<number>
: Number of retries for failed actions (default: 3)
extract <instruction> --url <url> [options]
: Extract data from webpages based on natural language instructions<instruction>
: Natural language instruction describing the data to extract (e.g., "product names", "article content")--url <url>
: Required URL to navigate to- Additional options:
--format=<json|csv|text>
: Output format (default: json)--flatten
: Flatten nested objects in output
observe <instruction> --url <url> [options]
: Observe interactive elements on a webpage and suggest possible actions<instruction>
: Natural language instruction describing what to observe (e.g., "interactive elements", "login form")--url <url>
: Required URL to navigate to- Additional options:
--interval=<milliseconds>
: Check interval for observation (default: 1000)--duration=<duration>
: Total observation time (e.g., '30s', '5m')--changes-only
: Only report when changes are detected
open <url> [options]
: Open and interact with web pages- Capture HTML content with
--html
- Monitor console logs with
--console
- Track network activity with
--network
- Take screenshots with
--screenshot=<file path>
- Configure viewport size with
--viewport=<width>x<height>
- Debug with visible browser using
--no-headless
- Connect to existing Chrome instances with
--connect-to=<port>
- Capture HTML content with
- Common options for all browser commands:
--timeout=<milliseconds>
: Set navigation timeout (default: 30000)--viewport=<width>x<height>
: Set viewport size (e.g., 1280x720)--headless
: Run browser in headless mode (default: true)--no-headless
: Show browser UI for visual inspection and debugging--connect-to=<port>
: Connect to an existing Chrome instance--wait=<duration or selector>
: Wait after page load, supports:- Time duration: '5s', '1000ms', '2m' (seconds, milliseconds, minutes)
- CSS selector: '#element-id', '.my-class'
- Explicit format: 'time:5s', 'selector:#element-id', 'css:.my-class'
- Made Playwright a peer dependency for lighter installation
- Added browser configuration options in config file (headless mode, viewport, timeout)
- Integrated Stagehand AI for browser automation
- Support for OpenAI and Anthropic providers
- Auto-selection of provider based on available API keys
- Configurable timeout and debug options
- Moved Playwright from direct dependency to peer dependency
- Users need to install Playwright separately to use browser commands
- Added clear installation instructions and error messages
- Fixed punycode deprecation warning by properly redirecting both
punycode
andnode:punycode
imports topunycode/
- Fixed dynamic require issues with Node.js built-in modules by using proper ESM imports
- Improved handling of Node.js built-in modules in build configuration
- Changed default tokenizer to
o200k_base
for better compatibility with Gemini models - Added configurable tokenizer support through
tokenCount.encoding
in config file - Updated documentation to reflect new tokenizer configuration options
- Big improvements to robustness of command line arguments
- Introduces doc command to generate documentation for local or remote repositories
- Introduces github command to access PRs and issues from github
- Support for listing recent PRs and issues
- Detailed view of PR/issue discussions and code review comments
- Multiple authentication methods:
- GitHub token via environment variable
- GitHub CLI integration for automatic token generation
- Git credentials support (stored tokens or Basic Auth)
- Support for both local and remote repositories
- Markdown-formatted output for readability
- Use token count estimation to switch gemini models to pro if repository is large to fit any other model
- Updates GitHub model names to latest versions
- Updates Perplexity model names to latest versions
- Added version command to display the current version of cursor-tools
- Improved GitHub authentication error handling and rate limit messages
- Better detection of stored GitHub tokens in git credentials
- Fixed authentication status messages to accurately reflect available methods
- Fixed ESM compatibility issues with Node.js built-in modules
- Removed bundling of Node.js built-ins for better ESM support
- Reduced bundle size by externalizing Node.js core modules
- Fixed dynamic require issues with Node.js built-in modules
- Updated build configuration to properly handle Node.js built-ins in ESM context
- Fixed dynamic require of url module in ESM context
- Updated import-meta-url.js to use proper ESM imports
- Improved release process with dedicated release script
- Fixed ESM compatibility issues with dependencies
- Added better error handling for git operations during release
- Updated build configuration to output ES Module format for better Node.js 20+ compatibility
- Changed output file from CommonJS (.cjs) to ES Module (.mjs)
- Fixed ESM compatibility issues with dependencies
- Added branch support for GitHub repositories in
doc
command- Support for specifying branch using
@branch
syntax (e.g.--fromGithub=username/repo@branch
) - Works with both HTTPS URLs and shorthand format
- Properly integrates with repomix API using the
ref
parameter
- Support for specifying branch using
- New
doc
command to generate comprehensive repository documentation- Support for local repository documentation generation
- Support for remote GitHub repository documentation via
--fromGithub
option - Option to save documentation to file with
--output
- Development mode support via
pnpm dev
for running latest code without building
- Updated
.cursorrules
to include documentation for the newdoc
command - Improved command-line argument parsing for better option handling
Initial release with basic functionality:
- Web search using Perplexity AI
- Repository context-aware answers using Google Gemini
- Installation and configuration utilities