Add projects, isolate work in Git worktrees, and move between active sessions
FlowDeck can keep several repositories open in one workspace. Within a repository,
each session has its own branch and Git worktree, so an agent can build and edit one
task without touching another task’s files.
Choose File → Add Project… (or press ⌘O) and choose one of three entry points:
New App creates a new Apple project, with platform and location choices before
it opens in FlowDeck.
Local folder opens an existing .xcodeproj, .xcworkspace, or folder.
GitHub lets you browse or search accessible repositories, clone one, and open it
in the workspace.
If you choose a folder that is not an Apple project, FlowDeck explains that Apple
development tools will be unavailable and lets you cancel or continue. If it is not
a Git repository, choose whether to cancel, open it without Git features, or create
a local repository. You can initialize Git later from the Changes tab.When a project needs configuration, FlowDeck guides you through selecting the
workspace, scheme, destination, and build configuration. Those choices are saved per
worktree, so a different task can use a different scheme or target without overwriting
the first one.
Open a session’s Project Settings from its menu or Open Quickly
(⌘K) to review its build setup. The window includes:
Build Settings for the workspace, scheme, configuration, and destination.
Schemes for the schemes FlowDeck discovers in the selected workspace.
Xcodebuild Settings for additional project build settings.
Swift Packages for direct remote or local package dependencies and their targets.
New sessions start from the repository’s last valid build selection. Use the session
settings window when this task needs a different setup. For the global tools around a
project, see Settings & External Tools.
Press ⌘N or choose File → New Session. You can start a fresh branch and
worktree, open an existing local or remote branch, or create a session from another
session’s branch.Each session keeps its own chat and plan conversations, agent settings, drafts,
project configuration, and DerivedData. Give a session a descriptive name to make its
task easy to recognize in the sidebar. Start from a branch when you need to resume
parked work; start from another session’s branch when you need a related isolated task.Use the + menu above the conversation to create a New Chat or New Plan,
choose Open Plan from the plan library, or browse Chat Archive across all
projects and sessions. New tabs appear on the right, and ⌘T creates a Chat tab.
Opening the archive keeps your current conversation selected. Overflow arrows let you scroll the tabs in either direction.New conversations receive a title in the background after the first message is sent, using your configured utility model. You can rename a tab from its context menu while the agent is working; your chosen name always takes precedence. If title generation is unavailable, the current name stays in place.
Hover over a tab and use its archive-box button, or press ⌘W, to archive it.
Archiving selects the previous tab to the left, or the next tab when archiving the first. It preserves a newer selection you make while saving. Archiving from the button, tab menu, or keyboard asks for confirmation only if the agent is active. Chat Archive shows
one searchable list grouped by project and session, with the archive date and recorded
models. Search includes saved chat text, titles, models, providers, projects, and sessions;
use the chat-kind and project filters to narrow the list.Restore a chat to its original tab, another existing session in the same project, or a
new session with your chosen base branch. Restoring to another session keeps its existing
chats and working files intact. Saved history can be restored even when its original
checkout is gone, as long as the repository is available.The archive permanently keeps the newest 250 chats across all projects. Older saved
chats and their owned attachments are removed; chats involved in restore or recovery are
protected until the operation finishes. You can also delete one archive or choose
Delete all. Delete all includes archives hidden by search and filters, shows the global
count for confirmation, and does not include chats archived afterward. Permanent deletion
cannot be undone and does not remove the provider’s original history.
The sidebar lists sessions and worktrees for the active repository. Select one to
switch its chat and project context. With more than one project open, ⌘0 opens
Active Sessions and ⇧⌘1 through ⇧⌘9 switch directly between projects.
Use ⌘1 through ⌘9 to select conversation tabs in the current session,
in their displayed order with Plan tabs first.Use Open Quickly (⌘K) when you want to search projects,
sessions, branches, and actions from one place.
Closing a session preserves its conversation and worktree so you can return later.
Deleting a session asks for confirmation and removes its worktree, local branch, local
conversation data, attachments, and per-worktree build data. FlowDeck protects the
main worktree, and deleting a session never deletes its remote branch.
Deleting a session can discard unpublished local work. Review the Changes tab and push
anything you need before confirming deletion.
For a project managed by XcodeGen, FlowDeck detects the manifest and offers to
generate the Xcode project before you build. You can run Regenerate Project later
from Open Quickly.
The sample project is a local-only project with prepared
sessions and a configured simulator. It is a good place to explore branches,
worktrees, and the agent before opening a production repository.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"FlowDeck","description":"Flow","colors":{"primary":"#FF4407","light":"#FF4407","dark":"#FF4407"},"logo":{"light":"https://mintcdn.com/flowdeck/1mH37I1K6jA8b08h/images/Logo-BW-WhiteBg.png?fit=max\u0026auto=format\u0026n=1mH37I1K6jA8b08h\u0026q=85\u0026s=6130dfa97a692bdca791c30dd99fa3d7","dark":"https://mintcdn.com/flowdeck/1mH37I1K6jA8b08h/images/Logo-BW-BlackBg.png?fit=max\u0026auto=format\u0026n=1mH37I1K6jA8b08h\u0026q=85\u0026s=ca0c89fed26da5b5624b97fff0dd0211","href":"https://flowdeck.studio"},"favicon":{"light":"https://mintcdn.com/flowdeck/WYbJRp5-oO6kcB2T/images/ProfilePicture.png?fit=max\u0026auto=format\u0026n=WYbJRp5-oO6kcB2T\u0026q=85\u0026s=a542d6694e7f4b658d7283da721205c7","dark":"https://mintcdn.com/flowdeck/WYbJRp5-oO6kcB2T/images/ProfilePictureDark.png?fit=max\u0026auto=format\u0026n=WYbJRp5-oO6kcB2T\u0026q=85\u0026s=daf8cce9606d106c12c4640b9e0fe852"},"api":{},"appearance":{"default":"dark"},"background":{"color":{"light":"#FFFFFF","dark":"#000000"}},"navbar":{"primary":{"type":"button","label":"Get FlowDeck","href":"https://flowdeck.studio/"}},"search":{"prompt":"Search FlowDeck docs..."},"seo":{"indexing":"navigable"},"metadata":{"timestamp":false},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"flowdeck","hasAudioNarration":false,"actualSubdomain":"flowdeck","customDomains":["docs.flowdeck.studio"],"gitSource":{"type":"github","owner":"flowdeck-dev","repo":"flowdeck","deployBranch":"stable","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":"","_id":"6ad9380a8934a879d89251bf"},"chroma":{"liveDeploymentHistoryId":"6ad9388bec81d57a48f60f02","collectionId":"b792c53e-f802-443d-856b-9e8d47d66db3","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad9388bec81d57a48f60f02"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ad93afc4b43520dc7b19f1e","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"FlowDeck CLI","count":74},{"language":"default","tag":"Command Reference","count":37},{"language":"default","tag":"FlowDeck for Mac","count":20},{"language":"default","tag":"Simulator Commands","count":11},{"language":"default","tag":"Interactive Mode (TUI)","count":11},{"language":"default","tag":"Core Actions","count":10},{"language":"default","tag":"IDE Features","count":10},{"language":"default","tag":"Core Features","count":9},{"language":"default","tag":"FlowDeck for AI","count":6},{"language":"default","tag":"Advanced","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","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":"editor-v7-file-tree","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":"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":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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}],"privacy":{"consentBanner":{"enabled":false}},"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"macos/projects-and-sessions","slug":"/macos/projects-and-sessions","pageMetadata":{"title":"Projects \u0026 Sessions","description":"Add projects, isolate work in Git worktrees, and move between active sessions","href":"/macos/projects-and-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: \"Add projects, isolate work in Git worktrees, and move between active sessions\"\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,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`FlowDeck can keep several repositories open in one workspace. Within a repository,\neach session has its own branch and Git worktree, so an agent can build and edit one\ntask without touching another task’s files.`}),`\n`,_jsx(Heading,{level:`2`,id:`add-a-project`,children:`Add a project`}),`\n`,_jsxs(_components.p,{children:[`Choose `,_jsx(_components.strong,{children:`File → Add Project…`}),` (or press `,_jsx(_components.strong,{children:`⌘O`}),`) and choose one of three entry points:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`New App`}),` creates a new Apple project, with platform and location choices before\nit opens in FlowDeck.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Local folder`}),` opens an existing `,_jsx(_components.code,{children:`.xcodeproj`}),`, `,_jsx(_components.code,{children:`.xcworkspace`}),`, or folder.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`GitHub`}),` lets you browse or search accessible repositories, clone one, and open it\nin the workspace.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`If you choose a folder that is not an Apple project, FlowDeck explains that Apple\ndevelopment tools will be unavailable and lets you cancel or continue. If it is not\na Git repository, choose whether to cancel, open it without Git features, or create\na local repository. You can initialize Git later from the Changes tab.`}),`\n`,_jsx(_components.p,{children:`When a project needs configuration, FlowDeck guides you through selecting the\nworkspace, scheme, destination, and build configuration. Those choices are saved per\nworktree, so a different task can use a different scheme or target without overwriting\nthe first one.`}),`\n`,_jsx(Heading,{level:`2`,id:`configure-a-session`,children:`Configure a session`}),`\n`,_jsxs(_components.p,{children:[`Open a session’s `,_jsx(_components.strong,{children:`Project Settings`}),` from its menu or `,_jsx(_components.a,{href:`/macos/command-palette`,children:`Open Quickly`}),`\n(`,_jsx(_components.strong,{children:`⌘K`}),`) to review its build setup. The window includes:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Build Settings`}),` for the workspace, scheme, configuration, and destination.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Schemes`}),` for the schemes FlowDeck discovers in the selected workspace.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Xcodebuild Settings`}),` for additional project build settings.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Swift Packages`}),` for direct remote or local package dependencies and their targets.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`New sessions start from the repository’s last valid build selection. Use the session\nsettings window when this task needs a different setup. For the global tools around a\nproject, see `,_jsx(_components.a,{href:`/macos/settings`,children:`Settings \u0026 External Tools`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-session`,children:`Create a session`}),`\n`,_jsxs(_components.p,{children:[`Press `,_jsx(_components.strong,{children:`⌘N`}),` or choose `,_jsx(_components.strong,{children:`File → New Session`}),`. You can start a fresh branch and\nworktree, open an existing local or remote branch, or create a session from another\nsession’s branch.`]}),`\n`,_jsx(_components.p,{children:`Each session keeps its own chat and plan conversations, agent settings, drafts,\nproject configuration, and DerivedData. Give a session a descriptive name to make its\ntask easy to recognize in the sidebar. Start from a branch when you need to resume\nparked work; start from another session’s branch when you need a related isolated task.`}),`\n`,_jsxs(_components.p,{children:[`Use the `,_jsx(_components.strong,{children:`+`}),` menu above the conversation to create a `,_jsx(_components.strong,{children:`New Chat`}),` or `,_jsx(_components.strong,{children:`New Plan`}),`,\nchoose `,_jsx(_components.strong,{children:`Open Plan`}),` from the plan library, or browse `,_jsx(_components.strong,{children:`Chat Archive`}),` across all\nprojects and sessions. New tabs appear on the right, and `,_jsx(_components.strong,{children:`⌘T`}),` creates a Chat tab.\nOpening the archive keeps your current conversation selected. Overflow arrows let you scroll the tabs in either direction.`]}),`\n`,_jsx(_components.p,{children:`New conversations receive a title in the background after the first message is sent, using your configured utility model. You can rename a tab from its context menu while the agent is working; your chosen name always takes precedence. If title generation is unavailable, the current name stays in place.`}),`\n`,_jsx(Heading,{level:`2`,id:`archived-chats`,children:`Archived chats`}),`\n`,_jsxs(_components.p,{children:[`Hover over a tab and use its archive-box button, or press `,_jsx(_components.strong,{children:`⌘W`}),`, to archive it.\nArchiving selects the previous tab to the left, or the next tab when archiving the first. It preserves a newer selection you make while saving. Archiving from the button, tab menu, or keyboard asks for confirmation only if the agent is active. `,_jsx(_components.strong,{children:`Chat Archive`}),` shows\none searchable list grouped by project and session, with the archive date and recorded\nmodels. Search includes saved chat text, titles, models, providers, projects, and sessions;\nuse the chat-kind and project filters to narrow the list.`]}),`\n`,_jsx(_components.p,{children:`Restore a chat to its original tab, another existing session in the same project, or a\nnew session with your chosen base branch. Restoring to another session keeps its existing\nchats and working files intact. Saved history can be restored even when its original\ncheckout is gone, as long as the repository is available.`}),`\n`,_jsxs(_components.p,{children:[`The archive permanently keeps the newest `,_jsx(_components.strong,{children:`250 chats across all projects`}),`. Older saved\nchats and their owned attachments are removed; chats involved in restore or recovery are\nprotected until the operation finishes. You can also delete one archive or choose\n`,_jsx(_components.strong,{children:`Delete all`}),`. Delete all includes archives hidden by search and filters, shows the global\ncount for confirmation, and does not include chats archived afterward. Permanent deletion\ncannot be undone and does not remove the provider’s original history.`]}),`\n`,_jsx(Heading,{level:`2`,id:`move-between-work`,children:`Move between work`}),`\n`,_jsxs(_components.p,{children:[`The sidebar lists sessions and worktrees for the active repository. Select one to\nswitch its chat and project context. With more than one project open, `,_jsx(_components.strong,{children:`⌘0`}),` opens\nActive Sessions and `,_jsx(_components.strong,{children:`⇧⌘1`}),` through `,_jsx(_components.strong,{children:`⇧⌘9`}),` switch directly between projects.\nUse `,_jsx(_components.strong,{children:`⌘1`}),` through `,_jsx(_components.strong,{children:`⌘9`}),` to select conversation tabs in the current session,\nin their displayed order with Plan tabs first.`]}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.a,{href:`/macos/command-palette`,children:`Open Quickly`}),` (`,_jsx(_components.strong,{children:`⌘K`}),`) when you want to search projects,\nsessions, branches, and actions from one place.`]}),`\n`,_jsx(Heading,{level:`2`,id:`close-or-delete-a-session`,children:`Close or delete a session`}),`\n`,_jsx(_components.p,{children:`Closing a session preserves its conversation and worktree so you can return later.\nDeleting a session asks for confirmation and removes its worktree, local branch, local\nconversation data, attachments, and per-worktree build data. FlowDeck protects the\nmain worktree, and deleting a session never deletes its remote branch.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Deleting a session can discard unpublished local work. Review the Changes tab and push\nanything you need before confirming deletion.`})}),`\n`,_jsx(Heading,{level:`2`,id:`generated-projects`,children:`Generated projects`}),`\n`,_jsxs(_components.p,{children:[`For a project managed by `,_jsx(_components.strong,{children:`XcodeGen`}),`, FlowDeck detects the manifest and offers to\ngenerate the Xcode project before you build. You can run `,_jsx(_components.strong,{children:`Regenerate Project`}),` later\nfrom Open Quickly.`]}),`\n`,_jsx(Heading,{level:`2`,id:`try-it-safely`,children:`Try it safely`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`/macos/sample-project`,children:`sample project`}),` is a local-only project with prepared\nsessions and a configured simulator. It is a good place to explore branches,\nworktrees, and the agent before opening a production repository.`]})]})}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":{"config":{},"pageMetadata":{"title":"Projects \u0026 Sessions","description":"Add projects, isolate work in Git worktrees, and move between active sessions","href":"/macos/projects-and-sessions"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Add a project","slug":"add-a-project","depth":2,"children":[]},{"title":"Configure a session","slug":"configure-a-session","depth":2,"children":[]},{"title":"Create a session","slug":"create-a-session","depth":2,"children":[]},{"title":"Archived chats","slug":"archived-chats","depth":2,"children":[]},{"title":"Move between work","slug":"move-between-work","depth":2,"children":[]},{"title":"Close or delete a session","slug":"close-or-delete-a-session","depth":2,"children":[]},{"title":"Generated projects","slug":"generated-projects","depth":2,"children":[]},{"title":"Try it safely","slug":"try-it-safely","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"flowdeck","siteName":"FlowDeck","title":"Projects \u0026 Sessions - FlowDeck","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-21T22:09:58.411Z","originalFileLocation":"macos/projects-and-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=\"Add projects, isolate work in Git worktrees, and move between active sessions\">\u003cmeta data-mint-head name=\"application-name\" content=\"FlowDeck\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintcdn.com/flowdeck/WYbJRp5-oO6kcB2T/images/ProfilePicture.png?fit=max\u0026amp;auto=format\u0026amp;n=WYbJRp5-oO6kcB2T\u0026amp;q=85\u0026amp;s=a542d6694e7f4b658d7283da721205c7\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintcdn.com/flowdeck/WYbJRp5-oO6kcB2T/images/ProfilePicture.png?fit=max\u0026amp;auto=format\u0026amp;n=WYbJRp5-oO6kcB2T\u0026amp;q=85\u0026amp;s=a542d6694e7f4b658d7283da721205c7\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintcdn.com/flowdeck/WYbJRp5-oO6kcB2T/images/ProfilePicture.png?fit=max\u0026amp;auto=format\u0026amp;n=WYbJRp5-oO6kcB2T\u0026amp;q=85\u0026amp;s=a542d6694e7f4b658d7283da721205c7\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://mintcdn.com/flowdeck/WYbJRp5-oO6kcB2T/images/ProfilePicture.png?fit=max\u0026amp;auto=format\u0026amp;n=WYbJRp5-oO6kcB2T\u0026amp;q=85\u0026amp;s=a542d6694e7f4b658d7283da721205c7\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintcdn.com/flowdeck/WYbJRp5-oO6kcB2T/images/ProfilePictureDark.png?fit=max\u0026amp;auto=format\u0026amp;n=WYbJRp5-oO6kcB2T\u0026amp;q=85\u0026amp;s=daf8cce9606d106c12c4640b9e0fe852\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintcdn.com/flowdeck/WYbJRp5-oO6kcB2T/images/ProfilePictureDark.png?fit=max\u0026amp;auto=format\u0026amp;n=WYbJRp5-oO6kcB2T\u0026amp;q=85\u0026amp;s=daf8cce9606d106c12c4640b9e0fe852\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://mintcdn.com/flowdeck/WYbJRp5-oO6kcB2T/images/ProfilePictureDark.png?fit=max\u0026amp;auto=format\u0026amp;n=WYbJRp5-oO6kcB2T\u0026amp;q=85\u0026amp;s=daf8cce9606d106c12c4640b9e0fe852\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Projects \u0026amp; Sessions - FlowDeck\">\u003cmeta data-mint-head property=\"og:description\" content=\"Add projects, isolate work in Git worktrees, and move between active sessions\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"FlowDeck\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.flowdeck.studio/macos/projects-and-sessions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://flowdeck.mintlify.app/_mintlify/api/og/v2?division=Projects+%26+Sessions\u0026amp;title=Projects+%26+Sessions\u0026amp;description=Add+projects%2C+isolate+work+in+Git+worktrees%2C+and+move+between+active+sessions\u0026amp;theme=d4ee9523425cdf7b8cb44c77\u0026amp;signature=3c625b83a0ab09fea15621b7b7d223430cb4be4e478575dcb7bc2525790dcba9\">\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=\"Projects \u0026amp; Sessions - FlowDeck\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Add projects, isolate work in Git worktrees, and move between active sessions\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://flowdeck.mintlify.app/_mintlify/api/og/v2?division=Projects+%26+Sessions\u0026amp;title=Projects+%26+Sessions\u0026amp;description=Add+projects%2C+isolate+work+in+Git+worktrees%2C+and+move+between+active+sessions\u0026amp;theme=d4ee9523425cdf7b8cb44c77\u0026amp;signature=3c625b83a0ab09fea15621b7b7d223430cb4be4e478575dcb7bc2525790dcba9\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/flowdeck/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"FlowDeck\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF4407\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.flowdeck.studio/macos/projects-and-sessions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/macos/projects-and-sessions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.flowdeck.studio/#organization\",\"name\":\"FlowDeck\",\"url\":\"https://docs.flowdeck.studio\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/flowdeck/1mH37I1K6jA8b08h/images/Logo-BW-WhiteBg.png?fit=max\u0026auto=format\u0026n=1mH37I1K6jA8b08h\u0026q=85\u0026s=6130dfa97a692bdca791c30dd99fa3d7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.flowdeck.studio#website\",\"name\":\"FlowDeck\",\"url\":\"https://docs.flowdeck.studio\",\"publisher\":{\"@id\":\"https://docs.flowdeck.studio/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.flowdeck.studio/macos/projects-and-sessions#webpage\",\"url\":\"https://docs.flowdeck.studio/macos/projects-and-sessions\",\"name\":\"Projects \u0026 Sessions\",\"description\":\"Add projects, isolate work in Git worktrees, and move between active sessions\",\"dateModified\":\"2026-10-21T22:09:58.411Z\",\"isPartOf\":{\"@id\":\"https://docs.flowdeck.studio#website\"},\"breadcrumb\":{\"@id\":\"https://docs.flowdeck.studio/macos/projects-and-sessions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.flowdeck.studio/macos/projects-and-sessions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"FlowDeck\",\"item\":\"https://docs.flowdeck.studio\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Projects \u0026 Sessions\",\"item\":\"https://docs.flowdeck.studio/macos/projects-and-sessions\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.flowdeck.studio/macos/projects-and-sessions#article\",\"headline\":\"Projects \u0026 Sessions\",\"name\":\"Projects \u0026 Sessions\",\"description\":\"Add projects, isolate work in Git worktrees, and move between active sessions\",\"url\":\"https://docs.flowdeck.studio/macos/projects-and-sessions\",\"mainEntityOfPage\":{\"@id\":\"https://docs.flowdeck.studio/macos/projects-and-sessions#webpage\"},\"dateModified\":\"2026-10-21T22:09:58.411Z\",\"publisher\":{\"@id\":\"https://docs.flowdeck.studio/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.flowdeck.studio#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"FlowDeck\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"FlowDeck","nav":{"global":null,"tabs":[{"tab":"FlowDeck for Mac","groups":[{"group":"Getting Started","pages":[{"title":"FlowDeck for Mac","href":"/macos/introduction"},{"title":"Install FlowDeck","href":"/macos/install"},{"title":"The Sample Project","href":"/macos/sample-project"},{"title":"Keyboard Shortcuts","description":"Every shortcut FlowDeck answers to","href":"/macos/keyboard-shortcuts"}]},{"group":"Projects \u0026 Sessions","pages":[{"title":"Projects \u0026 Sessions","href":"/macos/projects-and-sessions"}]},{"group":"The AI Agent","pages":[{"title":"The AI Agent","description":"Your built-in AI developer — build, test, debug, and automate in plain language","href":"/macos/ai-agent"},{"title":"Coding Standards","href":"/macos/engineering-standards"},{"title":"Validation","href":"/macos/validation"},{"title":"Skills Manager","href":"/macos/skills-manager"}]},{"group":"IDE Features","pages":[{"title":"Build \u0026 Run","href":"/macos/building"},{"title":"Testing","href":"/macos/testing"},{"title":"Simulators \u0026 Devices","href":"/macos/simulators"},{"title":"Disk Cleanup","href":"/macos/clean"},{"title":"Console","href":"/macos/logging"},{"title":"Source Control","href":"/macos/source-control"},{"title":"Linear","href":"/macos/linear"},{"title":"UI Automation","href":"/macos/ui-automation"},{"title":"Open Quickly (⌘K)","href":"/macos/command-palette"},{"title":"Settings \u0026 External Tools","href":"/macos/settings"}]},{"group":"Support","pages":[{"title":"Support","href":"/macos/support"}]}]},{"tab":"FlowDeck CLI","pages":[{"title":"FlowDeck CLI","href":"/introduction"}]}]},"title":"Projects \u0026 Sessions - FlowDeck","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":[],"chunks":[]}