Jean is a free, open source ai assisted coding project written in TypeScript and released under Apache-2.0. It has 1,282 GitHub stars, 159 forks and 146 open issues, and was last pushed 6 hours ago. On this registry it ranks #21 of 24 tracked projects in AI Assisted Coding, with 5 head-to-head comparisons available. It gained 10 stars over the last 6 tracked days.

What is Jean?

What it is

Jean is a native desktop application for managing AI-assisted software development across multiple projects. It works with Claude CLI, Codex CLI, Cursor CLI, OpenCode, PI, Command Code, Grok, and Kimi Code, and it lives in the developer-tools and AI-assisted coding ecosystem, where agents are driven through local command-line interfaces rather than through a hosted service.

The concrete problem Jean addresses is the friction of coordinating many agent sessions, Git worktrees, terminals, code reviews, issue trackers, and project contexts on one machine. Instead of leaving those pieces in separate windows and scripts, it provides one workflow for creating worktrees, running chat sessions, inspecting diffs, opening editors, and tracking GitHub or Linear work. It also keeps execution local and uses the user's own CLI installations.

Key capabilities

  • Jean manages multiple projects and linked projects, and it automates Git worktree creation, archiving, restoration, and deletion.
  • It supports multiple sessions per worktree, with Plan, Build, and Yolo modes, plan approval, recaps, saved contexts, archiving, recovery, auto-naming, and canvas views.
  • Chat works with Claude, Codex, Cursor, OpenCode, PI, Command Code, Grok, and Kimi, with model selection, effort levels, MCP server support, multi-agent collaboration, attachments, chat search, custom prompts, and CLI profiles.
  • Magic commands investigate issues, pull requests, and workflows, and they support code review, AI commit messages, pull request content generation, merge conflict resolution, and release notes.
  • GitHub and Linear integrations provide tracker dashboards, issue and pull request context, Dependabot investigation, checkout of pull requests as worktrees, auto-archiving on merge, per-project API keys, and team configuration.
  • Web Access exposes the same interface over HTTP and WebSocket with token authentication, for desktop or headless jean-server processes.

Who uses it and how

  • Developers use Jean as a local control surface for projects, worktrees, chat sessions, terminals, diffs, and editor launches.
  • GitHub and Linear users use it to investigate issues and pull requests, load tracker context, create worktrees from pull requests, and archive work automatically on merge.
  • Remote users on a local network use Web Access from a browser, through a desktop installation or a headless jean-server process.

Getting started

The README directs users to GitHub Releases or jean.build, and macOS users can install it with Homebrew by tapping coollabsio/jean and installing the jean cask.

When to use it — and when not to

Jean is a good fit when you want a local, multi-project front end for existing AI coding CLIs, with Git worktree automation, GitHub and Linear context, and browser access to a self-run instance. It is less suitable if you need a fully hosted team service, because the README describes local CLI installations and self-run desktop or headless processes, and platform support is uneven: macOS is tested, Windows is not fully tested, and Linux is community tested.

project readme (upstream, from github) — read inline

Jean

A desktop AI assistant for managing multiple projects, worktrees, and chat sessions with Claude CLI, Codex CLI, Cursor CLI, OpenCode, PI, Command Code, Grok, and Kimi Code.

Tauri v2 · React 19 · Rust · TypeScript · Tailwind CSS v4 · shadcn/ui v4 · Zustand v5 · TanStack Query · Pierre Diffs · xterm.js

About the Project

Jean is an opinionated native desktop app built with Tauri that gives you a powerful interface for working with Claude CLI, Codex CLI, Cursor CLI, OpenCode, PI, Command Code, Grok, and Kimi Code across multiple projects. It has strong opinions about how AI-assisted development should work - managing git worktrees, chat sessions, terminals, GitHub and Linear integrations in one cohesive workflow.

No vendor lock-in. Everything runs locally on your machine with your own CLI installations.

For more information, take a look at jean.build.

Screenshots

Features

  • Project & Worktree Management - Multi-project support, linked projects for cross-project context, git worktree automation (create, archive, restore, delete), custom project avatars
  • Session Management - Multiple sessions per worktree, execution modes (Plan, Build, Yolo) with plan approval flows, session recap/digest, saved contexts with AI summarization, archiving with retention settings, recovery, auto-naming, canvas views
  • AI Chat (Claude, Codex, Cursor, OpenCode, PI, Command Code, Grok, Kimi) - Model selection and thinking/effort levels with per-mode overrides, MCP server support, multi-agent collaboration, file picker & image attachments, chat search, notification sounds, custom system prompts, custom CLI profiles
  • Magic Commands - Investigate issues/PRs/workflows, code review with finding tracking, AI commit messages, PR content generation, merge conflict resolution, release notes generation, customizable per-prompt model/backend/effort selection
  • GitHub Integration - Dashboard with Issues, PRs, Security Alerts, and Advisories tabs, Dependabot investigation, checkout PRs as worktrees, auto-archive on PR merge, workflow investigation
  • Linear Integration - Issue investigation, context loading, per-project API key and team configuration
  • Developer Tools - Multi-dock terminal (floating, left, right, bottom), command palette, open in editor (Zed, VS Code, VSCodium, Cursor, Xcode, IntelliJ), git operations (status, stash, revert, fetch/merge with conflict detection), diff viewer (unified & side-by-side), file tree with preview, debug panel with token usage tracking
  • Web Access - Every Jean instance (desktop or headless server) can expose the full UI over HTTP/WebSocket with token auth so you can use it from a browser on your network
  • Customization - Themes (light/dark/system), custom fonts, customizable AI prompts, configurable keybindings, mobile swipe gestures

