Cursor Full Capabilities Guide
Composer, Chat, Notepads, Agent mode, @ symbols
Most developers who use Cursor use only 20% of its capabilities — mostly Tab completions and occasional chat questions. The remaining 80% — Composer, Agent mode, @ references, and Notepads — dramatically changes how quickly you can build and refactor. This guide covers everything.
What You'll Learn
- Composer: multi-file editing from a single prompt
- Chat: asking questions about your codebase
- Notepads: persistent context across sessions
- Agent mode: autonomous task execution
- @ symbols: referencing files, docs, web, and code symbols
- Keyboard shortcuts you need to know
Composer — Multi-File Editing
Composer is the feature that separates Cursor from VS Code + Copilot. It handles tasks that span multiple files — things like adding a new feature that touches a route, a component, a hook, and a database migration.
Open Composer: Ctrl+I (Windows/Linux) or Cmd+I (Mac)
How Composer Works
You describe a task in natural language. Composer:
- Analyzes your codebase to understand the context
- Creates a plan (visible to you before execution)
- Shows you diffs for each file it will change
- Applies all changes with your confirmation
Example Composer prompt:
Add a "Save to Favorites" feature to the PromptCard component.
Requirements:
- Heart icon button in the top-right corner of each card
- Toggle between saved/unsaved state
- Persist to the user's profile via PATCH /api/v1/users/favorites
- Show a toast notification on save/remove
- The API client is in lib/api.ts
Composer reads PromptCard, the API client, any existing toast implementation, and then creates a multi-file diff covering all needed changes.
Composer Tips
Give it the "shape" of existing patterns. If your codebase has a pattern for similar features, mention it: "Follow the same pattern as the existing 'Add to Cart' feature in CartButton.tsx."
Review before accepting. Composer shows you every change. Spend 30 seconds reviewing the diff — sometimes it makes sensible but incorrect architectural choices.
Use Normal mode vs Agent mode. Composer has two modes:
- Normal: Plans and edits, requires your confirmation at each step
- Agent: Works autonomously, can run commands and iterate
Start with Normal mode until you trust Composer on your codebase.
🇮🇳 India Note: Composer handles Indian language content correctly in terms of character encoding and display. If you are building apps that store Hindi or Tamil content, Composer's file edits preserve UTF-8 encoding correctly.
Chat — Codebase Question & Answer
Chat (Ctrl+L / Cmd+L) is for questions and explanations, not code generation. It gives you a conversational interface with deep codebase awareness.
Best uses for Chat:
- "Explain how the authentication flow works in this codebase"
- "Where is the user's profile data fetched and which components use it?"
- "What is the difference between the UserService and UserRepository in this project?"
- "Are there any existing utility functions for formatting Indian phone numbers?"
Using @ in Chat:
How does @file:lib/auth.ts interact with @file:middleware/session.ts?
Is there a potential security issue in the token validation logic?
Chat maintains context within a session. If you ask a follow-up question, it remembers the earlier part of the conversation.
Chat vs Composer: Use Chat when you want to understand something. Use Composer when you want to change something.
Notepads — Persistent Context
Notepads solve the "I have to re-explain everything in every session" problem. They are named text documents that you can reference with #notepad-name in any Chat or Composer prompt.
Create a Notepad:
- Open Command Palette:
Ctrl+Shift+P - Search "Cursor: Open Notepads"
- Click "+" to create a new notepad
- Give it a name and write your content
Example Notepads for a project:
Notepad: "architecture"
This is a Next.js e-commerce app with the following architecture:
- Frontend: Next.js 15 App Router, React 19
- API: Separate Express API running on port 3001
- Database: PostgreSQL with Prisma
- Auth: JWT with refresh tokens
- All API calls go through lib/api-client.ts which handles auth headers
- State management: Zustand for cart/user state, React Query for server state
Notepad: "gstn-tax-rules"
Indian GST tax rules for this project:
- Electronics: 18% GST
- Clothing under ₹1,000: 5% GST
- Clothing ₹1,000 and above: 12% GST
- Food items: 0% or 5% depending on processed/unprocessed
- Services: 18% GST
- Always round to 2 decimal places using Math.round(value * 100) / 100
Reference in a prompt:
Following the #architecture notepad, add a new product listing page that fetches from the API.
Use the #gstn-tax-rules for price display.
Agent Mode — Autonomous Task Execution
Agent mode lets Cursor work autonomously. It can:
- Run terminal commands (build, test, lint)
- Read error output and iterate
- Make changes, run tests, fix failures, repeat
Enable Agent mode: In Composer, toggle "Agent" in the top-right corner of the Composer panel.
Example Agent mode task:
Set up Jest testing for this project.
1. Install Jest and the necessary TypeScript config
2. Create a jest.config.ts
3. Write initial tests for the utility functions in lib/utils.ts
4. Make sure all tests pass
Agent mode will:
- Run
npm install jest @types/jest ts-jest - Create the config file
- Write the tests
- Run
npm test - Fix any failures
- Report when all tests pass
Agent mode caution: Review what commands it runs. Start with a specific, bounded task rather than open-ended "improve the codebase." Set permissions in .cursorrules to require confirmation before destructive operations.
@ Reference System
The @ system is how you give Cursor specific context. Master these:
| @ Syntax | What It Does |
|----------|-------------|
| @file:path/to/file.ts | Include specific file in context |
| @folder:src/components/ | Include all files in a folder |
| #symbol:functionName | Reference a specific function or class |
| @docs:https://url.com | Fetch and include external documentation |
| @web | Let Cursor search the web for current information |
| @codebase | Search your entire indexed codebase |
| #notepad-name | Reference a saved notepad |
Practical @ usage:
Looking at @file:components/PaymentForm.tsx and @file:lib/razorpay.ts,
why is the payment validation failing for Indian bank cards?
The error logs are in @file:logs/payment-errors.log
Based on @docs:https://razorpay.com/docs/api/payments/
implement the payment verification webhook handler.
Essential Keyboard Shortcuts
| Action | Windows/Linux | macOS | |--------|--------------|-------| | Open Composer | Ctrl+I | Cmd+I | | Open Chat | Ctrl+L | Cmd+L | | Inline edit | Ctrl+K | Cmd+K | | Accept completion | Tab | Tab | | Reject completion | Esc | Esc | | Next completion | Alt+] | Option+] | | Accept next word | Ctrl+→ | Cmd+→ | | Open Command Palette | Ctrl+Shift+P | Cmd+Shift+P |
Official Resources
- Cursor Documentation — Official feature reference
- Cursor Composer Guide — Composer deep dive
- Cursor Chat Guide — Chat feature documentation
- Cursor Keyboard Shortcuts — Complete shortcut list
- Cursor Forum — Community tips and workflows
Community Questions
0No questions yet. Be the first to ask!