Create, monitor, organize, and resume persistent coding-agent sessions in Xirp.
A session is a persistent terminal running a coding agent. It can belong to a project and worktree, or run as a general session without project context.
Create a session
Select the + button at the top of the sessions panel to choose a project or a general session.The full session form lets you:
Describe the goal
Select a coding agent (Claude Code, Codex, Gemini CLI, Pi, or Cursor)
Use the main checkout or create a new Git worktree
Attach screenshots to the initial prompt
Override supported per-session agent options
Start in the foreground or background
Write a goal that describes the intended outcome, relevant constraints, and how you will recognize completion. Xirp sends the goal to the selected agent as its initial prompt.
Work with the terminal
The session page is a full interactive terminal. The toolbar shows the project, session, branch, context-window use, worktree, selected agent, and session controls.You can:
Type and respond exactly as in the native coding-agent CLI
Change to another installed coding agent during a session
Open the worktree in an external terminal or editor
Browse files and review Git changes without leaving the session
Open an inline code review panel for diffs
Open a browser panel (Cmd+Shift+B) alongside the terminal and annotate page elements to send comments to the agent
Use voice input (Cmd+J) to dictate prompts
Review agent responses passage by passage and send selected passages back as a follow-up
Copy an agent response with the hover action
Insert a saved prompt from the prompt palette (Cmd+Shift+;)
Split the terminal into multiple panes to run commands side-by-side
Fork a conversation to explore another approach
Open a linked shell in the same worktree, or create one from the CLI with xirp session new-terminal
Open a standalone project terminal without starting a coding agent (Ctrl+Shift+T)
Cmd+click a file path in terminal output to open it in the built-in editor
Take a screenshot of the current window to your clipboard (Cmd+Shift+X)
Stop or close a session
Agent permission bypasses and autonomous modes can allow file changes, shell
commands, and network calls without confirmation. Use the native agent’s
sandbox and permission controls, and prefer disposable worktrees for risky
tasks.
Session status
With session hooks enabled, Xirp distinguishes common states:
Working: the agent is processing the task.
Idle: the agent is ready for input.
Waiting: the agent needs a response or permission decision.
Queued: the session is waiting for a parent session to complete.
Completed: the session finished successfully.
Failed: the underlying process ended with an error.
Status indicators appear in the minimap and project overview. Notifications can alert you when a background session needs attention.
Workflow status
Sessions can also carry a workflow status — backlog, in progress, in review, done, or blocked — to track where a task sits in your development cycle. You can group and sort sessions by workflow status. Turn this on under Settings > Sessions > Workflow.
Use worktrees for parallel work
A new-worktree session receives its own Git branch and checkout. Use one worktree per independent task when several sessions may change the same repository.Before deleting a worktree, review uncommitted changes and confirm whether Xirp should also remove its branch. Closing a session and deleting a worktree are separate actions.
Grid view
Grid view places multiple live terminals in one window. Open it with Cmd+G, then add sessions from the minimap.You can resize the grid, focus a pane, maximize a session, group sessions by theme, and filter by project. Each pane remains interactive.
Find and navigate sessions
Select a minimap card to focus a session.
Press Cmd+Left or Cmd+Right to move between sessions.
Press Cmd+Shift+K to open the recent-session switcher.
Press Cmd+K to search projects, sessions, views, and actions.
Press Cmd+/ to see all shortcuts.
Saved prompts
Save prompts you use often and recall them from a searchable palette (Cmd+Shift+;). Select a prompt to insert it into the active session. Prompts can be global or scoped to a project.
Upload a session to Portal
Any session can be uploaded to a connected Portal Workspace. The upload button on the session toolbar names the workspace it sends to. A menu beside it lets you pick a different workspace or create a new one. Uploading shares the transcript with authorized Workspace members and makes it available as context for future sessions.Review the transcript before uploading. Workspace permissions control who can access it. See Launch and share Xirp sessions.
Command-line tool
Xirp installs an xirp command alongside the desktop app. From your terminal or from a coding agent you can:
Import sessions from Claude and Cursor into Xirp
List and message running sessions
Create a linked shell terminal for an existing session (xirp session new-terminal)
Upload transcripts to a Portal Workspace
Run xirp --help for the full command reference.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Spotify for Backstage","colors":{"primary":"#34baa2","light":"#9af0e1","dark":"#91eeda"},"logo":{"light":"https://mintcdn.com/spotify-89f50c35/24doFeqc-xIrJKxF/static/logo/light.svg?fit=max\u0026auto=format\u0026n=24doFeqc-xIrJKxF\u0026q=85\u0026s=e7c3376851f302fc6d1308df15deb771","dark":"https://mintcdn.com/spotify-89f50c35/24doFeqc-xIrJKxF/static/logo/dark.svg?fit=max\u0026auto=format\u0026n=24doFeqc-xIrJKxF\u0026q=85\u0026s=a4e4bd6c0b855fc5959169face3701e1","href":"/"},"favicon":"https://mintcdn.com/spotify-89f50c35/6C5KyJhdlFRgXnE0/static/favicon.ico?fit=max\u0026auto=format\u0026n=6C5KyJhdlFRgXnE0\u0026q=85\u0026s=78c7096e52c0a4493c1d4b76355d22d9","api":{"playground":{"display":"simple"}},"appearance":{"default":"dark"},"navbar":{"links":[{"href":"https://backstage.spotify.com/contact-us/try-portal/","label":"Try Spotify Portal"}],"primary":{"type":"button","label":"Log in","href":"https://backstage.spotify.com/login/"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/showcase/spotify-r\u0026d","x":"https://twitter.com/spotifyeng","youtube":"https://www.youtube.com/@SpotifyRnD","instagram":"https://www.instagram.com/lifeatspotify","facebook":"https://www.facebook.com/spotify"},"links":[{"header":"Learn More","items":[{"label":"Go to backstage.spotify.com","href":"https://backstage.spotify.com"},{"label":"Explore the demo","href":"https://demo.backstage.io/catalog"},{"label":"Partner interest form","href":"https://backstage.spotify.com/interested-in-partnering"}]},{"header":"News \u0026 Updates","items":[{"label":"Read our blog","href":"https://backstage.spotify.com/blog"},{"label":"Subscribe to newsletter","href":"https://spoti.fi/backstagenewsletter"},{"label":"Portal system status","href":"https://status.spotifyportal.com"}]},{"header":"Community","items":[{"label":"Join the community","href":"https://github.com/backstage/community"},{"label":"Get Backstage Certified","href":"https://www.cncf.io/training/certification/cba"}]},{"header":"Legal","items":[{"label":"Security","href":"https://backstage.spotify.com/security"},{"label":"Privacy Policy","href":"https://backstage.spotify.com/spotify-for-backstage-terms/privacy-policy"},{"label":"Cookies","href":"https://www.spotify.com/legal/cookies-policy"},{"label":"Terms of Service","href":"https://backstage.spotify.com/terms-of-service"},{"label":"Trademark Usage","href":"https://www.linuxfoundation.org/legal/trademark-usage"}]}]},"seo":{"metatags":{"canonical":"https://backstage.spotify.com/docs"}},"fonts":{"heading":{"family":"Circular Sp","source":"https://mintlify-assets.b-cdn.net/fonts/CircularSpTitle-Bold.woff2","format":"woff2"},"body":{"family":"Circular Sp","source":"https://mintlify-assets.b-cdn.net/fonts/CircularSp-Book.woff2","format":"woff2"}},"styling":{"codeblocks":{"theme":{"light":"github-light","dark":"dracula"}},"latex":false},"integrations":{"gtm":{"tagId":"GTM-58S6R55"},"telemetry":{"enabled":false}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Contact us","icon":"headset","href":"https://backstage.spotify.com/contact-us/talk-to-us/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"spotify-89f50c35","hasAudioNarration":false,"actualSubdomain":"spotify-89f50c35","customDomains":["backstage.spotify.com"],"gitSource":{"type":"github","owner":"backstage-external","repo":"spotify-for-backstage-docs","deployBranch":"main","contentDirectory":"public","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af70fd85dcd64e14d2edac9","clientVersion":"0.0.4142","searchFilterCounts":[{"language":"default","tag":"Portal","count":140},{"language":"default","tag":"Plugins","count":111},{"language":"default","tag":"Soundcheck","count":88},{"language":"default","tag":"Portal Features \u0026 Plugins","count":88},{"language":"default","tag":"API Reference","count":45},{"language":"default","tag":"Integrations","count":35},{"language":"default","tag":"Guides","count":34},{"language":"default","tag":"Core Concepts","count":31},{"language":"default","tag":"Checks","count":19},{"language":"default","tag":"Fact Collectors","count":16}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"backstage-support@spotify.com","showHelpButton":true}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":"body{--font-jetbrains-mono:\n 'JetBrains Mono', SF Mono, SFMono-Regular, Menlo, Monaco, Cascadia Mono,\n Segoe UI Mono, Roboto Mono, Oxygen Mono, Ubuntu Monospace, Source Code Pro,\n Fira Mono, Droid Sans Mono, Consolas, Courier New, monospace}#topbar-cta-button svg path{stroke:#000000}#topbar-cta-button span{color:#000000}#content:has(.video-overlay){isolation:auto}.landing-page-card{transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);backdrop-filter:blur(12px);border-width:2px;background-color:rgb(255 255 255)}.landing-page-card:is(.dark *){background-color:rgb(255 255 255 / 0.1)}.landing-page-card:hover{transform:translateY(-0.25rem)}.landing-page-card [data-component-part=\"card-icon\"],.landing-page-card [data-component-part=\"card-icon\"]>img{width:48px;height:48px}.landing-page-card h2{font-size:1.5rem;margin-bottom:1rem;font-weight:600}"}],"page":{"pagePath":"xirp/sessions","slug":"/xirp/sessions","pageMetadata":{"title":"Sessions","sidebarTitle":"Sessions","description":"Create, monitor, organize, and resume persistent coding-agent sessions in Xirp.","href":"/xirp/sessions"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create, monitor, organize, and resume persistent coding-agent sessions in Xirp.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`A session is a persistent terminal running a coding agent. It can belong to a project and worktree, or run as a general session without project context.`}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-session`,children:`Create a session`}),`\n`,_jsxs(_components.p,{children:[`Select the `,_jsx(_components.strong,{children:`+`}),` button at the top of the sessions panel to choose a project or a general session.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/new-session-picker.webp?fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=ce28c3e35d05bc59bdb49b57f0bd5cc8`,alt:`Project picker for a new session`,\"data-og-width\":`1800`,width:`1800`,\"data-og-height\":`1153`,height:`1153`,\"data-path\":`xirp/assets/new-session-picker.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/new-session-picker.webp?w=280\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=27495806beac7d54c0b6ddda84560863 280w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/new-session-picker.webp?w=560\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=c72f788c0c5f2631aa46eac5642fb9dd 560w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/new-session-picker.webp?w=840\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=0e863b15ee64eb13b4d3ee52d3947e9a 840w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/new-session-picker.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=6b9ac2ed976a45066c5c3f2a66e15be5 1100w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/new-session-picker.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=d50967deafc68fe306b05c2222dc8ee2 1650w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/new-session-picker.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=1dd240ddf3b363995734519088cb7b80 2500w`}),`\n`,_jsx(_components.p,{children:`The full session form lets you:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Describe the goal`}),`\n`,_jsx(_components.li,{children:`Select a coding agent (Claude Code, Codex, Gemini CLI, Pi, or Cursor)`}),`\n`,_jsx(_components.li,{children:`Use the main checkout or create a new Git worktree`}),`\n`,_jsx(_components.li,{children:`Attach screenshots to the initial prompt`}),`\n`,_jsx(_components.li,{children:`Override supported per-session agent options`}),`\n`,_jsx(_components.li,{children:`Start in the foreground or background`}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/new-session-dialog.webp?fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=61f3cc8a3d4f603f80bd93edfce0c2aa`,alt:`New session form`,\"data-og-width\":`1800`,width:`1800`,\"data-og-height\":`1153`,height:`1153`,\"data-path\":`xirp/assets/new-session-dialog.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/new-session-dialog.webp?w=280\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=08baab9450385f7ac011b31018b832ab 280w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/new-session-dialog.webp?w=560\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=195d8371701b0168c615c335aff4b45c 560w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/new-session-dialog.webp?w=840\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=cbd3fd26c0a05ea16efa35bdb08c9a0b 840w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/new-session-dialog.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=eef2fd023501f8e2e4b06c71c3718a7f 1100w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/new-session-dialog.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=1487f5928ddee24d7fd7c05bfdff9486 1650w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/new-session-dialog.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=11aa04253c12369b55b62a6e08035e2b 2500w`}),`\n`,_jsx(_components.p,{children:`Write a goal that describes the intended outcome, relevant constraints, and how you will recognize completion. Xirp sends the goal to the selected agent as its initial prompt.`}),`\n`,_jsx(Heading,{level:`2`,id:`work-with-the-terminal`,children:`Work with the terminal`}),`\n`,_jsx(_components.p,{children:`The session page is a full interactive terminal. The toolbar shows the project, session, branch, context-window use, worktree, selected agent, and session controls.`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/session-terminal-complete.webp?fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=0f095ffc890aa8518c08a964829ba03e`,alt:`A completed coding-agent response in a Xirp terminal`,\"data-og-width\":`1800`,width:`1800`,\"data-og-height\":`1153`,height:`1153`,\"data-path\":`xirp/assets/session-terminal-complete.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/session-terminal-complete.webp?w=280\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=f81893bc1dea44840ed54f68779b08ac 280w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/session-terminal-complete.webp?w=560\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=df887a76303010bbd19b8ca82aaf6eed 560w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/session-terminal-complete.webp?w=840\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=e0a305e22cd7add6883a4740deca0a52 840w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/session-terminal-complete.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=40525f583782b9f1e2214bfa8b260bac 1100w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/session-terminal-complete.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=0599a9b74ff316ce52854c7a21df2841 1650w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/session-terminal-complete.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=b68b6d660a8f8f4237fe726342396dde 2500w`}),`\n`,_jsx(_components.p,{children:`You can:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Type and respond exactly as in the native coding-agent CLI`}),`\n`,_jsx(_components.li,{children:`Change to another installed coding agent during a session`}),`\n`,_jsx(_components.li,{children:`Open the worktree in an external terminal or editor`}),`\n`,_jsx(_components.li,{children:`Browse files and review Git changes without leaving the session`}),`\n`,_jsx(_components.li,{children:`Open an inline code review panel for diffs`}),`\n`,_jsxs(_components.li,{children:[`Open a browser panel (`,_jsx(_components.code,{children:`Cmd+Shift+B`}),`) alongside the terminal and annotate page elements to send comments to the agent`]}),`\n`,_jsxs(_components.li,{children:[`Use voice input (`,_jsx(_components.code,{children:`Cmd+J`}),`) to dictate prompts`]}),`\n`,_jsx(_components.li,{children:`Review agent responses passage by passage and send selected passages back as a follow-up`}),`\n`,_jsx(_components.li,{children:`Copy an agent response with the hover action`}),`\n`,_jsxs(_components.li,{children:[`Insert a saved prompt from the prompt palette (`,_jsx(_components.code,{children:`Cmd+Shift+;`}),`)`]}),`\n`,_jsx(_components.li,{children:`Split the terminal into multiple panes to run commands side-by-side`}),`\n`,_jsx(_components.li,{children:`Fork a conversation to explore another approach`}),`\n`,_jsxs(_components.li,{children:[`Open a linked shell in the same worktree, or create one from the CLI with `,_jsx(_components.code,{children:`xirp session new-terminal`})]}),`\n`,_jsxs(_components.li,{children:[`Open a standalone project terminal without starting a coding agent (`,_jsx(_components.code,{children:`Ctrl+Shift+T`}),`)`]}),`\n`,_jsx(_components.li,{children:`Cmd+click a file path in terminal output to open it in the built-in editor`}),`\n`,_jsxs(_components.li,{children:[`Take a screenshot of the current window to your clipboard (`,_jsx(_components.code,{children:`Cmd+Shift+X`}),`)`]}),`\n`,_jsx(_components.li,{children:`Stop or close a session`}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Agent permission bypasses and autonomous modes can allow file changes, shell\ncommands, and network calls without confirmation. Use the native agent’s\nsandbox and permission controls, and prefer disposable worktrees for risky\ntasks.`})}),`\n`,_jsx(Heading,{level:`2`,id:`session-status`,children:`Session status`}),`\n`,_jsx(_components.p,{children:`With session hooks enabled, Xirp distinguishes common states:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Working`}),`: the agent is processing the task.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Idle`}),`: the agent is ready for input.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Waiting`}),`: the agent needs a response or permission decision.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Queued`}),`: the session is waiting for a parent session to complete.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Completed`}),`: the session finished successfully.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Failed`}),`: the underlying process ended with an error.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Status indicators appear in the minimap and project overview. Notifications can alert you when a background session needs attention.`}),`\n`,_jsx(Heading,{level:`3`,id:`workflow-status`,children:`Workflow status`}),`\n`,_jsxs(_components.p,{children:[`Sessions can also carry a workflow status — backlog, in progress, in review, done, or blocked — to track where a task sits in your development cycle. You can group and sort sessions by workflow status. Turn this on under `,_jsx(_components.strong,{children:`Settings > Sessions > Workflow`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`use-worktrees-for-parallel-work`,children:`Use worktrees for parallel work`}),`\n`,_jsx(_components.p,{children:`A new-worktree session receives its own Git branch and checkout. Use one worktree per independent task when several sessions may change the same repository.`}),`\n`,_jsx(_components.p,{children:`Before deleting a worktree, review uncommitted changes and confirm whether Xirp should also remove its branch. Closing a session and deleting a worktree are separate actions.`}),`\n`,_jsx(Heading,{level:`2`,id:`grid-view`,children:`Grid view`}),`\n`,_jsxs(_components.p,{children:[`Grid view places multiple live terminals in one window. Open it with `,_jsx(_components.code,{children:`Cmd+G`}),`, then add sessions from the minimap.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/session-grid-single.webp?fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=da62b000e72e364e108c97b9e448f439`,alt:`A session in grid view`,\"data-og-width\":`1800`,width:`1800`,\"data-og-height\":`1153`,height:`1153`,\"data-path\":`xirp/assets/session-grid-single.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/session-grid-single.webp?w=280\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=5b5a695f3413061c4f0a4f3873e08186 280w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/session-grid-single.webp?w=560\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=d1585163d926df094ed55a16a8b3a1f0 560w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/session-grid-single.webp?w=840\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=9a2bf5313696d22a3b3ae042c7e45c1f 840w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/session-grid-single.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=c0ae3263e005e80886527d59099b6571 1100w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/session-grid-single.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=2afe91d4cc9f55ebeb77761818125768 1650w, https://mintcdn.com/spotify-89f50c35/Au6-kNeho5Rk8Vno/xirp/assets/session-grid-single.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=Au6-kNeho5Rk8Vno\u0026q=85\u0026s=fb2fa1316088e68e96c0e6613df3ee09 2500w`}),`\n`,_jsx(_components.p,{children:`You can resize the grid, focus a pane, maximize a session, group sessions by theme, and filter by project. Each pane remains interactive.`}),`\n`,_jsx(Heading,{level:`2`,id:`find-and-navigate-sessions`,children:`Find and navigate sessions`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Select a minimap card to focus a session.`}),`\n`,_jsxs(_components.li,{children:[`Press `,_jsx(_components.code,{children:`Cmd+Left`}),` or `,_jsx(_components.code,{children:`Cmd+Right`}),` to move between sessions.`]}),`\n`,_jsxs(_components.li,{children:[`Press `,_jsx(_components.code,{children:`Cmd+Shift+K`}),` to open the recent-session switcher.`]}),`\n`,_jsxs(_components.li,{children:[`Press `,_jsx(_components.code,{children:`Cmd+K`}),` to search projects, sessions, views, and actions.`]}),`\n`,_jsxs(_components.li,{children:[`Press `,_jsx(_components.code,{children:`Cmd+/`}),` to see all shortcuts.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`saved-prompts`,children:`Saved prompts`}),`\n`,_jsxs(_components.p,{children:[`Save prompts you use often and recall them from a searchable palette (`,_jsx(_components.code,{children:`Cmd+Shift+;`}),`). Select a prompt to insert it into the active session. Prompts can be global or scoped to a project.`]}),`\n`,_jsx(Heading,{level:`2`,id:`upload-a-session-to-portal`,children:`Upload a session to Portal`}),`\n`,_jsx(_components.p,{children:`Any session can be uploaded to a connected Portal Workspace. The upload button on the session toolbar names the workspace it sends to. A menu beside it lets you pick a different workspace or create a new one. Uploading shares the transcript with authorized Workspace members and makes it available as context for future sessions.`}),`\n`,_jsxs(_components.p,{children:[`Review the transcript before uploading. Workspace permissions control who can access it. See `,_jsx(_components.a,{href:`/xirp/workspaces/launching-sessions`,children:`Launch and share Xirp sessions`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`command-line-tool`,children:`Command-line tool`}),`\n`,_jsxs(_components.p,{children:[`Xirp installs an `,_jsx(_components.code,{children:`xirp`}),` command alongside the desktop app. From your terminal or from a coding agent you can:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Import sessions from Claude and Cursor into Xirp`}),`\n`,_jsx(_components.li,{children:`List and message running sessions`}),`\n`,_jsxs(_components.li,{children:[`Create a linked shell terminal for an existing session (`,_jsx(_components.code,{children:`xirp session new-terminal`}),`)`]}),`\n`,_jsx(_components.li,{children:`Upload transcripts to a Portal Workspace`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Run `,_jsx(_components.code,{children:`xirp --help`}),` for the full command reference.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"github-light","dark":"dracula"}},"config":{},"pageMetadata":{"title":"Sessions","sidebarTitle":"Sessions","description":"Create, monitor, organize, and resume persistent coding-agent sessions in Xirp.","href":"/xirp/sessions"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Create a session","slug":"create-a-session","depth":2,"children":[]},{"title":"Work with the terminal","slug":"work-with-the-terminal","depth":2,"children":[]},{"title":"Session status","slug":"session-status","depth":2,"children":[{"title":"Workflow status","slug":"workflow-status","depth":3,"children":[]}]},{"title":"Use worktrees for parallel work","slug":"use-worktrees-for-parallel-work","depth":2,"children":[]},{"title":"Grid view","slug":"grid-view","depth":2,"children":[]},{"title":"Find and navigate sessions","slug":"find-and-navigate-sessions","depth":2,"children":[]},{"title":"Saved prompts","slug":"saved-prompts","depth":2,"children":[]},{"title":"Upload a session to Portal","slug":"upload-a-session-to-portal","depth":2,"children":[]},{"title":"Command-line tool","slug":"command-line-tool","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"spotify-89f50c35","siteName":"Spotify for Backstage","title":"Sessions - Spotify for Backstage","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-02T11:27:56.575Z","originalFileLocation":"xirp/sessions.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Create, monitor, organize, and resume persistent coding-agent sessions in Xirp.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Spotify for Backstage\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/spotify-89f50c35/R_8z5ScClO7v3nRq/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/spotify-89f50c35/R_8z5ScClO7v3nRq/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/spotify-89f50c35/R_8z5ScClO7v3nRq/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/spotify-89f50c35/R_8z5ScClO7v3nRq/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/spotify-89f50c35/R_8z5ScClO7v3nRq/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/spotify-89f50c35/R_8z5ScClO7v3nRq/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/spotify-89f50c35/R_8z5ScClO7v3nRq/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/spotify-89f50c35/R_8z5ScClO7v3nRq/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/spotify-89f50c35/R_8z5ScClO7v3nRq/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Sessions - Spotify for Backstage\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create, monitor, organize, and resume persistent coding-agent sessions in Xirp.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Spotify for Backstage\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://backstage.spotify.com/docs/xirp/sessions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://spotify-89f50c35.mintlify.site/docs/_mintlify/api/og/v2?division=Xirp\u0026amp;title=Sessions\u0026amp;description=Create%2C+monitor%2C+organize%2C+and+resume+persistent+coding-agent+sessions+in+Xirp.\u0026amp;theme=a6f41037062b0a3b3eab7f14\u0026amp;signature=f4c45be87199c17185015e4afbeff98937be31920c45dce6a39c755aa38ae577\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Sessions - Spotify for Backstage\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create, monitor, organize, and resume persistent coding-agent sessions in Xirp.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://spotify-89f50c35.mintlify.site/docs/_mintlify/api/og/v2?division=Xirp\u0026amp;title=Sessions\u0026amp;description=Create%2C+monitor%2C+organize%2C+and+resume+persistent+coding-agent+sessions+in+Xirp.\u0026amp;theme=a6f41037062b0a3b3eab7f14\u0026amp;signature=f4c45be87199c17185015e4afbeff98937be31920c45dce6a39c755aa38ae577\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/spotify-89f50c35/R_8z5ScClO7v3nRq/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Spotify for Backstage\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#34baa2\">\u003clink data-mint-head rel=\"canonical\" href=\"https://backstage.spotify.com/docs/xirp/sessions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/xirp/sessions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://backstage.spotify.com/#organization\",\"name\":\"Spotify for Backstage\",\"url\":\"https://backstage.spotify.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/spotify-89f50c35/24doFeqc-xIrJKxF/static/logo/light.svg?fit=max\u0026auto=format\u0026n=24doFeqc-xIrJKxF\u0026q=85\u0026s=e7c3376851f302fc6d1308df15deb771\"}},{\"@type\":\"WebSite\",\"@id\":\"https://backstage.spotify.com/docs#website\",\"name\":\"Spotify for Backstage\",\"url\":\"https://backstage.spotify.com/docs\",\"publisher\":{\"@id\":\"https://backstage.spotify.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://backstage.spotify.com/docs/xirp/sessions#webpage\",\"url\":\"https://backstage.spotify.com/docs/xirp/sessions\",\"name\":\"Sessions\",\"description\":\"Create, monitor, organize, and resume persistent coding-agent sessions in Xirp.\",\"dateModified\":\"2026-10-02T11:27:56.575Z\",\"isPartOf\":{\"@id\":\"https://backstage.spotify.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://backstage.spotify.com/docs/xirp/sessions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://backstage.spotify.com/docs/xirp/sessions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Xirp\",\"item\":\"https://backstage.spotify.com/docs/xirp/getting-started\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sessions\",\"item\":\"https://backstage.spotify.com/docs/xirp/sessions\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://backstage.spotify.com/docs/xirp/sessions#article\",\"headline\":\"Sessions\",\"name\":\"Sessions\",\"description\":\"Create, monitor, organize, and resume persistent coding-agent sessions in Xirp.\",\"url\":\"https://backstage.spotify.com/docs/xirp/sessions\",\"mainEntityOfPage\":{\"@id\":\"https://backstage.spotify.com/docs/xirp/sessions#webpage\"},\"dateModified\":\"2026-10-02T11:27:56.575Z\",\"publisher\":{\"@id\":\"https://backstage.spotify.com/#organization\"},\"isPartOf\":{\"@id\":\"https://backstage.spotify.com/docs#website\"}}]}\u003c/script>","agentPointerHref":"/docs/xirp/sessions.md","siteName":"Spotify for Backstage","nav":{"global":{"anchors":[{"anchor":"Contact us","icon":"headset","href":"https://backstage.spotify.com/contact-us/talk-to-us/"}]},"tabs":[{"tab":"Portal","pages":[{"title":"Portal","href":"/portal"}]},{"tab":"Plugins","pages":[{"title":"Plugins","href":"/plugins"}]},{"tab":"Xirp","pages":[{"title":"Xirp","sidebarTitle":"Overview","href":"/xirp"},{"group":"Xirp","root":{"title":"Get started with Xirp","sidebarTitle":"Getting started","href":"/xirp/getting-started"},"pages":[{"title":"Projects","sidebarTitle":"Projects","description":"Add local projects to Xirp and use overview, Git, files, skills, rules, and worktrees.","href":"/xirp/projects"},{"title":"Sessions","sidebarTitle":"Sessions","href":"/xirp/sessions"},{"title":"Settings","sidebarTitle":"Settings","description":"Configure Xirp appearance, sessions, terminal behavior, notifications, coding agents, projects, and diagnostics.","href":"/xirp/settings"}]},{"group":"Xirp and Portal","root":{"title":"Xirp and Portal","sidebarTitle":"Overview","href":"/xirp/xirp-and-portal"},"pages":[{"title":"Connect Xirp to Portal","sidebarTitle":"Connect to Portal","href":"/xirp/connecting-to-portal"},{"title":"Connect GitHub and populate the catalog","sidebarTitle":"GitHub onboarding","href":"/xirp/github-onboarding"},{"group":"Workspaces","root":{"title":"Workspaces","sidebarTitle":"Overview","href":"/xirp/workspaces/index"},"pages":[{"title":"Add Workspace resources","sidebarTitle":"Add resources","href":"/xirp/workspaces/adding-resources"},{"title":"Workspace wiki pages","sidebarTitle":"Wiki pages","href":"/xirp/workspaces/wiki-pages"},{"title":"Launch and share Xirp sessions","sidebarTitle":"Launch sessions","href":"/xirp/workspaces/launching-sessions"}]}]},{"title":"FAQ","sidebarTitle":"FAQ","href":"/xirp/faq"},{"title":"Xirp changelog","sidebarTitle":"Changelog","href":"/xirp/changelog"}]}]},"basePath":"","title":"Sessions - Spotify for Backstage","buildId":"dpl_eBQnj73Q1gDRVNqNsS3Yt9yPkTEW","deploymentId":"dpl_eBQnj73Q1gDRVNqNsS3Yt9yPkTEW","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-C9iRi_CV.js","lightbox-handle-r17bVUz3.js"]}