Skip to main content

Overview

Jean uses a project-based organization system where each git repository is a Project, and you work in isolated Worktrees for different branches and tasks.

Project Structure

Project Type

Projects in Jean represent git repositories you’ve added to the app. Each project stores metadata and configuration for managing worktrees.
The path field points to your original repository. Worktrees are created in a separate location (by default ~/jean/<project-name>/<worktree-name>).

Folders for Organization

You can organize projects into folders. Folders are special Project entries with is_folder: true and an empty path.
Use folders to group related projects by client, team, or technology stack.

Git Worktrees

What are Git Worktrees?

Git worktrees allow you to have multiple working directories from a single repository. Each worktree has its own branch and working files, but they all share the same git history. Benefits:
  • Work on multiple branches simultaneously
  • Avoid branch switching overhead
  • Isolated environments for different tasks
  • Each worktree can have different dependencies installed

Worktree Type

Session Types

  • worktree: A git worktree for a feature branch (default)
  • base: A session on the main branch without creating a worktree
Base sessions let you chat with AI on your main branch without creating a worktree. Use them for quick questions or exploring the codebase.

Worktree Status

Worktrees are created asynchronously in the background:
  1. pending: Worktree creation in progress (git worktree add, setup script)
  2. ready: Worktree is ready to use
  3. error: Creation failed
  4. deleting: Worktree deletion in progress

Worktree Creation Workflow

1. User initiates creation

2. Backend emits events

3. UI updates in real-time

  • Shows pending state with spinner
  • Displays error toast on failure
  • Auto-opens worktree on success

Custom Worktrees Location

By default, Jean creates worktrees in ~/jean/<project-name>/<worktree-name>. You can customize this per-project:
Why customize? Place worktrees on a faster SSD, separate disk, or alongside your repos for easier access.

Project Configuration

MCP Server Management

Control which MCP (Model Context Protocol) servers are enabled for each project:
  • null or undefined: Inherit from global settings
  • Empty array []: No servers enabled
  • String array: Specific servers enabled for this project

Custom System Prompts

Append custom instructions to every AI session in a project:
Use cases:
  • Project-specific coding standards
  • Architecture guidelines
  • Testing requirements
  • Team conventions

Default AI Settings

Override global AI settings per-project:

Setup Scripts (jean.json)

Automate worktree initialization with setup scripts defined in jean.json at your project root:
The setup script runs automatically after creating each worktree. Results are stored:
This ensures dependencies are installed and built before you start working.

Archiving and Deletion

Archive a Worktree

Archiving soft-deletes a worktree (can be restored later):
  • Sets archived_at timestamp
  • Hides from main worktree list
  • Viewable in “Archived” modal
  • Deleted after retention period (configurable)

Permanently Delete

  • Removes git worktree from disk
  • Deletes all session data
  • Cannot be undone
Permanent deletion removes the worktree directory and all associated data. Make sure you’ve pushed any important changes to remote.

Sessions

Learn about managing multiple chat sessions per worktree

AI Chat

Configure AI backends and models for your projects