Gathering detailed insights and metrics for vibe-tools
Gathering detailed insights and metrics for vibe-tools
Gathering detailed insights and metrics for vibe-tools
Gathering detailed insights and metrics for vibe-tools
vibe-tools-mcp
MCP Server for AI assistant tools - powered by vibe-tools
@vabole/vibe-tools
CLI tools for AI agents
pr-vibe
AI-powered PR review responder that vibes with CodeRabbit, DeepSource, and other bots to automate repetitive feedback
@settlemint/vibe-rules
CLI tool to install shared vibe rules into your project
npm install vibe-tools
Typescript
Module System
Min. Node Version
Node Version
NPM Version
TypeScript (96.88%)
HTML (2.01%)
JavaScript (1.05%)
Shell (0.04%)
Vue (0.02%)
Total Downloads
0
Last Day
0
Last Week
0
Last Month
0
Last Year
0
MIT License
4,302 Stars
235 Commits
215 Forks
29 Watchers
82 Branches
11 Contributors
Updated on Jul 13, 2025
Latest Version
0.62.10
Package Id
vibe-tools@0.62.10
Unpacked Size
2.76 MB
Size
755.72 kB
File Count
94
NPM Version
11.2.0
Node Version
23.9.0
Published on
Jun 25, 2025
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
24
vibe-tools
is optimized for Cursor Composer Agent but it can be used by any coding agent that can execute commands
After installation, to see AI teamwork in action just ask Cursor Composer to use Perplexity or Gemini. Here are two examples:
vibe-tools
provides a CLI that your AI agent can use to expand its capabilities. vibe-tools
is designed to be installed globally, providing system-wide access to its powerful features. When you run vibe-tools install
, it configures instruction files tailored to your chosen development environment:
.cursorrules
or .cursor/rules/vibe-tools.mdc
.CLAUDE.md
(local or global ~/.claude/CLAUDE.md
).codex.md
(local or global ~/.codex/instructions.md
)..windsurfrules
..clinerules
directory (with vibe-tools.md
) or legacy file.vibe-tools
supports multiple AI instruction sources including Claude code, Codex, and IDE-specific rules, ensuring compatibility across various AI-powered development setups.
vibe-tools
integrates with multiple AI providers including OpenAI, Anthropic, Gemini, Perplexity, OpenRouter, ModelBox, and xAI (Grok).
vibe-tools
requires a Perplexity API key and a Google AI API key.
vibe-tools
is a node package that should be installed globally.
Install vibe-tools globally:
1npm install -g vibe-tools
Then run the setup:
1vibe-tools install .
This command will:
.cursorrules
for Cursor, CLAUDE.md
for Claude Code, .windsurfrules
for Windsurf, etc.).For automated environments, vibe-tools install
automatically detects CI environments and runs in non-interactive mode:
1# CI environments - automatically detected and runs without prompts 2CI=true vibe-tools install . 3 4# Or explicitly set non-interactive mode 5NONINTERACTIVE=true vibe-tools install .
In non-interactive mode, vibe-tools will:
VIBE_TOOLS_NO_TELEMETRY=1
)vibe-tools install
act
, extract
, and observe
commands)vibe-tools
uses Gemini-2.5 models by default, which provide excellent performance with large context windows up to 2 million tokens - enough to handle an entire codebase in one shot. Available Gemini models include gemini-2.5-flash
(default for speed), gemini-2.5-pro
(default for quality), and gemini-2.5-flash-lite-preview-06-17
(lightweight option). Gemini models are currently free to use on Google and you need a Google Cloud project to create an API key.
vibe-tools
uses Perplexity because Perplexity has the best web search api and indexes and it does not hallucinate. Perplexity Pro users can get an API key with their pro account and recieve $5/month of free credits (at time of writing). Support for Google search grounding is coming soon but so far testing has shown it still frequently hallucinates things like APIs and libraries that don't exist.
vibe-tools
collects anonymous usage telemetry to help improve the tool. You will be prompted during installation to enable or disable telemetry, and you can opt out at any time. No code, queries, file contents, or personal data are ever collected—only high-level command usage and error types (see TELEMETRY.md for full details).
VIBE_TOOLS_NO_TELEMETRY=1
environment variable.If you do something cool with vibe-tools
please let me know on twitter or make a PR to add to this section!
To see vibe-tools GitHub and Perplexity skills: Check out this example issue that was solved using Cursor agent and vibe-tools
See cursor get approximately 5x more work done per-prompt with Gemini code review:
Use Cursor Composer in agent mode with command execution (not sure what this means, see section below on Cursor Agent configuration). If you have installed the vibe-tools prompt to your .cursorrules (or equivalent) just ask your AI coding agent/assistant to use "vibe-tools" to do things.
vibe-tools ask
allows direct querying of any model from any provider. It's best for simple questions where you want to use a specific model or compare responses from different models.vibe-tools web
uses an AI teammate with web search capability to answer questions. web
is best for finding up-to-date information from the web that is not specific to the repository such as how to use a library to search for known issues and error messages or to get suggestions on how to do something. Web is a teammate who knows tons of stuff and is always up to date.vibe-tools repo
uses an AI teammate with large context window capability to answer questions. repo
sends the entire repo as context so it is ideal for questions about how things work or where to find something, it is also great for code review, debugging and planning. With the --with-diff
flag, it can also include git diff information for focused code review that keeps the AI focused on current changes while maintaining full codebase understanding. is a teammate who knows the entire codebase inside out and understands how everything works together.vibe-tools plan
uses an AI teammate with reasoning capability to plan complex tasks. Plan uses a two step process. First it does a whole repo search with a large context window model to find relevant files. Then it sends only those files as context to a thinking model to generate a plan it is great for planning complex tasks and for debugging and refactoring. Plan is a teammate who is really smart on a well defined problem, although doesn't consider the bigger picture.vibe-tools doc
uses an AI teammate with large context window capability to generate documentation for local or github hosted repositories by sending the entire repo as context. doc
can be given precise documentation tasks or can be asked to generate complete docs from scratch it is great for generating docs updates or for generating local documentation for a libary or API that you use! Doc is a teammate who is great at summarising and explaining code, in this repo or in any other repo!vibe-tools browser
uses an AI teammate with browser control (aka operator) capability to operate web browsers. browser
can operate in a hidden (headless) mode to invisibly test and debug web apps or it can be used to connect to an existing browser session to interactively share your browser with Cursor agent it is great for testing and debugging web apps and for carrying out any task that can be done in a browser such as reading information from a bug ticket or even filling out a form. Browser is a teammate who can help you test and debug web apps, and can share control of your browser to perform small browser-based tasks.vibe-tools youtube
uses an AI teammate with video analysis capability to understand YouTube content. youtube
can generate summaries, extract transcripts, create implementation plans from tutorials, and answer specific questions about video content. It's great for extracting value from technical talks, tutorials, and presentations without spending time watching the entire video. YouTube is a teammate who can watch and analyze videos for you, distilling the key information.Note: For repo, doc and plan commands the repository content that is sent as context can be reduced by filtering out files in a .repomixignore file.
When using vibe-tools with Cursor Composer, you can use these nicknames:
vibe-tools repo
vibe-tools web
vibe-tools browser
"Please implement country specific stripe payment pages for the USA, UK, France and Germany. Use vibe-tools web to check the available stripe payment methods in each country."
Note: in most cases you can say "ask Perplexity" instead of "use vibe-tools web" and it will work the same.
"Let's refactor our User class to allow multiple email aliases per user. Use vibe-tools repo to ask for a plan including a list of all files that need to be changed."
"Use vibe-tools repo to analyze how authentication is implemented in the Next.js repository. Use --from-github=vercel/next.js."
"Use vibe-tools repo to explain this React component with documentation from the official React docs. Use --with-doc=https://react.dev/reference/react/useState"
"Use vibe-tools repo to review my recent changes and suggest improvements. Use --with-diff to include the git diff."
"Use vibe-tools repo to check if my changes are compatible with the main branch. Use --with-diff --base=main."
Note: in most cases you can say "ask Gemini" instead of "use vibe-tools repo" and it will work the same.
"Use vibe-tools to generate documentation for the Github repo https://github.com/kait-http/kaito" and write it to docs/kaito.md"
Note: in most cases you can say "generate documentation" instead of "use vibe-tools doc" and it will work the same.
"Use vibe-tools github to fetch issue 123 and suggest a solution to the user's problem"
"Use vibe-tools github to fetch PR 321 and see if you can fix Andy's latest comment"
Note: in most cases you can say "fetch issue 123" or "fetch PR 321" instead of "use vibe-tools github" and it will work the same.
"Use vibe-tools to open the users page and check the error in the console logs, fix it"
"Use vibe-tools to test the form field validation logic. Take screenshots of each state"
"Use vibe-tools to open https://example.com/foo the and check the error in the network logs, what could be causing it?"
Note: in most cases you can say "Use Stagehand" instead of "use vibe-tools" and it will work the same.
"Use vibe-tools ask to compare how different models answer this question: 'What are the key differences between REST and GraphQL?'"
"Ask OpenAI's o3-mini model to explain the concept of dependency injection."
"Use vibe-tools ask to analyze this complex algorithm with high reasoning effort: 'Explain the time and space complexity of the Boyer-Moore string search algorithm' --provider openai --model o3-mini --reasoning-effort high"
Note: The ask command requires both --provider and --model parameters to be specified. This command is generally less useful than other commands like repo
or plan
because it does not include any context from your codebase or repository.
Ask Command Options:
--provider=<provider>
: AI provider to use (required)--model=<model>
: Model to use (required)--max-tokens=<number>
: Maximum tokens for response--reasoning-effort=<low|medium|high>
: Control the depth of reasoning for supported models (OpenAI o1/o3-mini models and Claude 4 Sonnet). Higher values produce more thorough responses for complex questions.--with-doc=<doc_url>
: Fetch content from one or more document URLs and include it as context. Can be specified multiple times (e.g., --with-doc=<url1> --with-doc=<url2>
).vibe-tools
requires API keys for Perplexity AI, Google Gemini, and optionally for OpenAI, Anthropic, OpenRouter, and xAI. These can be configured in two ways:
vibe-tools install
and follow the prompts~/.vibe-tools/.env
in your home directory or .vibe-tools.env
in your project root:
1PERPLEXITY_API_KEY="your-perplexity-api-key" 2GEMINI_API_KEY="your-gemini-api-key" 3OPENAI_API_KEY="your-openai-api-key" # Optional, for Stagehand 4ANTHROPIC_API_KEY="your-anthropic-api-key" # Optional, for Stagehand and MCP 5OPENROUTER_API_KEY="your-openrouter-api-key" # Optional, for MCP 6XAI_API_KEY="your-xai-api-key" # Optional, for xAI Grok models 7GITHUB_TOKEN="your-github-token" # Optional, for enhanced GitHub access
ANTHROPIC_API_KEY
and OPENROUTER_API_KEY
must be provided to use the mcp
commands.CI/CD Environments: In non-interactive mode (automatically detected in CI environments), vibe-tools uses only environment variables for API keys and skips writing them to filesystem for enhanced security.
vibe-tools
supports multiple authentication methods for accessing the Google Gemini API, providing flexibility for different environments and security requirements. You can choose from the following methods:
API Key (Default)
GEMINI_API_KEY
environment variable to your API key string obtained from Google AI Studio.1GEMINI_API_KEY="your-api-key-here"
Service Account JSON Key File
GEMINI_API_KEY
environment variable to the path of your downloaded service account JSON key file.1GEMINI_API_KEY="./path/to/service-account.json"
gemini-2.5-flash
.Application Default Credentials (ADC) (Recommended for Google Cloud Environments)
vibe-tools
within Google Cloud environments (e.g., Compute Engine, Kubernetes Engine) or for local development using gcloud
.GEMINI_API_KEY
environment variable to adc
.1GEMINI_API_KEY="adc"
1gcloud auth application-default login
Use Perplexity AI to get up-to-date information directly within Cursor:
1vibe-tools web "What's new in TypeScript 5.7?"
Leverage Google Gemini 2.0 models with 1M+ token context windows for codebase-aware assistance and implementation planning:
1# Get context-aware assistance 2vibe-tools repo "Explain the authentication flow in this project, which files are involved?" 3 4# Generate implementation plans 5vibe-tools plan "Add user authentication to the login page"
The plan command uses multiple AI models to:
Plan Command Options:
--fileProvider=<provider>
: Provider for file identification (gemini, openai, anthropic, perplexity, modelbox, or openrouter)--thinkingProvider=<provider>
: Provider for plan generation (gemini, openai, anthropic, perplexity, modelbox, or openrouter)--fileModel=<model>
: Model to use for file identification--thinkingModel=<model>
: Model to use for plan generation--fileMaxTokens=<number>
: Maximum tokens for file identification--thinkingMaxTokens=<number>
: Maximum tokens for plan generation--debug
: Show detailed error information--with-doc=<doc_url>
: Fetch content from one or more web URLs and include it as context during plan generation. Can be specified multiple times (e.g., --with-doc=<url1> --with-doc=<url2>
).Repository context is created using Repomix. See repomix configuration section below for details on how to change repomix behaviour.
Above 1M tokens vibe-tools will always send requests to Gemini 2.0 Pro as it is the only model that supports 1M+ tokens.
The Gemini 2.0 Pro context limit is 2M tokens, you can add filters to .repomixignore if your repomix context is above this limit.
Automate browser interactions for web scraping, testing, and debugging:
Note: Playwright browsers are automatically installed when you run vibe-tools install
. No additional setup is required for browser commands.
open
- Open a URL and capture page content:1# Open and capture HTML content, console logs and network activity (enabled by default) 2vibe-tools browser open "https://example.com" --html 3 4# Take a screenshot 5vibe-tools browser open "https://example.com" --screenshot=page.png 6 7# Debug in an interactive browser session 8vibe-tools browser open "https://example.com" --connect-to=9222
act
- Execute actions using natural language - Agent tells the browser-use agent what to do:1# Single action 2vibe-tools browser act "Login as 'user@example.com'" --url "https://example.com/login" 3 4# Multi-step workflow using pipe separator 5vibe-tools browser act "Click Login | Type 'user@example.com' into email | Click Submit" --url "https://example.com" 6 7# Record interaction video 8vibe-tools browser act "Fill out registration form" --url "https://example.com/signup" --video="./recordings"
observe
- Analyze interactive elements:1# Get overview of interactive elements 2vibe-tools browser observe "What can I interact with?" --url "https://example.com" 3 4# Find specific elements 5vibe-tools browser observe "Find the login form" --url "https://example.com"
extract
- Extract data using natural language:1# Extract specific content 2vibe-tools browser extract "Get all product prices" --url "https://example.com/products" 3 4# Save extracted content 5vibe-tools browser extract "Get article text" --url "https://example.com/blog" --html > article.html 6 7# Extract with network monitoring 8vibe-tools browser extract "Get API responses" --url "https://example.com/api-test" --network
mac-chrome
- Start a Chrome instance with remote debugging (macOS only):1# Launch Chrome with remote debugging on port 9222 2vibe-tools browser mac-chrome 3 4# Launch with debug output to see the full command 5vibe-tools browser mac-chrome --debug 6 7# Fast start-up with a minimal flag set 8vibe-tools browser mac-chrome --lite
This command:
--lite
)--lite
option launches Chrome with a reduced set of flags for quicker startup and fewer side-effectsAll browser commands (open
, act
, observe
, extract
) support these options:
--console
: Capture browser console logs (enabled by default, use --no-console
to disable)--html
: Capture page HTML content (disabled by default)--network
: Capture network activity (enabled by default, use --no-network
to disable)--screenshot=<file path>
: Save a screenshot of the page--timeout=<milliseconds>
: Set navigation timeout (default: 120000ms for Stagehand operations, 30000ms for navigation)--viewport=<width>x<height>
: Set viewport size (e.g., 1280x720)--headless
: Run browser in headless mode (default: true)--no-headless
: Show browser UI (non-headless mode) for debugging--connect-to=<port>
: Connect to existing Chrome instance. Special values: 'current' (use existing page), 'reload-current' (refresh existing page)--wait=<time:duration or selector:css-selector>
: Wait after page load (e.g., 'time:5s', 'selector:#element-id')--video=<directory>
: Save a video recording (1280x720 resolution, timestamped subdirectory). Not available when using --connect-to--url=<url>
: Required for act
, observe
, and extract
commands--evaluate=<string>
: JavaScript code to execute in the browser before the main commandNotes on Connecting to an existing browser session with --connect-to
--connect-to
, viewport is only changed if --viewport
is explicitly provided--connect-to
--connect-to
values:
current
: Use the existing page without reloadingreload-current
: Use the existing page and refresh it (useful in development)All browser commands support video recording of the browser interaction in headless mode (not supported with --connect-to):
--video=<directory>
to enable recordingExample:
1# Record a video of filling out a form 2vibe-tools browser act "Fill out registration form with name John Doe" --url "http://localhost:3000/signup" --video="./recordings"
Console logs and network activity are captured by default:
--no-console
to disable console logging--no-network
to disable network loggingThe act
command supports chaining multiple actions using the pipe (|) separator:
1# Login sequence with console/network logging (enabled by default) 2vibe-tools browser act "Click Login | Type 'user@example.com' into email | Click Submit" --url "http://localhost:3000/login" 3 4# Form filling with multiple fields 5vibe-tools browser act "Select 'Mr' from title | Type 'John' into first name | Type 'Doe' into last name | Click Next" --url "http://localhost:3000/register" 6 7# Record complex interaction 8vibe-tools browser act "Fill form | Submit | Verify success" --url "http://localhost:3000/signup" --video="./recordings"
Common issues and solutions:
Element Not Found Errors
--no-headless
to visually debug the pagebrowser observe
to see what elements Stagehand can identify--timeout
)Stagehand API Errors
--model
Network Errors
--timeout
Video Recording Issues
--connect-to
Performance Issues
--headless
mode for better performance (default)--viewport
--connect-to
for developmentBrowser Installation Issues
vibe-tools install
SKIP_PLAYWRIGHT=1
and install manuallynpx playwright install chromium
Use Gemini-powered YouTube video analysis to extract insights, summaries, and implementation plans:
1# Generate a video summary 2vibe-tools youtube "https://www.youtube.com/watch?v=VIDEO_ID" --type=summary 3 4# Get a detailed transcript 5vibe-tools youtube "https://www.youtube.com/watch?v=VIDEO_ID" --type=transcript 6 7# Create an implementation plan based on tutorial content 8vibe-tools youtube "https://www.youtube.com/watch?v=VIDEO_ID" --type=plan 9 10# Ask specific questions about the video 11vibe-tools youtube "https://www.youtube.com/watch?v=VIDEO_ID" "How does the authentication flow work?" 12 13# Save summary to a file 14vibe-tools youtube "https://www.youtube.com/watch?v=VIDEO_ID" --type=summary --save-to=video-summary.md
The YouTube command leverages Gemini models' native ability to understand video content, enabling you to:
YouTube Command Options:
--type=<summary|transcript|plan|custom>
: Type of analysis to perform (default: summary)Note: The YouTube command requires a GEMINI_API_KEY
to be set in your environment or .vibe-tools.env file as the Gemini API is currently the only interface that reliably supports YouTube video analysis.
Access GitHub issues and pull requests directly from the command line with rich formatting and full context:
1# List recent PRs or issues 2vibe-tools github pr 3vibe-tools github issue 4 5# View specific PR or issue with full discussion 6vibe-tools github pr 123 7vibe-tools github issue 456
The GitHub commands provide:
Authentication Methods: The commands support multiple authentication methods:
GITHUB_TOKEN=your_token_here
gh
is installed and logged in)Without authentication:
With authentication:
Automate iOS app building, testing, and running in the simulator:
1# Available subcommands 2vibe-tools xcode build # Build Xcode project and report errors 3vibe-tools xcode run # Build and run app in simulator 4vibe-tools xcode lint # Analyze code and offer to fix warnings
Build Command Options:
1# Specify custom build path (derived data) 2vibe-tools xcode build buildPath=/custom/build/path 3 4# Specify target device 5vibe-tools xcode build destination="platform=iOS Simulator,name=iPhone 15"
Run Command Options:
1# Run on iPhone simulator (default) 2vibe-tools xcode run iphone 3 4# Run on iPad simulator 5vibe-tools xcode run ipad 6 7# Run on specific device with custom build path 8vibe-tools xcode run device="iPhone 16 Pro" buildPath=/custom/build/path
The Xcode commands provide:
Generate comprehensive documentation for your repository or any GitHub repository:
1# Document local repository and save to file 2vibe-tools doc --save-to=docs.md 3 4# Document remote GitHub repository (both formats supported) 5vibe-tools doc --from-github=username/repo-name@branch 6vibe-tools doc --from-github=https://github.com/username/repo-name@branch 7 8# Save documentation to file (with and without a hint) 9# This is really useful to generate local documentation for libraries and dependencies 10vibe-tools doc --from-github=eastlondoner/cursor-tools --save-to=docs/MY_DOCS.md 11vibe-tools doc --from-github=eastlondoner/cursor-tools --save-to=docs/MY_DOCS.md --hint="only information about the doc command" 12 13# Document dependencies 14vibe-tools doc --from-github=expressjs/express --save-to=docs/EXPRESS.md --quiet 15 16# Document with additional web documentation as context 17vibe-tools doc --from-github=reactjs/react-redux --with-doc=https://redux.js.org/tutorials/fundamentals/part-5-ui-and-react --save-to=docs/REACT_REDUX.md 18 19# Document using multiple web documents as context 20vibe-tools doc --from-github=some/repo --with-doc=https://example.com/spec1 --with-doc=https://example.com/spec2 --save-to=docs/MULTI_DOC.md
vibe-tools wait <seconds>
: Pauses execution for the specified number of seconds. Useful for simple timing needs within scripts or chained commands.Customize vibe-tools
behavior by creating a vibe-tools.config.json
file. This file can be created either globally in ~/.vibe-tools/vibe-tools.config.json
or locally in your project root.
The vibe-tools.config file configures the local default behaviour for each command and provider.
Here is an example of a typical vibe-tools.config.json file, showing some of the most common configuration options:
1{ 2 // Commands 3 "repo": { 4 "provider": "openrouter", 5 "model": "google/gemini-2.5-pro" 6 }, 7 "doc": { 8 "provider": "openrouter", 9 "model": "anthropic/claude-sonnet-4", 10 "maxTokens": 4096 11 }, 12 "web": { 13 "provider": "gemini", 14 "model": "gemini-2.5-pro" 15 }, 16 "plan": { 17 "fileProvider": "gemini", 18 "thinkingProvider": "perplexity", 19 "thinkingModel": "r1-1776" 20 }, 21 "browser": { 22 "headless": false 23 }, 24 //... 25 26 // Providers 27 "stagehand": { 28 "model": "claude-sonnet-4-20250514", // For Anthropic provider 29 "provider": "anthropic", // or "openai" 30 "timeout": 90000 31 }, 32 "openai": { 33 "model": "gpt-4o" 34 } 35 //... 36}
For details of all configuration options, see CONFIGURATION.md. This includes details of all the configuration options and how to use them.
The GitHub commands support several authentication methods:
Environment Variable: Set GITHUB_TOKEN
in your environment:
1GITHUB_TOKEN=your_token_here
GitHub CLI: If you have the GitHub CLI (gh
) installed and are logged in, vibe-tools will automatically use it to generate tokens with the necessary scopes.
Git Credentials: If you have authenticated git with GitHub (via HTTPS), vibe-tools will automatically:
ghp_
or gho_
)To set up git credentials:
1git config --global url."https://github.com/".insteadOf git@github.com:
1git config --global credential.helper store # Permanent storage 2# Or for macOS keychain: 3git config --global credential.helper osxkeychain
Authentication Status:
Without authentication:
With authentication (any method):
vibe-tools will automatically try these authentication methods in order:
GITHUB_TOKEN
environment variablegh
is installed and logged in)If no authentication is available, it will fall back to unauthenticated access with rate limits.
When generating documentation, vibe-tools uses Repomix to analyze your repository. By default, it excludes certain files and directories that are typically not relevant for documentation:
node_modules/
, packages/
, etc.)dist/
, build/
, etc.).git/
)test/
, tests/
, __tests__/
, etc.).env
, .config
, etc.)You can customize the files and folders to exclude using two methods, both can be combined together:
.repomixignore
file in your project root to specify files to exclude.Example .repomixignore
file for a Laravel project:
vendor/
public/
database/
storage/
.idea
.env
repomix.config.json
file in your project root for more advanced configuration options:Example repomix.config.json
to enable compression and specify what to include:
1{ 2 "include": ["src/**/*", "README.md", "package.json"], 3 "output": { 4 "compress": true 5 } 6}
This configuration will be detected and used automatically by the repo
, plan
, and doc
commands, allowing for precise control over which files are included in the repository analysis.
If both a .repomixignore and an ignore section in repomix.config.json
are present then the ignore patterns from both are combined.
The browser
commands support different AI models for processing from multiple providers (Anthropic, OpenAI, Gemini, OpenRouter). You can select the model using the --model
option:
1# Use gpt-4o 2vibe-tools browser act "Click Login" --url "https://example.com" --model=gpt-4o 3 4# Use Claude 4 Sonnet 5vibe-tools browser act "Click Login" --url "https://example.com" --model=claude-sonnet-4-20250514 6 7# Use Gemini model 8vibe-tools browser act "Click Login" --url "https://example.com" --model=gemini-2.5-flash 9 10# Use OpenRouter model 11vibe-tools browser act "Click Login" --url "https://example.com" --model=groq-llama-3.3-70b-versatile
You can set a default provider in your vibe-tools.config.json
file under the stagehand
section:
1{ 2 "stagehand": { 3 "model": "claude-sonnet-4-20250514", // For Anthropic provider 4 "provider": "anthropic", // "openai", "gemini", or "openrouter" 5 "timeout": 90000 6 } 7}
You can also set a default model in your vibe-tools.config.json
file under the stagehand
section:
1{ 2 "stagehand": { 3 "provider": "openai", // "anthropic", "gemini", or "openrouter" 4 "model": "gpt-4o" 5 } 6}
If no model is specified (either on the command line or in the config), a default model will be used based on your configured provider:
anthropic/claude-sonnet-4-20250514
o3-mini
gemini-2.5-flash
groq-llama-3.3-70b-versatile
Available models depend on your configured provider (OpenAI or Anthropic) in vibe-tools.config.json
and your API key.
vibe-tools
automatically configures Cursor by updating your project rules during installation. This provides:
For new installations, we use the recommended .cursor/rules/vibe-tools.mdc
path. For existing installations, we maintain compatibility with the legacy .cursorrules
file. If both files exist, we prefer the new path and show a warning.
To get the benefits of vibe-tools you should use Cursor agent in "yolo mode". Ideal settings:
In general you do not need to use the cli directly, your AI coding agent will call the CLI but it is useful to know it exists and this is how it works.
All commands support these general options:
--model
: Specify an alternative model--max-tokens
: Control response length--reasoning-effort=<low|medium|high>
: Control the depth of reasoning for supported models (OpenAI o1/o3-mini and Claude 4 Sonnet). Higher values produce more thorough responses at the cost of increased token usage.--save-to
: Save command output to a file (in addition to displaying it, like tee)--quiet
: Suppress stdout output (only useful with --save-to)--debug
: Show detailed error information--provider
: AI provider to use. Valid values: openai, anthropic, perplexity, gemini, openrouter--web
: Enable web search capabilities for supported models (currently Gemini models) across all commandsDocumentation command specific options:
--from-github
: Generate documentation for a remote GitHub repository (supports @branch syntax)--hint
: Provide additional context or focus for documentation generation--with-doc=<doc_url>
: Fetch content from one or more document URLs and include it as additional context. Can be specified multiple times.Repository command specific options:
--from-github=<GitHub username>/<repository name>[@<branch>]
: Analyze a remote GitHub repository without cloning it locally--subdir=<path>
: Analyze a specific subdirectory instead of the entire repository--with-doc=<doc_url>
: Fetch content from one or more web URLs and include it as context. Can be specified multiple times.--with-diff
: Include git diff information along with repository context for focused code review--base=<branch>
: Specify base branch for diff comparison (used with --with-diff)Plan command specific options:
--fileProvider
: Provider for file identification (gemini, openai, anthropic, perplexity, modelbox, or openrouter)--thinkingProvider
: Provider for plan generation (gemini, openai, anthropic, perplexity, modelbox, 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--debug
: Show detailed error information--with-doc=<doc_url>
: Fetch content from one or more web URLs and include it as context during plan generation. Can be specified multiple times.GitHub command specific options:
--from-github=<GitHub username>/<repository name>[@<branch>]
: Access PRs/issues from a specific GitHub repository. --repo
is an older, still supported synonym for this option.Xcode command specific options:
buildPath=<path>
: Set a custom derived data pathdestination=<destination string>
: Set a custom simulator destinationiphone
or ipad
: Select device typedevice=<device name>
: Specify a custom devicebuildPath=<path>
: Set a custom derived data pathBrowser command specific options:
--console
: Capture browser console logs (enabled by default, use --no-console
to disable)--html
: Capture page HTML content (disabled by default)--network
: Capture network activity (enabled by default, use --no-network
to disable)--screenshot
: Save a screenshot of the page--timeout
: Set navigation timeout (default: 120000ms for Stagehand operations, 30000ms for navigation)--viewport
: Set viewport size (e.g., 1280x720)--headless
: Run browser in headless mode (default: true)--no-headless
: Show browser UI (non-headless mode) for debugging--connect-to
: Connect to existing Chrome instance--wait
: Wait after page load (e.g., 'time:5s', 'selector:#element-id')--video
: Save a video recording (1280x720 resolution, timestamped subdirectory)--url
: Required for act
, observe
, and extract
commands. Url to navigate to on connection or one of the special values: 'current' (use existing page), 'reload-current' (refresh existing page).--evaluate
: JavaScript code to execute in the browser before the main commandExecute commands using:
1vibe-tools <command> [options]
For example:
1vibe-tools web "What's new in TypeScript 5.7?"
Command Not Found
vibe-tools
is installed globally using npm install -g vibe-tools
/usr/local/bin
or ~/.npm-global/bin
%AppData%\npm
Installation Hanging in CI/CD
1CI=true vibe-tools install . 2# or 3NONINTERACTIVE=true vibe-tools install .
SKIP_SETUP=true
to skip API key prompts if keys are already in environmentAPI Key Errors
.vibe-tools.env
exists and contains valid API keysvibe-tools install
to reconfigure API keysgcloud auth application-default login
and the account has appropriate permissionsgcloud auth application-default print-access-token
to check if ADC is workingANTHROPIC_API_KEY
or the OPENROUTER_API_KEY
are set.OPENROUTER_API_KEY
is set.Model Errors
GitHub API Rate Limits
1GITHUB_TOKEN=your_token_here
Documentation Generation Issues
--hint
to focus on specific partsCursor Integration
vibe-tools install .
to update1# Get information about new technologies 2vibe-tools web "What are the key features of Bun.js?" 3 4# Check API documentation 5vibe-tools web "How to implement OAuth2 in Express.js?" 6 7# Compare technologies 8vibe-tools web "Compare Vite vs Webpack for modern web development"
1# Architecture understanding 2vibe-tools repo "Explain the overall architecture of this project" 3 4# Find usage examples 5vibe-tools repo "Show me examples of error handling in this codebase" 6 7# Debugging help 8vibe-tools repo "Why might the authentication be failing in the login flow?" 9 10# Analyze specific subdirectory 11vibe-tools repo "Explain the code structure" --subdir=src/components 12 13# Analyze remote GitHub repository 14vibe-tools repo "Explain the architecture" --from-github=username/repo-name 15 16# Deep analysis with enhanced reasoning 17vibe-tools repo "Analyze the security implications of our authentication implementation" --reasoning-effort high 18 19# Include web documentation as context 20vibe-tools repo "Help me implement useState in my component" --with-doc=https://react.dev/reference/react/useState
1# Basic question 2vibe-tools ask "What is the capital of France?" --provider openai --model o3-mini 3 4# Complex algorithm explanation with high reasoning effort 5vibe-tools ask "Explain the quicksort algorithm and analyze its time complexity in different scenarios" --provider openai --model o3-mini --reasoning-effort high 6 7# Comparative analysis with Claude model and enhanced reasoning 8vibe-tools ask "Compare and contrast microservices vs monolithic architecture" --provider anthropic --model claude-sonnet-4-20250514 --reasoning-effort medium 9 10# Ask with context from multiple documents 11vibe-tools ask "Based on these specs, what is the main goal?" --provider openai --model o3-mini --with-doc=https://example.com/specA.txt --with-doc=https://example.com/specB.txt
1# Document specific aspects and save to file without stdout output 2vibe-tools doc --save-to=docs/api.md --quiet --hint="Focus on the API endpoints and their usage" 3 4# Document with hint to customize the docs output 5vibe-tools doc --save-to=docs/architecture.md --quiet --hint="Focus on system architecture" 6 7# Document dependencies 8vibe-tools doc --from-github=expressjs/express --save-to=docs/EXPRESS.md --quiet 9 10# Document with additional web documentation as context 11vibe-tools doc --from-github=reactjs/react-redux --with-doc=https://redux.js.org/tutorials/fundamentals/part-5-ui-and-react --save-to=docs/REACT_REDUX.md 12 13# Document using multiple web documents as context 14vibe-tools doc --from-github=some/repo --with-doc=https://example.com/spec1 --with-doc=https://example.com/spec2 --save-to=docs/MULTI_DOC.md
1# List PRs with specific labels 2vibe-tools github pr --from-github facebook/react 3 4# Check recent issues in a specific repository 5vibe-tools github issue --from-github vercel/next.js 6 7# View PR with code review comments 8vibe-tools github pr 123 --from-github microsoft/typescript 9 10# Track issue discussions 11vibe-tools github issue 456 --from-github golang/go 12 13# Include web documentation as context 14vibe-tools repo "Help me implement useState in my component" --with-doc=https://react.dev/reference/react/useState 15 16# Include multiple documents as context 17vibe-tools repo "Summarize these two specifications" --with-doc=https://example.com/spec1.md --with-doc=https://example.com/spec2.pdf 18 19# Git diff integration for code review 20vibe-tools repo "Review my recent changes for potential issues" --with-diff 21 22# Compare changes against specific branch 23vibe-tools repo "Check compatibility with main branch" --with-diff --base=main 24 25# Combine diff with external documentation for comprehensive review 26vibe-tools repo "Does my implementation follow the API specification?" --with-diff --with-doc=https://api.example.com/docs
1# Build an iOS app with default settings 2vibe-tools xcode build 3 4# Build with custom derived data path 5vibe-tools xcode build buildPath=~/custom/derived/data 6 7# Run in iPhone simulator 8vibe-tools xcode run iphone 9 10# Run on specific iPad model 11vibe-tools xcode run device="iPad Pro (12.9-inch) (6th generation)" 12 13# Analyze code quality 14vibe-tools xcode lint
open
subcommand examples:1# Open a URL and get HTML 2vibe-tools browser open "https://example.com" --html 3 4# Open and capture console logs and network activity 5vibe-tools browser open "https://example.com" --console --network 6 7# Take a screenshot 8vibe-tools browser open "https://example.com" --screenshot=page.png 9 10# Run in non-headless mode for debugging 11vibe-tools browser open "https://example.com" --no-headless
act
, extract
, observe
subcommands examples:1# AI-powered action 2vibe-tools browser act "Click on 'Sign Up'" --url "https://example.com" 3 4# AI-powered extraction 5vibe-tools browser extract "Get the main content" --url "https://example.com/blog" 6 7# AI-powered observation 8vibe-tools browser observe "What can I do on this page?" --url "https://example.com"
1# Generate a comprehensive summary of a technical talk 2vibe-tools youtube "https://www.youtube.com/watch?v=dQw4w9WgXcQ" --type=summary 3 4# Get a complete transcript with speaker annotations 5vibe-tools youtube "https://www.youtube.com/watch?v=dQw4w9WgXcQ" --type=transcript --save-to=transcript.md 6 7# Create an implementation plan from a coding tutorial 8vibe-tools youtube "https://www.youtube.com/watch?v=dQw4w9WgXcQ" --type=plan 9 10# Generate a critical review of a tutorial's accuracy and quality 11vibe-tools youtube "https://www.youtube.com/watch?v=dQw4w9WgXcQ" --type=review 12 13# Ask specific questions about video content 14vibe-tools youtube "https://www.youtube.com/watch?v=dQw4w9WgXcQ" "What libraries does the tutorial use for authentication?" 15 16# Use a specific model for analysis 17vibe-tools youtube "https://www.youtube.com/watch?v=dQw4w9WgXcQ" --model=gemini-2.5-pro 18 19# Use custom analysis type for specialized insights 20vibe-tools youtube "https://www.youtube.com/watch?v=dQw4w9WgXcQ" --type=custom "Extract all code examples and explain them in detail"
vibe-tools is available on npm here
Contributions are welcome! Please feel free to submit a Pull Request. If you used vibe-tools to make your contribution please include screenshots or videos of vibe-tools in action.
Optimise your Vinted accounting with real-time analytics, inventory management, and tax compliance tools.
:link: Start scaling your Vinted business today
Automate your Vinted reselling business with advanced tools like autobuy, custom snipers, and one-click relisting.
:link: Take Vinted reselling to the next level
Build self-driving startups with autonomous AI agents that run your company.
:link: AI Engineer in London? Join the startup revolution
MIT License - see LICENSE for details.
No vulnerabilities found.
No security vulnerabilities found.