The Workshop · 12 min mission
Cursor Essentials: Tab, Agent, and the Model Picker
Learn the four surfaces of the Cursor editor — Tab, Chat/Agent, the mode picker, and the model picker — plus its pricing tiers, in one sitting.
On this page
Cursor is an AI code editor: a VS Code fork (built by Anysphere) with an agent in the core. Four surfaces do almost all the work — Tab (inline completion), Chat / Agent (Cmd+I), the mode picker (Shift+Tab), and the model picker. This guide gives the exact keybindings, modes, model names, config files, and prices to operate each, current as of 2026-06-15 (Cursor 3.7).
| Surface | Invoke | What it does |
|---|---|---|
| Tab | Tab (inline) | Multi-line AI completion: edits, adds imports, jumps across files |
| Chat / Agent | Cmd+I | Plans and edits across the repo, runs the terminal |
| Mode picker | Shift+Tab | Cycles Agent / Plan / Ask |
| Model picker | Dropdown in chat | Selects Auto, Composer, or a frontier model |
The 3.x Agents Window
On April 2, 2026, Cursor 3.0 introduced the Agents Window — a surface "centered around agents, while keeping the depth of a development environment." Open it with Cmd+Shift+P → Agents Window; toggle back to the classic IDE at any time. 3.0 added running many agents in parallel "locally, in worktrees, in the cloud, and on remote SSH," plus the /worktree (isolated changes) and /best-of-n (same task in parallel across models, each in its own worktree) commands.
Naming trap: in pre-3.0 tutorials "Composer" named the multi-file chat panel. In current Cursor the panel is just Agent (or Chat); Composer now names Cursor's own family of models (Composer 1 → 2.5).
| Version | Date | Headline feature |
|---|---|---|
| 3.0 | Apr 2, 2026 | Agents Window; parallel agents; /worktree, /best-of-n |
| 3.1 | Apr 15, 2026 | Canvases (interactive agent artifacts) |
| 3.2 | Apr 24, 2026 | /multitask (async subagents) |
| 3.3 | May 7, 2026 | PR Review / Split PRs |
| 3.4 | May 13, 2026 | Full-screen tabs; compact chat responses |
| 3.6 | May 29, 2026 | Auto-review (longer runs, fewer approval prompts) |
| 3.7 | Jun 4–5, 2026 | Design Mode in canvases; Context Usage Report |
Tab: completion that rewrites
Tab reads your recent edits, surrounding code, and linter errors, then proposes changes that can modify multiple lines, add missing imports, and coordinate edits across related code. Jump-in-file: after you accept, pressing Tab again predicts where your next edit belongs and jumps the cursor there. Cross-file suggestions: Tab can predict an edit in a different file and surface it in a "portal" window. Tab runs on a custom model Cursor trains itself (the docs page does not name the production model); per Cursor's engineering blog the next-generation model is Fusion, the system runs 400M+ predictions/day, and it is improved with online reinforcement learning on live accept/reject feedback.
| Action | Keys |
|---|---|
| Accept the suggestion | Tab |
| Reject it | Esc (or keep typing) |
| Accept word-by-word | Cmd/Ctrl + → |
| Jump to the next predicted edit | Tab again, after accepting |
| Turn Tab on/off | Status indicator (bottom-right), or Cursor Settings → Tab |
Chat & Agent
Open with Cmd+I. The Agent "can complete complex coding tasks independently, run terminal commands, and edit code." It is built from three parts: Instructions (system prompt + your rules), Tools, and a user-selected Model.
| Tool | What it does |
|---|---|
| Codebase search | Semantic search across the repo |
| File / folder search | Locate files and directories by name |
| File editing | Edits applied automatically to your files |
| Terminal | Runs shell commands and monitors output |
| Web search | Fetches information from the web |
| Browser control | Screenshots, navigation, visual UI verification |
| Image generation | Generates images |
| Rule retrieval | Pulls in matching .cursor/rules entries |
Context with @-symbols
Type @ in the chat box to attach context instead of pasting it. You can also drop in images and voice, and switch models mid-chat without losing the thread.
| @-symbol | Attaches | Example |
|---|---|---|
| Files & Folders | A file or directory | @auth.ts, @src/components/ |
| @Docs | Indexed documentation | @Docs |
| @Terminals | Terminal output | @Terminals |
| @Past Chats | A prior conversation | @Past Chats |
| @Commit / @Branch | Git diffs | @Commit, @Branch |
| @Browser | The in-agent browser | @Browser |
Modes: Agent, Plan, Ask
The same chat surface runs in three modes; cycle them with Shift+Tab (or the mode-picker dropdown). The mode decides whether the agent edits immediately, plans first, or cannot edit at all.
- Agent — standard mode; goes straight to implementing changes. Use when you can describe the change precisely.
- Plan — "creates detailed implementation plans before writing any code." Asks clarifying questions, researches the codebase, and shows an editable plan before building. Use for complex, multi-file, or architectural work.
- Ask — read-only; answers questions and searches the codebase without editing (can use a read-only terminal, e.g. to inspect git history). Use to understand unfamiliar code first.
Plan mode vs Agent mode
Plan mode (think first)
Best for: a refactor across several files, a new feature, anything architectural.
Researches, asks clarifying questions, and shows an editable plan before any line changes. You approve the approach, then it builds. A wrong turn is cheap to fix in the plan.
Agent mode (edit first)
Best for: a precisely-describable change — "rename this prop everywhere," "add this validation to signup.ts."
Skips the plan and edits immediately. Faster when the task is small and unambiguous; you review the result instead of the intent.
Knowledge check
You want to add OAuth login across the auth module, the API layer, and the UI — and you are not yet sure of the cleanest approach. Which mode (cycled with `Shift+Tab`) should you start in?
Model picker: Auto, Composer, frontier
The picker selects the model that drives the Agent and exposes three kinds of choice:
- Auto — "allows Cursor to select models that balance intelligence, cost efficiency, and reliability." It is a router, not a single model, and draws from the flat Auto + Composer usage pool. Token rates:
$1.25/1Minput,$6.00/1Moutput,$0.25/1Mcache read. - Composer (Cursor's own) — Composer 1, 1.5, 2, 2.5. A mixture-of-experts model RL-trained for agentic coding; Cursor positions it as a "Fast Frontier" model with generation speed ~4× faster than similar models. Cursor's blog lists GPT-5 and Sonnet 4.5 as "Best Frontier" models that outperform Composer on capability — the trade is speed vs. raw capability.
- Frontier models — five external providers (table below). The roster churns weekly; treat it as a 2026-06-15 snapshot and confirm on the live models page.
| Provider | Representative models in the picker |
|---|---|
| Cursor | Composer 1 / 1.5 / 2 / 2.5 (in-house, "Fast Frontier") |
| Anthropic | Claude Opus 4.8, Claude 4.7/4.6/4.5 Opus/Sonnet/Haiku, Claude 4 Sonnet (+ 1M), Claude Fable 5 |
| OpenAI | GPT-5.5, GPT-5.4 (+ Mini/Nano), GPT-5.3 Codex, GPT-5 family |
Gemini 3.5 Flash, Gemini 3.1 Pro, Gemini 3 Pro/Flash, Gemini 2.5 Flash | |
| xAI | Grok 4.3, Grok 4.20, Grok Build 0.1 |
| Moonshot | Kimi K2.5 |
Rules: keeping the agent on-style
Cursor reads project rules so the agent follows your conventions automatically. Rules live in .cursor/rules/ as .mdc files (version-controlled; can nest in subfolders). Each file's frontmatter has three keys — alwaysApply (bool), description (string), globs (file-pattern string) — and those decide when the rule fires. As a simpler alternative, Cursor also reads a single plain-markdown AGENTS.md at the project root (no frontmatter).
| Type | Frontmatter | Fires when |
|---|---|---|
| Always Apply | alwaysApply: true | Injected into every request |
| Apply Intelligently | description, no globs | Agent judges the rule relevant |
| Apply to Specific Files | globs set | A matching file is in play |
| Apply Manually | No description/globs | You @-mention it on demand |
---
description: TypeScript conventions for the web app
globs: src/**/*.ts,src/**/*.tsx
alwaysApply: false
---
- Prefer `type` aliases over `interface` for component props.
- No `any`. If a type is genuinely unknown, use `unknown` and narrow.
- Co-locate a component's test as `<name>.test.tsx` beside it.
- Run `npm run lint` before declaring a change done.| Plan | Price | What you get |
|---|---|---|
| Hobby | Free | Limited Agent requests and Tab completions |
| Pro | $20/mo | $20 API credit + Auto/Composer pool, unlimited Tab, frontier models, MCP, cloud agents |
| Pro+ | $60/mo | $70 API credit; for daily agent users |
| Ultra | $200/mo | $400 API credit + priority access to new features |
| Teams (Standard) | $40/user/mo | Central billing, SSO (SAML/OIDC), team context, usage analytics |
| Teams (Premium) | $120/user/mo | 5× Standard Agent limits + a $0.25/1M Cursor Token Rate on non-Auto requests |
| Enterprise | Custom | Pooled usage, SCIM, access controls, audit logs, priority support |
Reach the end and this star joins your charted sky.