Skip to main content

Open Your First Project

Open a folder as a Daintree project, what changes when it is a Git repository and what still works when it is not, initializing a repository, and opening a folder from your file manager or the command line.

Reviewed

Opening your first folder

Open a folder from File > Open Directory… (Command-O Control-O Control-O ), from Open folder on the Welcome Screen, or with the project switcher in the toolbar.

A project no longer has to be a Git repository. The picker's title is Open Folder, not "Open Repository", because that requirement is gone. Point Daintree at any folder and it opens as a lightweight workspace.

One thing to know before you choose: worktrees are Git worktrees, so running your first parallel task needs a repository. If you are following the getting-started path and the folder has none yet, take Initialize repository here rather than Open without git.

Open without git

Choose Open without git and you get a workspace immediately. Terminals, agents, recipes, and the file browser all work. Worktrees, review, and diffs stay unavailable until the folder becomes a repository, because there is nothing for them to operate on. The sidebar shows a single Workspace row instead of a worktree list, and there's no branch chip and no Project Pulse. Nothing in the folder is changed either way. Projects covers the git-optional tier in full, including how to upgrade a workspace later.

Initialize repository

Choose Initialize repository and you land on the Set up project dialog. It collects three things:

  • Project name and emoji. Both are seeded from the folder name and both are editable. The emoji is how you'll recognize the project in the switcher and the toolbar.
  • Gitignore template. Eleven options, defaulting to Minimal.
  • Initial commit. A checkbox, on by default, with an editable commit message.

The gitignore templates:

TemplateCovers
Minimal (default)OS junk, editor state, secrets, agent state
Node / TypeScriptnode_modules, build output, caches
Python__pycache__, virtualenvs, tooling caches
Rusttarget/, rustfmt backups
Gobinaries, test output, workspace files
Java / JVMGradle and Maven output, class files
PHP / Laravelvendor/, storage, compiled assets
Ruby on Railslogs, tmp, bundler, credentials keys
C# / .NETbin/, obj/, user files
Static webbuild output, tool caches
NoneDon't create a .gitignore at all

Every language template is composed on top of Minimal, so picking Rust still ignores your .env and your editor's scratch files. A progress log shows each step ( git init, the gitignore, the first commit) as it runs.

Creating a project from scratch

Create project on the Welcome Screen opens Create project folder instead: pick a parent directory, type a folder name, and choose an emoji. The emoji auto-suggests from the name you type until you pick one yourself, and the identity carries through into the git setup dialog. The folder is created, then opened.

Once a folder is open, Daintree scans for existing worktrees and loads any saved state: terminal sessions, panel layout, recipes.

Other ways to open a folder

Every route below lands in the same place, including the choice dialog when the folder isn't a repository.

  • File > Open Recent. Recently opened projects, sorted by when you last opened them, each showing its path so you can tell two api folders apart.
  • Drop a folder on the macOS Dock icon. Registered by signed builds only, so a locally built copy won't do it.
  • The daintree command, covered below.

"Open in Daintree" in your file manager

macOS won't let an app bundle declare a Finder service, so this one is installed on demand: Terminal > Install "Open in Daintree" Quick Action. That writes an Automator workflow to ~/Library/Services and refreshes the services cache. Right-click any folder in Finder afterwards and Open in Daintree is there.

Terminal > Remove "Open in Daintree" Quick Action takes it back out. Worth knowing: nothing in ~/Library/Services is touched when you delete an application, so without this the Quick Action would outlive Daintree.

Daintree CLI

The daintree command (macOS and Linux only) opens any directory in Daintree straight from your terminal. It works like code . in VS Code. If Daintree is already running, it handles the request internally rather than launching a second instance.

Installing the CLI

Install the CLI from inside Daintree, via Terminal > Install Daintree Command Line Tool in the menu bar.

On macOS, the install creates a symlink at /usr/local/bin/daintree pointing to the bundled CLI script inside the app. That location is on your PATH by default, so the daintree command is available right away in any new terminal session.

If /usr/local/bin isn't writable (rare on a standard setup), the install falls back to ~/.local/bin/daintree, and you may need to add that directory to your PATH yourself.

Usage

Once it's installed, open any directory in Daintree from your terminal:

daintree .                  # Open the current directory
daintree ~/projects/my-app  # Open a specific directory
daintree --status           # Check if Daintree is running
daintree --version          # Print the CLI version
daintree --help             # Show usage information

Each flag has a short form: -s, -v, -h. The --status flag exits with code 0 when Daintree is running and 1 when it isn't, which is handy for scripting.

Tip
The daintree command follows the same folder-opening rules as File > Open Directory…. A folder that isn't a repository lands on the same two-option dialog: open it as-is, or set git up first.