This article is published in English.
Beyond Tab and Cmd+K: Configuring Cursor for Context, Safety and Scale
A grouped tour of lesser-used Cursor features, from scoped rules and @ context to auto-run allow lists, checkpoints and background agents, and when each one pays off.
Most developers learn three Cursor features in their first hour: Tab for completions, Cmd+K (Ctrl+K on Windows and Linux) for inline edits, and the chat panel for questions about open files. Many never revisit the settings after that, which leaves the features that most affect speed and safety unused. This guide groups fifteen of those deeper features by the problem they solve: editing faster, giving the model the right context, choosing the right mode, keeping autonomous runs safe and scaling beyond one repository. Cursor changes quickly and some features have been renamed, merged or retired between releases, so treat names and menu locations as a starting point and confirm them against the current Cursor documentation.
Faster edits in the editor and terminal
Tab predicts your next edit, not just the next token
Tab is often treated as a smarter autocomplete, but it works differently. It takes your recent changes across the file into account, not only the text at the cursor, and predicts the next edit you are likely to make somewhere else in that file. If you rename a variable at the top of a component or widget, Tab will frequently jump ahead and propose renaming its later uses before you have scrolled to them. Accepting a chain of these predictions is often faster than a find-and-replace, because Tab also adapts surrounding code rather than swapping strings blindly.
Cmd+K also works in the integrated terminal
The inline-edit shortcut is not limited to the editor. Inside Cursor's built-in terminal, you can describe the shell command you need in plain language and it generates the actual syntax. That is handy for commands whose flags you never quite remember, such as git rebase --onto. Read the generated command before pressing Enter, especially when it touches history or deletes files.
Giving the model the right context
The quality of an answer depends heavily on what the model can see. Several features exist purely to control that.
@Codebase searches the whole indexed project
Mentioning @Codebase in a prompt makes Cursor look through the full project index for related files, so it is not limited to whatever tabs happen to be open. In a mobile app with fifteen widget files, that is the difference between the model guessing at your state management approach and actually locating the provider you already wrote. In newer versions the agent may search the codebase on its own without the explicit mention, so check how your version behaves.
@Docs indexes third-party documentation
You can point Cursor at a library's documentation site and have it indexed for use in chat. When adopting a new package, this beats pasting documentation pages into the conversation every time a question comes up, and it keeps answers anchored to the library's actual API rather than the model's memory of it.
@Web lets a session check its own claims
When the model asserts something about an API or version with more confidence than seems justified, @Web triggers a live search rather than forcing you to verify it in a browser. It does not replace reading official docs, but it is a fast way to catch an invented method name before it lands in your code.
Scoped rules in .cursor/rules
A lone .cursorrules file in the repository root is still supported, yet the more recent layout is a .cursor/rules directory containing .mdc files, each scoped to particular file patterns. That lets one repository carry separate rule sets, for example one for Flutter widgets and another for Python scripts, instead of a single oversized file that tries to cover everything and dilutes every instruction. Keeping rules short and targeted also leaves more of the context window for your code.
Notepads for reusable context
A Notepad is a saved block of context, such as architecture notes, a feature specification or reusable snippets, that you pull into any chat or Composer session with @. Rather than restating "this project uses Riverpod for state and Supabase for the backend" at the start of every session, you write it once and reference it. Notepads have been reworked in recent Cursor releases, and rules or project documentation files can serve the same purpose, so use whichever mechanism your version supports.
.cursorignore keeps the index clean
.cursorignore works like .gitignore, but for what Cursor indexes and searches. Build output, generated code and vendored dependencies all pollute @Codebase results if they are not excluded. A bloated index is not merely slower; it also makes the model more likely to cite stale generated files instead of your real source. Add ignore entries early, ideally mirroring the paths already in .gitignore.
Choosing the right mode for the task
Composer versus Agent mode
These are different tools. Composer handles a narrow multi-file edit and shows a diff for you to review before anything is applied. Agent mode runs an extended loop: it reads the codebase, edits files, runs terminal commands, inspects the output and continues until the task is finished or it gets stuck. Treating them as interchangeable leads to two opposite mistakes: not using Agent mode for large refactors where it shines, and using it for a change that only needed one clean, reviewable diff.
Ask mode when nothing should change yet
Ask mode is a plain conversation in which Cursor answers questions and reasons about your code with no route to editing it. It is separate from the read-only planning step Agent mode may perform. Use it during exploration, such as investigating a subtle bug, when you want an honest analysis without the conversation drifting into an edit you did not request.
Keeping autonomous runs safe
Auto-run with allow and deny lists
The mode long known as YOLO mode (later versions describe it in terms of auto-running commands) is not a simple on/off switch. You configure an allow list of commands, such as npm test or flutter analyze, that run without confirmation, and a deny list, such as rm -rf or git push, that always requires your approval. Define the deny list before you populate the allow list. Skipping that order is how an unattended agent turns into a long afternoon of recovery. Also remember that a deny list matches patterns: commands can be chained or wrapped in scripts, so the list reduces risk rather than eliminating it.
Restore Checkpoint for partial rollbacks
Cursor records checkpoints of your codebase at points during an agent run. If most of an agent's changes are good but a few broke the build, Restore Checkpoint returns you to a specific earlier state without a manual comparison of files. It sits in the Composer or chat history view, which is why many people never discover it. Checkpoints are a convenience, not a substitute for version control, so keep committing meaningful states to Git as well.
Background agents for well-defined chores
Instead of watching the agent work, you can hand a bounded task to a background agent and return later to a pull request. Good candidates are dull, clearly specified jobs such as upgrading a dependency, fixing lint errors across a repository or adding type hints to an old module. Anything you cannot describe precisely in a single message is a poor fit, because nobody is there to answer the agent's questions midway.
Working beyond a single repository
MCP connects Cursor to external systems
The Model Context Protocol lets Cursor query external tools, including ticketing systems, internal APIs and databases, directly during a session, which removes the manual copy-and-paste step. Teams that already run MCP servers for Claude Code or another client can often reuse them in Cursor. Grant each server only the access it needs, since the agent can act through whatever it is connected to.
Multi-root workspaces span several repositories
When an app talks to a backend that lives in its own repository, a multi-root workspace lets Cursor see both at once, so you are not switching windows whenever a change touches both sides. For systems built as connected services rather than a monolith, this alone is worth the setup time, because the model can follow an API contract from client to server.
Key takeaways
- Context features matter most:
@Codebase,@Docs, scoped rules, reusable notes and a clean.cursorignoredecide what the model actually sees. - Match the mode to the job: Composer for a reviewable diff, Agent mode for long multi-step work, Ask mode for analysis with no edits.
- Configure safety before autonomy: write the deny list first, know where Restore Checkpoint lives and keep committing to Git.
- Delegate only tasks you can fully specify to background agents.
- Expect feature names and locations to shift between releases, and verify against current documentation when something seems to be missing.