What you’ll have when this Cursor tutorial is done
Forty minutes from now you won’t have a shiny demo app nobody asked for. You’ll have Cursor installed, a real folder open, one Agent-driven change already reviewed in the diff view, and a short rule file so the next session doesn’t reinvent your stack. That’s the finish line. Everything below is how I actually got there after burning an evening on the wrong path.
I started the way most guides push: dump a paragraph-long prompt and “build me a full app.” The agent produced files. Half of them didn’t match how I ship. Then I flipped the workflow. Orient first. One safe edit. Rules second. Apps later.
Reader scenario: the unfamiliar checkout folder
You’re joining a small side project – or your own repo you haven’t touched in months. You need a discount badge on a product card, not a rewrite. The codebase is messy enough that grepping feels slow. You want an AI pair that reads the tree, proposes a tiny change, and waits for you to accept the diff.
That’s the job: an AI-native editor forked from VS Code that indexes your project, completes with Tab, edits inline with Cmd/Ctrl+K, and runs an Agent across files when you ask. The official quickstart frames the first loop as explain → small change → review. Not “vibe a whole product on day one.”
Why refuse the greenfield demo? Because a generated toy app never teaches you how Cursor behaves inside your mess – naming, folders, half-broken tests. The unfamiliar checkout folder does.
What Cursor actually is (and what you’re paying for)
VS Code habits stay. You add Agent, Tab, Plan Mode, rules, and codebase search – local editor, cloud models, optional cloud agents.
| Plan (check live pricing; figures move) | Price (as of Cursor pricing page, late 2025 / 2026) | What matters on day one |
|---|---|---|
| Hobby | Free, no credit card | Limited Agent; enough for install → explain → one edit |
| Individual / Pro | From $20/mo | Extended Agent limits, frontier models, MCPs/skills, cloud agents |
| Teams | $40/user/mo | Shared team controls; privacy often enforced |
| Enterprise | Custom | When procurement owns the seat |
Always recheck cursor.com/pricing before you upgrade – tiers and multipliers change. On paid seats, watch how included usage is split: Cursor-owned models vs allowance for other/third-party models. After that allowance, on-demand rates show up. “I only chatted a bit” is how surprise invoices start.
Practical setup: install, privacy, first folder
Night one I opened a giant monorepo. Indexing crawled. Agent answers felt random. Start smaller.
- Download from cursor.com (macOS 12+, Windows 10+, Linux apt/yum/AppImage per docs).
- Sign in. Import VS Code settings if offered – themes and keybindings land intact.
- Open Cursor Settings → General and enable Privacy Mode so code isn’t used for training (privacy help; teams often enforce this).
- Prefer a folder well under a huge tree if you can. Give indexing time before big Agent asks – embeddings and Merkle-tree sync help search, but a cold index still feels dumb.
- Cmd+I / Ctrl+I opens Agent. Paste: “Explain this codebase. Point me to the main entry points, key modules, and anything I should read before making changes.”
Map first. Then ask for three small safe improvements, pick one, let it edit, and read the diff like a PR. Run tests or the linter if you have them.
Advanced usage that actually sticks
First edit landed? Good. What separates toy use from daily use: context control.
Shift+Tab in the agent input flips Plan Mode – research, clarifying questions, written plan, your approval, then code (quickstart). Use it before anything that spans routes + components + tests.
Tab predicts from nearby code, recent edits, linter noise. Accept with Tab; one word with Cmd/Ctrl+Right; Esc ignores. Multi-line is normal; it can jump to the next edit spot after accept. Cmd/Ctrl+K stays tight: selection → inline edit, single file, no agent sprawl. Shortcuts cheat-sheet lives in Cursor’s keyboard help.
@-mention files and folders so the model isn’t guessing paths.
For lasting taste, skip a novel in legacy .cursorrules (deprecated). Short project rules under .cursor/rules/ as MDC, plus optional root AGENTS.md, beat an 800-token essay. Long English prose adds a fixed token tax on every Agent turn and still gets ignored mid-refactor.
---
alwaysApply: true
---
- TypeScript strict; no implicit any
- Named exports only for UI components
- Tailwind utilities only; no new CSS files
- Never edit generated paths: dist/, .next/
Pro tip: Keep always-on rules tiny. Scope the rest with globs (e.g. only
**/*.test.ts) so they show up when those files matter.
The catch is baked into the rules docs: project/user/team rules and AGENTS.md feed Agent. They do not drive Tab. User Rules also skip Inline Edit (Cmd/Ctrl+K). If Tab keeps fighting Prettier, snooze Tab for that language or fix the formatter – the rule file will not police autocomplete.
Honest limitations (the stuff that burned me)
- Broken threads still cost attention and quota in practice. Stuck plan loops, endless retries, Cloud Agents inventing workarounds without secrets – people on paid seats report chewed included usage because you’re paying for inference, not “successful merges only.” Start a fresh thread. Don’t hammer the same dead chat.
- Context isn’t magic. Junk outside
.gitignore/.cursorignorepoisons retrieval. Indexing helps semantic search; you still own the review. - It will invent APIs. Multi-file Agent output = untrusted junior PR. Diff → checks → merge.
- Cloud Agents ≠ chat with your laptop secrets. Fine for long jobs you staged credentials for. Bad for prod ops you never injected.
So don’t skip it. Win condition stays: a reviewed diff, not trust-me green checkmarks.
FAQ
Is the free Hobby plan enough to learn?
Yes – install, explain, one small edit. Live in multi-file Plan Mode every day? Pro’s extended Agent limits start to matter.
Tab keeps rewriting style I already fixed – are my rules broken?
No. Same gotcha as above: rules target Agent, not Tab. On a React repo I watched Tab undo Prettier until I stopped expecting AGENTS.md to babysit autocomplete. Disable Tab on noisy markdown/JSON, or accept word-by-word with Cmd/Ctrl+Right when it’s half right.
Should I always use the biggest model?
No. Wrong assumption: “smarter model” fixes vague prompts. It doesn’t. Big models help planning and nasty refactors. Rename-a-prop or copy tweaks? Lighter default / Auto-style routing usually saves quota and the diff still looks fine. @ the real files, state the outcome, and watch included vs on-demand pools on paid plans so third-party spend doesn’t drip into overages after the allowance.
Open your smallest real repo, run the explain prompt, accept one safe edit, and write a four-line always-on rule before you close the laptop. That’s the whole game.