GET /new — Deep Link Endpoint
https://claude.ai/new is a client-side navigation endpoint that opens a new chat session. All parameters are passed as query string parameters and are processed entirely in the browser.
Query Parameters
q
Type: string
Pre-populates the prompt input with the provided text.
The value is run through a prefill safety check before being set. If the prompt matches a known pre-approved prefill (checked via /prefills), it is inserted as trusted; otherwise it is flagged as unsafe and may trigger the untrusted prompt modal (see error and the claudeai_unsafe_prompt_inline flag). URL-encode the value.
/new?q=Summarize%20the%20key%20points%20of%20this%20document
skill-name
Type: string
Injects a skill name into the prompt template.
Acts as a template variable for q. Any occurrence of the literal string {skill-name} inside the q value is replaced with the value of skill-name before the prompt is set. Designed for launching skill-specific workflows with a pre-built prompt.
/new?q=Use+%7Bskill-name%7D+to+build+a+DCF+model&skill-name=anthropic-fsi-dcf-model-builder
If the referenced skill is not enabled, a confirmation modal is shown asking the user to enable it before proceeding.
project
Type: string (UUID)
Opens the new chat scoped to the specified project.
Accepts a project UUID. The client fetches the project record and calls setProjectUuid(), associating the new conversation with that project. Has no effect if the user does not have access to the referenced project or if a temporary (incognito) conversation is already active.
/new?project=019c7b74-b6b6-72f2-91aa-4fc63b99a367
model
Type: string
Pre-selects a model for the conversation.
Accepts a model identifier string (e.g. claude-opus-4-5). Only applied when the model_selector_enabled feature flag is active for the account. Can be combined with thinking=extended to also enable extended thinking if the selected model supports it.
/new?model=claude-opus-4-5
thinking
Type: string (enum)
Enables extended thinking mode.
Currently the only meaningful value is extended. Applied only when used together with a model that supports paprika/extended-thinking mode. If the model does not support it, the parameter is silently ignored.
/new?model=claude-opus-4-5&thinking=extended
attachment
Type: string
Injects a text attachment into the new conversation.
The raw string value is wrapped into a synthetic file attachment with file_name: "artifact", file_type: "text", and origin: URLParameter. Intended for passing content (e.g. from a browser extension or external tool) directly into the chat without a file upload. There is no size validation client-side, but very large values will produce unwieldy URLs.
/new?q=Review+this&attachment=Hello%2C+this+is+my+pasted+content
error
Type: string
Displays an error toast on page load.
The value is URL-decoded and shown as an error notification. One special-cased value exists: teams_no_remix, which is mapped to a human-readable message explaining that Teams accounts cannot remix public artifacts.
/new?error=teams_no_remix
/new?error=Something%20went%20wrong%2C%20please%20try%20again
mode
Type: string
Controls sidebar/routing mode.
When present, suppresses automatic redirect behavior that would otherwise send the user to /task/new (task mode) or /claude-code-desktop (code mode) based on their stored sidebar preference. In other words, mode locks the destination to the standard chat UI regardless of user preferences.
The presence of the key matters more than its value — has("mode") is checked, not get("mode").
/new?mode=chat
incognito
Type: string (flag)
Presence suppresses mode-based redirects, same as mode.
Checked via .has("incognito") alongside mode. When either is present the router skips the task/code-mode redirect logic. Distinct from the incognito mode toggle in the UI (which is stored in component state, not the URL).
spotlight
Type: string (enum)
Renders a special overlay UI on the home screen.
| Value | Behavior |
|---|---|
memory | Shows the Memory spotlight component (requires the memory feature to be available for the account) |
wiggle_egress | Shows the Wiggle egress UI |
Any other value results in no overlay being rendered.
/new?spotlight=memory
modal (utility)
Type: string
Opens a named modal by query param.
Used internally by the useQueryParamModal utility to sync modal open/closed state with the URL. Not intended as a primary deep-link surface.
debug_show_all_prompt_chips (internal)
Type: flag
Forces all prompt category chips to render regardless of user profile.
Checked via .has(). Development/debugging aid; has no meaningful effect in production for standard accounts.
Combining Parameters
All parameters are independent and composable. A fully-loaded deep link might look like:
https://claude.ai/new
?project=019c7b74-b6b6-72f2-91aa-4fc63b99a367
&q=Build+a+DCF+model+using+%7Bskill-name%7D
&skill-name=anthropic-fsi-dcf-model-builder
&model=claude-opus-4-5
Notes
- All processing is client-side. There is no server-side validation of these parameters.
- Parameters are read once on mount via
useSearchParams(). Changing the URL after mount has no effect without a full navigation. - Authenticated session required. Unauthenticated users are redirected to login before parameters are processed.
- The
projectUUID is validated by fetching the project record; an invalid or inaccessible UUID will silently fail to set the project context.