Course · Cursor · Modes · Agent, Ask, Plan, Debug
Ask and Agent: read-only Q&A, then full execution
Most of a normal day in Cursor happens in two postures. Ask is the read-only mode: it answers questions about your code and changes nothing. Agent is the full-execution default: it edits files and runs commands until the task is done. As of September 2026, Ask is read-only: it appears in the mode picker and has no page under cursor.com/docs - its documentation is a Help Center article, ask mode, which describes it as a read-only mode for understanding your codebase - while the shortcut reference documents the mode menu that switches between the postures. The skill on this page is telling which moment you’re in - do I need knowledge, or do I need a change - because the two often arrive in that order inside a single task.
Ask: understand before you touch
Section titled “Ask: understand before you touch”Reach for Ask when the thing you need is knowledge, not a change. It’s read-only by construction - it will trace code, explain a flow, and answer “where does X happen,” but it won’t edit a file or run a command that mutates state. That guarantee is the point: you can point it at code you’re afraid of and know nothing will move.
The tell for Ask is that you can’t yet name the change you want. You’re still asking what is this and where does it live. An illustrative exchange from the course’s budgetcli example - a small self-hosted personal-finance API:
ask ›> where does budgetcli decide a transaction is allowed to post against a budget? is the check in this repo, or somewhere shared?
The budget gate is in src/budget/guard.ts, but the rule it enforces - the spend-limit threshold - isn't local. guard.ts calls policy.allowsSpend(txn), and that function lives in the shared `budget-policy` package, imported by six other services. Nothing here changes the threshold; it only reads it.That answer just changed the shape of the job. What looked like a one-repo edit is actually a change to budget-policy, a shared module six other services import - cheap to attempt, expensive to get wrong. You learned that for free, in a mode that couldn’t have broken anything while you learned it. That’s what Ask is for.
There’s a second payoff. Everything the agent reads while answering stays in the conversation, so when you switch that same chat to Agent to act on what you learned (the mode picker in the chat pane; Shift+Tab rotates), the edit starts from evidence instead of guesses. The conversation is carrying context - in this course’s terms, the information in front of the agent when it decides - and an Ask conversation is some of the cheapest context you will ever buy.
Agent: full execution
Section titled “Agent: full execution”Once you can name the change, the read-only guarantee stops being protection and starts being friction. That’s the moment to switch to Agent. You describe an outcome; it does the whole loop - reads what it needs, edits across however many files it decides are relevant, runs tests, reads the failures, and fixes them - surfacing terminal commands for your approval as it goes (what needs approval is governed by your run-mode settings) rather than stopping to plan with you first.
Agent earns its latitude when the change is contained and you’d rather review a finished diff than co-author the approach. A gnarly algorithm that lives entirely in one file you own is a perfect Agent task even though it’s hard: the difficulty is real, but a mistake shows up in one diff you were going to read anyway, so letting it run and reviewing the result is cheaper than narrating every step.
An illustrative run, again in budgetcli:
agent ›> the retry backoff in src/rates/fetcher.ts is linear; make it exponential with jitter, capped at 30s, and keep the existing max-attempts behavior.
⏵ Read src/rates/fetcher.ts, tests/rates/fetcher.test.ts ⏵ Edit src/rates/fetcher.ts → exponential backoff + jitter, 30s cap ⏵ Run npx vitest run src/rates/ • ok 0.18s Done. Backoff now doubles per attempt with ±20% jitter, capped at 30s; max-attempts unchanged. Tests pass.What you’re trusting Agent with is latitude, not correctness - you still read the diff. The judgment is matching the latitude to the stakes. When the approach itself is uncertain, or a mistake would reach past the file in front of you - that’s the signal to move up to Plan, the mode that researches read-only and proposes an approach before executing. Next: Plan, clarify and research first.