Cursor has become one of the best AI coding tools, reaching $100M ARR in record time. Built as a fork of VS Code, Cursor lets you connect with all major AI models, Claude, GPT, Gemini, and Cursor's own Composer models, directly within your IDE. If you're wondering how Cursor compares to Windsurf, both are VS Code-based editors with different AI workflows.
The tool is incredibly powerful, but if you want to maximize productivity and avoid burning through credits too quickly, you need to master a few key practices. In this guide, we'll cover 10 best practices that will help you code 10x faster with Cursor. If you're just getting started, the Cursor AI tutorial will walk you through the setup.
Key Takeaways
- Add as much context as possible using @mentions and screenshots for better AI outputs
- Set up .cursorrules files and custom commands to maintain consistency across your project
- Use Git worktrees to run multiple Cursor instances in parallel on different features
- Leverage voice input (built-in or Wispr Flow) for faster, more natural prompting
- Use Background Agents to run tasks from the cloud, even from your phone
- Always use Plan Mode before complex tasks to avoid wasted tokens and wrong approaches
- Combine Cursor with open-source spec libraries like spec-kitty for structured prompts
- Pair Cursor with terminal-based AI tools like Claude Code for non-IDE tasks
Learn this hands-on
Ready to ship a real production app, not just pick a model? Check out the Master Course: Build and Ship a Production-Ready App with Lovable and Cursor.
1. Add As Much Context As Possible
The quality of Cursor's output depends entirely on the context you provide. The more specific and detailed your context, the better the results.
Use @mentions to Target Specific Files
Instead of letting Cursor guess which files to edit, explicitly reference them using the @ syntax:
@filename.ts- Reference a specific file@folder/- Reference an entire folder@codebase- Search across your entire codebase
For example, instead of saying "update the authentication logic," say "@auth/login.ts update the authentication logic to include OAuth support."
Add Screenshots for Visual Context
Cursor supports image inputs, which is incredibly useful for:
- UI bugs: Screenshot the issue and ask Cursor to fix it
- Design implementation: Share a Figma screenshot and ask Cursor to implement it
- Error messages: Screenshot console errors for faster debugging
Simply paste or drag images directly into the chat, and Cursor will analyze them alongside your code.
2. Set Up Rules and Custom Commands
Project Rules (.cursor/rules)
Cursor Rules let you define persistent instructions that apply to every interaction. The legacy approach was a single .cursorrules file in your project root. The current approach is a .cursor/rules/ directory containing .mdc rule files, each with its own scope: applied always, auto-attached when files match a glob pattern, picked intelligently by the agent based on a description, or attached manually with an @mention.
Whichever format you use, the content looks the same:
# rules example
You are an expert TypeScript developer working on a Next.js 14 application.
## Tech Stack
- Next.js 14 with App Router
- TypeScript (strict mode)
- Tailwind CSS
- Supabase for database and auth
## Code Style
- Use functional components with hooks
- Prefer named exports over default exports
- Use absolute imports with @/ prefix
- Always add proper TypeScript types
## Architecture
- Follow the feature-based folder structure
- Keep components small and focused
- Use server components by default
For a full walkthrough of rule types, glob scoping, and migration from .cursorrules, read our complete guide to Cursor rules.
AGENTS.md vs .cursor/rules: Which Should You Use in 2026?
Cursor now reads AGENTS.md natively, both at the project root and in nested subdirectories (nested files are combined with their parents, and the more specific instructions win). So which one should hold your instructions?
- Use AGENTS.md for portable, project-level knowledge: what the project is, how to run tests, deployment workflow, branch conventions. It's an open standard, so Codex, Copilot, Gemini CLI, and other agents read the exact same file. If teammates use different AI tools, this is your single source of truth.
- Use .cursor/rules for Cursor-specific behavior that needs scoping: coding patterns that only apply to certain file globs, rules the agent should pull in intelligently, or rules you only want to attach manually.
The pragmatic setup for most teams: keep one AGENTS.md at the root so every agent works, and layer .cursor/rules/*.mdc files on top for glob-scoped overrides where Cursor's auto-attach genuinely helps. Our Cursor rules complete guide covers the migration in detail.
Custom Commands for Repetitive Tasks
Custom Commands let you save frequently-used prompts. Instead of typing the same instructions repeatedly, create a command:
- Open Command Palette (Cmd+Shift+P)
- Search for "Cursor: Configure Custom Commands"
- Add your command:
{
"commands": [
{
"name": "Add Tests",
"prompt": "Write comprehensive unit tests for the selected code using Jest and React Testing Library. Include edge cases and error scenarios."
},
{
"name": "Refactor",
"prompt": "Refactor the selected code to improve readability and performance. Explain your changes."
}
]
}
3. Run Several Cursor Instances Using Git Worktrees
Git worktrees let you work on multiple branches simultaneously without stashing or switching contexts. Combined with Cursor, this becomes incredibly powerful.
Setting Up Worktrees
# Create a worktree for a new feature
git worktree add ../my-project-feature-auth feature/auth
# Create a worktree for a bugfix
git worktree add ../my-project-bugfix-login bugfix/login
Each worktree is a separate directory with its own working copy. You can:
- Open each worktree in a separate Cursor window
- Run different AI tasks in parallel
- Work on multiple features without context switching
Parallel Development Workflow
- Window 1: Main development on
mainbranch - Window 2: Feature development on
feature/auth - Window 3: Bug fixes on
bugfix/login
Each Cursor instance maintains its own conversation history and context, so you can have Cursor working on different tasks simultaneously.
4. Prompt Cursor via Dictation Tools
Voice input can dramatically speed up your prompting workflow, especially for complex instructions.
Built-in Voice Input
Cursor has a built-in voice input feature:
- Press Cmd+Shift+V (or the voice input shortcut)
- Speak your prompt
- Cursor transcribes and sends it
This is perfect for quick commands and short prompts.
Dedicated Dictation Tools (Wispr Flow)
For longer, more complex prompts, consider a dedicated dictation tool like Wispr Flow:
- Higher accuracy transcription
- Works system-wide (not just in Cursor)
- Supports voice commands and punctuation
- Learns your vocabulary over time
Voice input is especially useful when you're:
- Explaining complex logic
- Describing UI requirements
- Thinking through architecture decisions
5. Use Cursor Cloud Agents (Background Agents)
What started as "Background Agents" has grown into a core part of the product. Since Cursor 3.0 (April 2026), the Agents Window shows every active agent session in one sidebar, and you can run agents locally, in git worktrees, in the cloud, or on remote machines over SSH. Cursor's iOS app even lets you launch and manage always-on agents from your phone, with push notifications when they finish.
How It Works
- Open the Agents Window and start a new agent
- Describe your task and pick where it runs (local, worktree, cloud, or remote)
- Cursor spins up the environment and works in the background
- When complete, review the changes or the automatically created PR
Use Cases
- From your phone: Start a refactoring task while commuting
- Overnight tasks: Queue up large migrations to run while you sleep
- Parallel execution: Run multiple agents on different tasks at once, each in its own isolated environment
Best Practices for Cloud Agents
- Provide clear, specific instructions
- Reference relevant files with @mentions
- Set up proper test coverage so agents can verify their work
- Review PRs carefully before merging
6. Cursor Plan Mode Best Practices
Plan Mode is one of Cursor's most underutilized features, and the single biggest lever for output quality on complex work. Instead of jumping straight into code generation, use Plan Mode to think through the approach first: the agent asks clarifying questions, researches your codebase, and produces an editable plan before writing a single line of code.
How to Activate Plan Mode
- Press Shift+Tab in the agent input to toggle into Plan Mode
- Or pick "Plan" from the mode dropdown at the top of the chat panel
- Cursor also suggests Plan Mode automatically when your prompt looks like a complex task
The Plan Mode Workflow
- Describe the feature or change you want
- Answer the clarifying questions the agent asks. This is where most of the quality comes from, so don't skip them
- Review the generated plan. You can edit it inline in chat or as a markdown file
- When the plan looks right, hit build and the agent executes it step by step
Best Practices That Make Plan Mode Shine
- Answer every clarifying question. Vague answers produce vague plans, and vague plans produce code you'll throw away.
- Edit the plan, not the code. It's much cheaper to fix a wrong approach in the plan than to unwind half-implemented agent work. Cut steps you don't want before building.
- Save plans to your workspace. Plans save to your home directory by default; use the "Save to workspace" option to keep them in the repo as living documentation your team (and future agent sessions) can reference.
- Reuse plans as specs. A saved plan doubles as a spec for a Cloud Agent: plan locally, then hand the approved plan to a background agent to execute.
When to Use Plan Mode (and When to Skip It)
Use it for:
- Complex features with multiple valid approaches
- Tasks that touch many files or systems
- Unclear requirements where you need to explore before you understand the scope
- Architectural decisions you want to review before any code is written
Skip it for quick edits and familiar, repetitive tasks: the planning overhead isn't worth it for a one-line fix.
Benefits
- Catches edge cases before coding
- Provides a clear roadmap
- Makes complex tasks manageable
- Reduces wasted tokens on wrong approaches
7. Tame YOLO Mode (Auto-Run) Before It Tames You
Auto-run (what the community still calls "YOLO mode") lets the agent execute terminal commands without asking for approval on every step. It's a massive speed boost, and a massive footgun if you configure it carelessly.
The Three Auto-Run Modes
Since Cursor 3.6, you choose between three modes in Cursor Settings > Agents > Approvals & Execution:
- Auto-review (the default): allowlisted commands run immediately, commands that can be contained run in a sandbox, and everything else is screened by an LLM classifier that allows, blocks, or asks you based on safety and how well the command matches your request
- Allowlist: only commands on your allowlist run without approval; with sandboxing enabled, supported commands outside the allowlist can still run in the sandbox
- Run Everything: all commands run without approval. Reserve this for disposable environments
Auto-Run Best Practices
- Start with Auto-review, not Run Everything. The middle tier gives you 90% of the speed with a fraction of the risk.
- Build a real allowlist. Add the commands you run constantly:
npm install,npm test,pip install,cargo build, linters, formatters. These are safe to fire without review. - Treat the allowlist as convenience, not security. Cursor is explicit that the classifier and allowlist are best-effort, not a security boundary. Prompt injection or a determined agent can slip past them.
- Never point auto-run at production. No production credentials, no mutating MCP servers, no environments where a wrong command is irreversible.
- Lean on the sandbox. On macOS, sandboxing isolates unknown commands so they can run without touching the rest of your system. Keep it enabled.
Configured this way, you stop babysitting the agent through routine commands and only get interrupted when something genuinely needs your judgment.
8. Learn the Keyboard Shortcuts That Matter
You lose the speed advantage of an AI editor if you reach for the mouse between every prompt. These are the shortcuts worth committing to muscle memory (replace Cmd with Ctrl on Windows/Linux):
| Shortcut | What It Does |
|---|---|
| Cmd+I or Cmd+L | Toggle the agent sidepanel |
| Cmd+E | Toggle the agent layout |
| Cmd+K | Inline edit (in the editor) |
| Cmd+K (in terminal) | Open the terminal prompt bar |
| Shift+Tab | Toggle agent modes (Agent, Plan) |
| Cmd+. | Open the mode menu |
| Cmd+/ | Loop between AI models |
| Cmd+Shift+L | Add current selection to chat |
| Cmd+N | New chat |
| Cmd+Return | Accept all suggested changes |
| Cmd+Backspace | Reject all suggested changes |
| Tab | Accept the current autocomplete suggestion |
| Cmd+→ | Accept the next word of a suggestion |
| Cmd+Shift+P | Command palette |
A practical way to remember the big three: "fix this line" is Cmd+K, "explain or discuss" is the chat panel, and "build this feature across files" is the agent. Everything else builds on those.
9. Combine with Open-Source Spec Libraries
Several open-source projects help structure your Cursor interactions for better results.
Spec Kitty
spec-kitty helps you create structured specifications that Cursor can follow:
- Define clear acceptance criteria
- Create testable requirements
- Generate consistent code patterns
GitHub Spec Kit
spec-kit from GitHub provides (see also our lesson on effective prompting workflows in Claude Code):
Related Lesson on Vibe Coding Academy
- Standardized prompt templates
- Best practices for AI-assisted development
- Integration with GitHub workflows
How to Use Them
- Clone the repository
- Copy the relevant templates to your project
- Customize for your tech stack
- Reference them in your Cursor Rules
10. Combine with Terminal-Based AI Tools
Cursor excels at IDE-based development, but sometimes you need terminal-level AI assistance. Combine Cursor with these tools for maximum productivity:
Claude Code
Claude Code is Anthropic's terminal-based AI assistant, learn the fundamentals in our effective prompting and workflows lesson:
- Perfect for system administration tasks
- Great for scripting and automation
- Works outside your IDE
Gemini CLI
Google's Gemini CLI offers:
- Integration with Google Cloud services
- Multimodal capabilities
- Fast responses for quick tasks
OpenAI Codex
For specific coding tasks:
- API integrations
- Code completion
- Translation between languages
When to Use Each Tool
| Task | Best Tool |
|---|---|
| IDE development | Cursor |
| System scripts | Claude Code |
| Quick questions | Gemini CLI |
| File operations | Claude Code |
| UI development | Cursor |
| DevOps tasks | Claude Code |
Conclusion
Mastering Cursor isn't just about knowing the features, it's about developing workflows that maximize your productivity while minimizing wasted effort and credits.
Start with these 10 practices:
- Add context - Use @mentions and screenshots
- Set up rules - Use AGENTS.md plus .cursor/rules, and custom commands
- Use worktrees - Run parallel Cursor instances
- Try voice input - Dictate complex prompts
- Leverage cloud agents - Run tasks in the background
- Plan first - Use Plan Mode for complex tasks
- Configure auto-run - Get YOLO-mode speed without the risk
- Learn the shortcuts - Keep your hands on the keyboard
- Use spec libraries - Structure your prompts
- Combine tools - Use terminal AI for non-IDE tasks
The key is to treat Cursor as a collaborator, not just a code generator. This is the foundation of vibe coding best practices, pairing the right tool with the right workflow. Give it the context it needs, structure your requests clearly, and combine it with other tools for a complete AI-powered development workflow. For a deeper look at the landscape, our AI coding tools comparison breaks down which tools shine for which use cases.
Ready to level up your Cursor skills? Explore our full Claude Code series to complement your Cursor workflow with terminal-based AI tools.
Related Course on Vibe Coding Academy

Ready to go beyond best practices? Master Cursor and ship production-ready apps in our hands-on course.


