Recommended
Cursor Basics — Timed Test 1 (10 questions)
No account needed. Answers and explanations arrive when you submit.
What this topic tests
The mix every Cursor Basics set is built to, and the questions published against it so far. Nothing here is hidden before you start.
| Level | Target share | Published |
|---|---|---|
| Easy | 40% | 20 |
| Medium | 40% | 20 |
| Hard | 20% | 10 |
| Total | 50 |
Cursor Basics — the theory
What You Are Actually Installing
Cursor is an editor whose AI is the point rather than an extension bolted onto one. That framing matters on day one, because most of what surprises new users comes from treating it as "VS Code with a chat panel."
The install itself is ordinary: download, run the installer, open the app. On Linux the documentation sends you to your package manager first — apt or dnf — and falls back to extracting the AppImage or archive when your distribution has no package.
The Two Migration Surprises
If you are coming from VS Code, one fact will cost you an afternoon if you do not know it: Cursor uses the Open VSX extension registry, not the VS Code Marketplace. Cursor is a VS Code fork, so the assumption that every extension is one search away is reasonable and wrong. Some Marketplace-only extensions exist here as first-party builds instead — some Microsoft Marketplace-only extensions are replaced by audited Anysphere builds.
Your keybindings do come with you. Cursor uses the same default shortcuts as VS Code, plus shortcuts for AI features.
From JetBrains the shock is structural rather than cosmetic. Cursor uses a file-and-folder project model instead of JetBrains' project system — you open a folder, there is no project wizard — and language support comes from extensions rather than built-in plugins. An empty Python or Go experience is a missing extension, not a broken editor.
Rules Are Prompt Text, Not Configuration
Rules are how you give Cursor standing instructions, and almost every rule that "does not work" fails for one of four structural reasons rather than because the model ignored it.
First, rules are included at the start of the model context when they apply. They are prompt text, so length is a running cost on every request, not a free lookup.
Second, whether a rule applies at all is decided by its frontmatter. If alwaysApply is true, the rule will be applied to every chat session. Otherwise, the description of the rule will be presented to the Cursor Agent to decide if it should be applied. A rule set to apply intelligently with an empty description can never load — there is nothing to judge relevance against. A rule with no globs and no description is reachable only by mentioning it in chat.
Third, precedence runs in the opposite direction to most config systems. When rules conflict, precedence is: Team Rules > Project Rules > User Rules. Your personal preference loses to the repository, which loses to the team. And the sources do not replace one another — all applicable rules are merged; earlier sources take precedence when guidance conflicts.
Fourth, rules have a narrower reach than their name suggests. Rules do not impact Cursor Tab or other AI features, and User Rules are not applied to Inline Edit. A naming convention you want enforced in completions needs a linter, not a rule.
For simple cases skip the machinery: Cursor supports AGENTS.md in the project root and subdirectories, so a monorepo can scope instructions per package instead of paying for every convention in every conversation.
What The Agent Can And Cannot See
Two ignore mechanisms decide what reaches the model. Files ignored by git are also ignored by Cursor's indexing, so you rarely need to restate dependency folders, and an ignore rule you forgot is a common reason the agent insists a file does not exist.
The part worth memorising is the limit. Terminal commands and MCP tools run outside of Cursor's file access controls, so they may still be able to read ignored files. An ignore entry is a context-hygiene tool, not a security boundary. If a file must never reach a model, ignoring it is not sufficient.
Skills, MCP, And The Trust You Extend
Skills are the unit for a repeatable procedure. When Cursor starts, it automatically discovers skills from skill directories and makes them available to Agent — discovery is at startup, so a new skill appearing requires a restart, and the agent is presented with available skills and decides when they are relevant based on context. The description selects the skill; a vague one means it never fires. The dividing line against rules is worth stating plainly: use a rule when a short instruction is enough. Use a skill when Agent needs a detailed, repeatable process to follow.
MCP servers extend Cursor with outside tools. Configuration merges, and locality wins: both files are merged. If the same server name appears in both, the project-level config takes priority. After editing by hand you must save the file and restart Cursor. One server failing does not take the rest down — Cursor isolates server failures to prevent one server from affecting others.
Then the sentence to read twice before installing anything: remember that MCP servers can access external services and execute code on your behalf. The same caution applies to extensions, where the marketplace badge means less than people assume — verification confirms publisher identity, which is not a review of the code.
What It Costs, In Mechanisms Rather Than Numbers
Prices and model names change monthly; the mechanics do not. Included usage is consumed per token, not per message, so your model selection affects how quickly your included usage is consumed. It does not accumulate: usage resets monthly with your billing cycle. Unused usage does not roll over. A spend limit is a hard stop rather than a throttle — when a limit is reached, AI features stop for that user until the next billing cycle.
Bringing your own API key changes less than people expect. Custom API keys only work with chat models. Tab completion continues using Cursor's built-in models, the traffic still goes through Cursor's infrastructure, and if your team depends on zero data retention the guidance is explicit: if your team relies on Zero Data Retention, use Cursor's built-in models instead.
When It Breaks, Suspect The Network
Three failures account for most "the AI stopped working" reports, and none of them is the model. Cursor uses HTTP/2 for streaming responses. Some corporate proxies (like Zscaler) block HTTP/2. Over a remote connection the requests do not come from where you think: when using Cursor's Remote SSH extension, AI features run on your local machine and communicate with the remote server for file access. And a disconnected VPN can leave its settings behind, because Cursor can inherit DNS settings from a previously active VPN.
If you do report a bug, know that the privacy setting is captured at submission: Privacy Mode is per-request. Changing your privacy setting does not retroactively affect previous requests.
Where to Go Next
Cursor AI Features picks up where this page stops: what the AI actually does once the setup above is in place — Tab, Inline Edit, Agent and its modes. MCP Fundamentals covers the protocol underneath the servers configured here, rather than Cursor's particular way of loading them. And if you are weighing agentic editors against one another, Claude Code Basics is the same ground in a terminal-first tool.
Sample questions
Three questions from this topic, with the answer and the reasoning shown.
Q1EasyA company keeps its shared Cursor rules in a private internal GitHub repository, and each team copies the files into their own projects by hand. What does Cursor's remote rule import support?
- Import from public GitHub repositories only, so internal conventions still have to be copied by hand.
- Import from any GitHub repository you have access to, private ones included, then pulled and synced.Correct
- Import from any repository, provided a personal access token is first pasted into the workspace settings file.
- Import from private repositories only once an administrator mirrors them into the team marketplace catalogue.
Explanation
The principle — Cursor can import rules directly from any GitHub repository you have access to, public or private. It scans the repository for rule files and places them in an imported folder under the project's rules directory.
Why the key is correct — A private internal rules repository is exactly the intended case. Importing it makes one repository the source of truth and lets Cursor pull and sync the rules, instead of hand-made copies that drift the moment the original is edited.
Why the others are wrong — The public-only reading is what keeps teams copying files by hand. No token needs pasting into a workspace settings file; access follows the GitHub account you already hold. And marketplace mirroring is a separate path with no part in importing rules.
Remember this — Point Cursor at the private rules repository instead of copying files.
Sources — Cursor's Rules documentation.
Q2EasyA developer copies `api.mdc` into a nested folder and edits the copy, expecting the nearer file to replace the original. What happens once both rules' conditions match?
- The nearer copy shadows the original, in the way a nearby config file overrides an outer one.
- Cursor reports a name collision and holds both files back until one of them has been renamed.
- The file with the more recent modification time wins, and the older copy is skipped for that conversation.
- Both rules apply, because Cursor identifies a rule by its full file path rather than its name.Correct
Explanation
The principle — Cursor identifies a rule by its full file path, not by its filename alone. Two rules with the same filename in different folders both apply if their conditions match.
Why the key is correct — The copy does not displace the original. Both files are injected into context, so the developer now carries two sets of instructions, and wherever the copy contradicts its original, Agent is handed both.
Why the others are wrong — The shadowing instinct comes from config cascades, where a nearer file overrides an outer one, and the rules system has no such override. Nothing is held back pending a rename. And modification time has no bearing on loading, so the older copy is still very much active.
Remember this — Copying a rule adds it; to replace one, edit or delete the original.
Sources — Cursor's Rules documentation.
Q3EasyA developer moves from VS Code to Cursor, imports their settings, then searches the Extensions panel for a tool their workflow depends on and finds nothing. Why is it absent?
- The import step transfers themes and settings alone, leaving extensions to be reinstalled by hand.
- Cursor installs from the Open VSX registry, so a Marketplace-only extension has no listing there.Correct
- Extension search stays empty until the editor finishes indexing, so the listing appears a while later.
- Cursor suppresses extensions whose features overlap its own AI tooling, removing them from search results entirely.
Explanation
The principle — Cursor is a fork of VS Code, but it does not draw on the same extension catalogue. It installs from the Open VSX registry, which overlaps heavily with the VS Code Marketplace without matching it.
Why the key is correct — An extension published only to the Marketplace has no Open VSX listing, so searching for it inside Cursor returns nothing. The install is healthy; the catalogue behind the panel is simply different.
Why the others are wrong — The import carries extensions across as well as themes and settings, so it is not limited to appearance. Search results are not withheld while a local index builds. And nothing strips competing assistants out of the listing.
Remember this — A missing extension usually means it was never published to Open VSX, so look for an alternative.
Sources — Cursor's Migrate from VS Code help page.
Practise all 50 questions
Every published question in Cursor Basics, with its answer and explanation.
- A company keeps its shared Cursor rules in a private internal GitHub repository, and each team copies the files into their own projects by hand. What does Cursor's remote rule import support?easy
- A developer copies `api.mdc` into a nested folder and edits the copy, expecting the nearer file to replace the original. What happens once both rules' conditions match?easy
- A developer moves from VS Code to Cursor, imports their settings, then searches the Extensions panel for a tool their workflow depends on and finds nothing. Why is it absent?easy
- A developer refines a set of project rules locally, but the `.cursor/rules` folder sits in the repository's ignore list. Why does Agent keep ignoring those conventions for their teammates?easy
- A freshly installed Cursor opens a Python repository and offers no completion, no go-to-definition and no type checking. What has to happen before those features work?easy
- A JetBrains user opens Cursor expecting a New Project wizard before they can work on a multi-module repository, and finds no such step. How should they proceed?easy
- A large project organises its rules into subfolders under `.cursor/rules` by area of the codebase. What happens to a rule file sitting two folders deep?easy
- A monorepo team keeps every package's conventions in one root `AGENTS.md`, so all of it enters context in every conversation. Where else may an `AGENTS.md` file be placed?easy
- A pipeline captures the Cursor CLI's text output format and keeps it as the record of what the agent did. Which content actually appears in that output?easy
- A repository carries a project-level Cursor CLI config file that sets a model, Vim mode and a sandbox option alongside some permissions. Which of those settings actually take effect?easy
- A rule meant to auto-attach for both `.md` and `.mdx` files under `docs/` never attaches to anything. How should the two patterns be written in the rule's `globs` field?easy
- A script runs the Cursor CLI in non-interactive print mode against a real checkout, with no permission rules configured. What is the agent able to do to the files there?easy
- A team lists a large generated folder in .cursorignore. What effect does that entry have on how Cursor works with those files?easy
- After a corporate VPN is disconnected, every other application resolves hostnames normally, but Cursor's agents keep failing with DNS errors and reloading the window changes nothing. What clears it?easy
- An unattended Cursor CLI run needs the agent to fetch a documentation page from the web. What happens when no web fetch permission entry covers that domain?easy
- Midway through the month, Tab suggestions stop appearing for a developer on the free Hobby plan. No error is shown and the rest of the editor works. What is the likeliest cause?easy
- Running the Cursor CLI login command over SSH on a headless machine appears to hang with no visible progress. What is that command trying to do?easy
- Sandbox mode is switched off through the Cursor CLI's interactive sandbox menu to get one stubborn build working. What state is that setting in the next time the CLI starts?easy
- Shell Mode in the Cursor CLI checks each command before it runs. Which statement matches how allowlisting and admin policies behave there?easy
- Signing in to Cursor on a brand-new laptop, a developer finds their personal style preferences already shaping Agent's replies, though the cloned repository holds no such rule. What explains it?easy
- A developer is setting up the Cursor CLI on their own laptop for everyday interactive work, and would rather not leave a long-lived secret sitting in a shell profile. Which authentication approach matches what Cursor recommends for that situation?medium
- A developer's User Rule asks for one convention, the repository's project rules ask for another, and an enabled Team Rule asks for a third. Which source does Agent follow where the guidance conflicts?medium
- A marketplace plugin bundles rules, skills, subagents, commands, MCP servers and hooks, but a developer wants only the single hook it ships. What does Cursor's extension model allow here?medium
- A team admin sets a spend alert at a low threshold and expects an early warning email, yet nothing arrives while the month's included usage is steadily consumed. What decides when that alert fires?medium
- A team has set every file in `.cursor/rules` to Always Apply, so each conversation opens with the whole rule set whatever files are being edited. Which alternatives describe how a project rule can otherwise reach Agent?medium
- A user hits a bug while Privacy Mode is on, switches the setting to Share Data, then sends support the request ID from that original conversation. What can support see, and what should the user do?medium
- Agent Execution Timed Out keeps appearing on a managed work laptop. Rephrasing the prompt and starting fresh chats changes nothing. What does the message indicate, and where should the investigation go?medium
- An admin adds a Team MCP server to the Default team marketplace and tells the engineering channel that the server is rolled out. Within an hour, several developers reply that its tools are missing from chat. What best explains this?medium
- An enterprise admin adds an MCP server to the MCP Allowlist in the Cursor dashboard and tells the team it is rolled out. What has that step actually done for the team's developers?medium
- An extension is listed and downloadable on open-vsx.org, yet searching for it in Cursor's Extensions panel returns nothing at all. Which conclusion is best supported?medium
- Halfway through a billing cycle, a team running Auto in Intelligence mode finds its included usage nearly exhausted although request volume matches previous months. What explains this, and what can be adjusted?medium
- Migrating from VS Code, a developer depends on an extension that is published only on the Microsoft Marketplace, and it is missing from Cursor's Extensions panel. What is the most dependable way to get the same capability?medium
- On an Enterprise plan, a tight team-wide spend limit is set while several members already carry a more generous group override. Which limit governs those members?medium
- Sending the same kind of prompt through Auto, a developer switches the optimisation mode from Cost to Intelligence and watches the per-request charge rise sharply. What accounts for the difference?medium
- Tab completions behave erratically for a developer who imported a VS Code profile: suggestions flicker, get replaced mid-typing, and a familiar shortcut now fires the wrong command. Which step should come first?medium
- While troubleshooting a noisy setup, you toggle one MCP server off from Customize. What happens to that server and to the tools it exposes?medium
- While working through a hard refactor on Auto, a developer wants one specific model to handle that single request. Which control does Cursor actually expose here?medium
- With five MCP servers configured, the Agent keeps reaching for an issue-tracker tool in the middle of an unrelated refactor. What does that behaviour reflect, and which lever changes it?medium
- You add a new SKILL.md under .cursor/skills/ while Cursor is running, then type / in chat and find the skill missing from the list. Rewriting the file twice changes nothing. What explains it?medium
- You maintain a plugin that packages a code-review skill and an MCP server against the vendor-neutral Agent Plugins specification. Cursor users are asking for it, and you would also like the bundle to ship a shared rules file. How should you proceed?medium
- A developer adds .env.production to .cursorignore and treats it as sealed off from the model. During debugging, the Agent runs a terminal command that prints the file, and a database MCP tool reads it as well. What does this reveal about the guarantee an ignore file gives?hard
- A developer spends an afternoon editing ~/.cursor/mcp.json to fix a misbehaving server, with no visible change, and is also surprised to see servers in chat that the project file never mentions. The project's .cursor/mcp.json defines a server under the same name. What is happening?hard
- A developer writes a secret-scanning hook for one repository and defines it in the home directory hooks file. Colleagues who copied the setup now report it firing while they work on unrelated projects and blocking commands there. What is the right correction?hard
- A long agent run reaches a newly installed MCP server and appears to stall: the chat shows the tool name, no result arrives, and no error is logged. Which explanation best fits Cursor's default behaviour?hard
- A team adds a sessionStart hook that checks whether the developer has accepted the current usage policy and returns a refusal for anyone who has yet to accept it. They expect new conversations to be blocked until the check passes. What actually happens?hard
- A team encodes a twelve-step deploy procedure as an always-applied rule. Unrelated conversations now carry the whole procedure as context, and the Agent treats the steps as background guidance rather than something to execute. What is the right correction?hard
- An author writing a skill pastes every reference table, schema and worked example into SKILL.md so that nothing can be missed. A reviewer objects that this will cost context in conversations that barely touch the skill. Which account of how skills load supports the reviewer?hard
- In a monorepo, a deploy skill lives at apps/web/.cursor/skills/deploy-web/SKILL.md and its frontmatter sets no paths field. The skill never surfaces while the Agent is working on files under apps/api. What accounts for that?hard
- In a repository whose .gitignore already excludes node_modules/, dist/ and the build output, a developer copies all of those patterns into .cursorignore as well, and separately cannot get Agent to find a generated file that git ignores. What explains both observations?hard
- Your beforeShellExecution hook scans commands for credentials and behaved correctly in testing. You then add a line that echoes progress text to stdout ahead of the JSON response, and from that point risky commands run unchallenged. What is happening?hard
Frequently asked
What people ask about cursor basics.
Why can I not find a VS Code extension I rely on?
My rule is in .cursor/rules but Agent ignores it. Why?
Why does my personal rule lose to the project's?
Does .cursorignore keep a secret out of the model?
I edited mcp.json and the server never appeared. What did I miss?
Does bringing my own API key make Cursor cheaper and more private?
More Cursor topics
Related guides
How it works · 10 min read
What Cursor actually looks at when you ask it something
Indexing says synced, the file is open, and Cursor still answers as if your code does not exist. Follow one request end to end: what gets attached, what gets injected, what the agent decides to search for, what three ignore files remove, and what gets compressed away.
Troubleshooting · 8 min read
Why Cursor is ignoring your rules file
A rule that sits in .cursor/rules and does nothing fails silently, and Cursor publishes no way to see which rules were applied. Ten causes with distinct fingerprints: the type you get by leaving fields blank, the .md that is invisible, and the team rule that outranks you.