Skip to content

Pointing with @: the attach menu

In the Agent chat, typing @ opens a menu of things you can attach to the prompt. The @-attaches / /-runs split - @ pulls material into the context window, / invokes an action - is the grammar you already drilled in the daily-edit-loop chapter; this chapter assumes it and owns the authoritative @-mention inventory. Skills are the clearest example of /-as-action: shipped in Cursor 2.4, they’re either auto-selected by the agent or manually invoked by typing / in Agent chat and searching the skill name. Here’s the inventory of @-mention targets - what you can pull into the window. Note that Cursor 2.0 removed several older menu items (@Web, @Definitions, @Link, @Linter Errors) on the logic that the agent self-gathers that material now; if a tutorial tells you to @Web something, it predates 2.0. The current menu centres on:

  • @Files & Folders - attach a specific file, or a directory. A file puts that file, in full (within read limits), into the window - the most precise tool you have, for the moment you know exactly which file matters. A folder pulls in the folder’s relevant contents via the index rather than dumping every byte, so it’s your “this feature lives somewhere in apps/worker/, figure out where” move on budgetcli. (After selecting a folder you can type / to navigate deeper.) Files and folders share one menu entry - there is no separate top-level @File vs. @Folder. (source)
  • @Docs - search indexed documentation, including your own. Cursor lets you add doc sources (a library’s docs site) that it indexes, then @Docs pulls the relevant pages into the window - so the agent reasons about, say, the Next.js App Router from the actual current docs instead of its training-cutoff memory of them. (source)
  • @<rule-name> - attach a manual rule on demand. Cursor’s rule behaviors are commonly labelled Always, Agent Requested, Auto Attached, and Manual; exact labels can vary by release. A Manual rule sits dormant until you invoke it through the current rule affordance in chat. This is the one @-target that overlaps the rules system from the rules chapter. (source)

A worked example on budgetcli. You’ve decided the date-parsing bug lives in how the worker normalises an incoming transaction’s posting date, and you’ve found the docs you’ll need:

> the worker stores some transaction dates as the wrong year. fix the
normaliser. @apps/worker/src/normalise.ts @Docs date-fns
• Reading apps/worker/src/normalise.ts
• Pulling date-fns docs: parseISO, parse
normalise.ts calls parse() with the format string 'yyyy' but feeds
it a full ISO timestamp, so anything past January reads back as the
current year. Switching to parseISO() for ISO inputs and reserving
parse() for the known non-ISO feeds fixes it. Here's the diff…

Two hand-pinned attachments - the exact file, the exact library docs - and the agent never had to guess where the bug lived or how date-fns behaves. That’s pointing at its best: when you already know, telling the agent is faster and more reliable than making it search.

That whole inventory - the files, the folders, the docs, the manual rules - assumes you know what to attach. Cursor 2.0’s bigger change is that increasingly you don’t have to. Next: self-gathering and hand-pinning.