> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flowdeck.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Project Settings

> Choose a session's workspace, scheme, and configuration, and manage its build arguments and packages

**Project Settings** is a separate window for one session's build setup. The sidebar shows the
project, the session name, and its branch, so you always know which worktree you are editing.
Below that are three sections: **Schemes**, **Swift Packages**, and **Xcodebuild Settings**.

Settings here belong to the session you opened them from. Another session can use a different
scheme, configuration, or set of arguments. See [Worktrees](https://docs.flowdeck.studio/macos/worktrees.md) for how sessions
map to branches.

## Open Project Settings

Use any of these:

* Open a session's **⋯** menu, or right-click the session in the sidebar, and choose
  **Project Settings**. This opens the **Schemes** section.
* Press **⌘K** and choose **Open Session Settings**. It opens settings for the active
  session.
* Press **⌘K** and choose **Schemes**, **Swift Packages**, or **Build Settings** to jump
  straight to that section. **Build Settings** opens **Xcodebuild Settings**.

The session menu entry appears only for sessions in a project FlowDeck can build, such as an Xcode
project or Swift package. If the window is already open, choosing a section from a different
session points it at that session.

## Schemes

Use **Schemes** to pick the workspace and set how each scheme runs.

**Workspace.** The menu at the top of the list shows the workspace or project FlowDeck is
using in this session. Choose another one if the repository has more than one. The scheme
list and the other sections follow your choice.

**Scheme list.** Type in **Filter schemes** to narrow the list. If nothing matches, the list
says **No schemes match the filter.** The list has two groups:

* **ALL SCHEMES** has one row, **All Schemes**. Anything you set here applies to every scheme.
* **SHARED** lists the schemes FlowDeck found in the workspace, with a badge when a scheme
  has a category.

Selecting a scheme also makes it the session's active scheme.

**A scheme's settings.** Select a scheme to edit:

* **Configuration** under **BUILD AND RUN**. Pick from the configurations the scheme offers,
  usually Debug and Release.
* **Arguments Passed On Launch**, which are passed to your app when it starts.
* **Environment Variables**, which are set in your app's environment when it starts. Each row
  has a name and a value.

Add a row to either list, edit it in place, or remove it. Empty lists read **No arguments
configured** or **No variables configured**.

**All Schemes settings.** **All Schemes** has launch arguments and environment variables but
no **Configuration**, since a single configuration cannot apply to every scheme. Its values
appear dimmed in each scheme's own lists, so you can see what is inherited.

> [!NOTE]
>
> Destination is not set in this window. Choose a simulator, device, or Mac from the
> destination picker in the toolbar. If a scheme does not support the current destination,
> FlowDeck switches to one it does support.

## Xcodebuild Settings

**Xcodebuild Settings** applies to every build, run, and test in the session, whichever
scheme you use. It has two lists:

* **Arguments** are passed to `xcodebuild` as `KEY=VALUE` and reach the compiler, the
  linker, and your Xcode build settings.
* **Environment Variables** are set for the `xcodebuild` process and reach Run Script phases
  and build tools.

Use **Schemes** for values your app reads at launch, and **Xcodebuild Settings** for values
the build reads.

## Swift Packages

**Swift Packages** lists the session's direct package dependencies and lets you add, link,
update, and remove them. The **Add Package** button appears in the window toolbar while this
section is selected. See [Swift Packages](https://docs.flowdeck.studio/macos/swift-packages.md) for the full flow.

## What is saved, and where

Edits to configuration, launch arguments, environment variables, and Xcodebuild Settings save
as you make them. There is no Save button. Your workspace and scheme choices apply when you
close the window.

| Saved with | What |
| - | - |
| The session's worktree | Workspace, scheme, configuration, and destination. Launch arguments and environment variables, for All Schemes and for each scheme. Xcodebuild arguments and environment variables. |
| The repository | The last project configuration you confirmed for a new session. Whether to ask before configuring new sessions. The last destination you chose in the New Session sheet. |

Because the worktree owns its settings, changing a scheme in one session does not change it
in another.

## How new sessions pick their setup

When you create a session, FlowDeck starts from the last project configuration you
confirmed in this repository. It reuses each part only if it is still available:

* The workspace, if it still exists in the new worktree.
* The scheme, if the workspace still has it.
* The destination, if the scheme supports it and it is still available.
* The configuration, if the workspace still offers it.

A part that is no longer available falls back to a default. Settings you change later in
Project Settings affect only that session. They do not change what new sessions start from.

If asking is on, a **Project Configuration** step appears while you create the session, with
**Workspace**, **Scheme**, and **Configuration**. Check **Don’t ask again for this project**
to skip it. FlowDeck then applies the remembered setup on its own. You can change this later
from the project's **⋯** menu with **Ask Before Configuring New Sessions**.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.