Context (@) and snaps
@ sets a search's context: begin the query with one or more @ tokens — each names territory to search, a
time range, or a vertical — and everything after them is the query. A snap is your own saved @ code: a named
group of sites, or a shortcut to one of your views, so you never type site: lists
by hand.
Using a context
Put the @ tokens first; the rest is the query:
@docs middleware pipeline → your saved "docs" sites
@week ai funding → results from the past week
@arxiv.org diffusion models → arxiv.org only — no setupAn @ token can be:
- A snap — your saved code. A site-group snap scopes the search to all of its domains at once (an
ORofsite:filters); a view snap switches the view it names on for the search. - A view — every view, built-in or yours, activates by its slug (
@academic,@programming) or by the shorter alias you give it on its edit page. - A time range —
@hour,@day,@week,@month,@year, with short forms@h,@d,@w,@y, and@24for the last 24 hours. - A vertical —
@images,@news,@videos,@shopping(short forms@img/@image,@vid/@video,@shop) — these switch the whole page, exactly like clicking the vertical's tab. - An ad-hoc domain — any token with a dot, like
@microsoft.com, restricts this one search to that site. Nothing to set up, nothing saved.
An unknown @ token ends the prefix and stays in the query as literal text — an email address or a typo never
breaks the search.
A snap @docs covering learn.microsoft.com and developer.mozilla.org turns:
@docs fetch apiinto a search for fetch api across those two sites alone — equivalent to:
fetch api (site:learn.microsoft.com OR site:developer.mozilla.org)Stacking contexts
Contexts stack. Each further token adds territory, so tokens side by side read as or:
@docs @stackoverflow.com fetch api → the docs sites, plus stackoverflow.com
@news @day election → the news vertical, last 24 hoursA standalone time code applies to the whole search — and overrides the time range of any active view. A vertical always switches the whole page. When several site-scoped contexts run at once, each applies its own scope and the merged results interleave — see views for how that works.
AND-groups with +
Join parts with + and all of them must hold at once — one conjunctive group:
@docs+week rust async → the docs sites AND the past week
@academic+microsoft.com llm → the Academic entries that fall under microsoft.com
@docs+month @so http client → (docs AND past month), plus your "so" snapA few firm rules:
- Separate tokens are still a union:
@a+b @creads (a and b) or c. - Domain parts intersect, suffix-aware —
@academic+microsoft.comkeeps the Academic entries undermicrosoft.com, subdomains included. - A time code inside a group scopes only that group; two time codes in one group resolve to the shorter.
- A group whose parts can't be satisfied together — no shared sites, conflicting scopes — is skipped, and the results page tells you so plainly. You never get a silent empty search.
Codes that contain +
A snap code may itself contain + — say, c++. The token you type is matched against your saved codes first,
before + is read as the group joiner, so @c++ move semantics simply uses your c++ snap. There is no escape
syntax, and none is needed.
Managing snaps
Create, edit, mute, and delete snaps under
Settings → Search Control → Snaps. A snap needs a code (lowercase
letters, digits, hyphens, and +) and either one of your views or a list of domains — up to 24. The code
is normalized automatically, so @My-Docs and @my-docs are the same snap. Muting a snap takes its code out of
service without deleting anything; deleting one asks you to confirm and can be undone for a short while
afterwards.
The built-in context codes are reserved — @day, @news, and the rest can't be claimed as snap codes.
A view's Activation code, on its edit page, is this same machinery seen from the other side: an @ alias
backed by a snap.
Snaps vs. bangs vs. views
The two sigils split the work. @ sets context — where, when, and what kind of results — and stays on Suede;
! goes, handing the query to another site outright. A
view is the richer bundle behind many @ codes — ranking rules, filters, a
layout — while a snap is the short code in front; a plain site-group snap needs no view at all. If a query carries
both a route bang and @ context, the route wins and the context is dropped — an external engine can't honor it.
Coming from DuckDuckGo or Kagi? Turn on Bang compatibility — described under
Bangs — and your @ codes fire as ! codes too.