Installation

Download the latest version from the GitHub Releases page or visit jean.build.

Homebrew (macOS)

brew tap coollabsio/jean
brew install --cask jean

Building from Source

Prerequisites:

  • Node.js
  • Rust
  • Windows only: In the Visual Studio Installer, ensure the "Desktop development with C++" workload is selected, which includes:
    • MSVC C++ build tools
    • Windows SDK (provides kernel32.lib and other system libraries required by Rust)

See CONTRIBUTING.md for full development setup and guidelines.

Platform Support

  • macOS: Tested
  • Windows: Not fully tested
  • Linux: Community tested (Arch Linux + Hyprland/Wayland)

Web Access

Every Jean instance can run Web Access: an embedded HTTP + WebSocket server that serves the same UI in a browser. That applies to both:

Mode How you get Web Access
Native desktop (macOS / Windows / Linux) Settings → Web Access - enable the HTTP server, set port/bind address, copy the token URL
Headless server (jean-server) Always on - the process is the Web Access endpoint

Use it to open Jean from another machine on your LAN, a phone/tablet browser, or a remote host. Token authentication is on by default; keep it enabled for any non-localhost bind.

Network access (recommended: Tailscale)

Web Access binds a normal TCP port (default 3456). For access beyond the local machine, prefer a private mesh VPN rather than exposing the port to the public internet:

  • Tailscale (recommended) - prefer jean-server --host 127.0.0.1 plus tailscale serve --bg 3456 so the browser gets real HTTPS (clipboard and other secure-context APIs work). Binding the Tailscale IP directly (--host tailscale) is HTTP-only and browsers will treat it as an insecure origin.
  • Other options: WireGuard, ZeroTier, SSH tunnel, or a reverse proxy with TLS in front of 127.0.0.1

Keep token auth enabled, use a long random token (openssl rand -base64 32), and avoid binding 0.0.0.0 on untrusted networks unless you also terminate TLS and restrict who can reach the port.

Desktop app

  1. Open Settings → Web Access
  2. Enable HTTP server (optionally turn on Auto-start)
  3. Set Port and Bind address (127.0.0.1 for local only, LAN IP, 0.0.0.0, or your Tailscale IP)
  4. Open the shown URL (includes ?token=...) in a browser, or share it with devices that can reach that host

The native app can also connect to a remote Jean Web Access server (title bar server icon → Add remote) while keeping the desktop shell.

Headless server (jean-server)

Run Jean as a standalone Linux server with browser Web Access - no desktop window, GTK, or WebView required. Linux amd64 and arm64 only (glibc + OpenSSL 3; Ubuntu 22.04+ / Debian 12+ recommended).

Install (release binary + systemd)

Interactive install (prompts for bind interface + port when a TTY is available):

curl -fsSL https://raw.githubusercontent.com/coollabsio/jean/main/scripts/install-jean-server.sh | sudo bash

Non-interactive (defaults to 127.0.0.1:3456, or pass --host / --port):

curl -fsSL https://raw.githubusercontent.com/coollabsio/jean/main/scripts/install-jean-server.sh | sudo bash -s -- -y

Or from a clone:

sudo ./scripts/install-jean-server.sh --host 127.0.0.1 --port 3456 -y

The installer downloads the latest release, installs the binary, writes an env file (host/port/token), and registers a systemd service. Re-run to upgrade; existing tokens are preserved unless you pass --token.

Common options:

# Public bind with an explicit token
sudo ./scripts/install-jean-server.sh \
  --host 0.0.0.0 \
  --port 3456 \
  --token "$(openssl rand -base64 32)" \
  -y

# Tailscale-only bind (auto-detect Tailscale IPv4) - recommended for remote use
sudo ./scripts/install-jean-server.sh --host tailscale -y

# Current user only (user systemd unit)
./scripts/install-jean-server.sh --user-install --host 127.0.0.1 -y
Run manually
jean-server --host 127.0.0.1 --port 3456
# or with an explicit token:
jean-server --host 127.0.0.1 --port 3456 --token "$JEAN_TOKEN"

--host accepts localhost, presets (tailscale, lan, 0.0.0.0, …), or any IP/hostname to bind only that interface. Docker images are also published as ghcr.io/coollabsio/jean-server.

See docs/headless-server.md for systemd details, reverse proxies, updates, native remote connections (including Install via SSH from user + IP), and security notes.

Contributing

See CONTRIBUTING.md for development setup and guidelines.

Core Maintainer

Andras Bacsai

readme truncated — read the full docs on github

Frequently asked questions

Is Jean free to use?

Jean is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Jean do?

Parallel AI agent workspaces with Git and project context

What is Jean written in?

Jean is primarily written in TypeScript. Its source is publicly available at https://github.com/coollabsio/jean, and it has 1,282 GitHub stars.