Your AI agent.
One server. Any device.
No baked-in behavior.

$curl -fsSL https://jean2.ai/install.sh | bash
$jean2 init
$jean2 start
$jean2 open
Jean2 desktop client — neutral theme, dark mode

Why "2"?

Jean connects to things. The browser. Your codebase. Any LLM. Jean2 is the hub. Everything else is a surface you choose to connect.

What Jean2 can do

Jean2 doesn't ship with a coding assistant. Or a researcher. Or an automation tool. It ships with the building blocks to make any of those. What you get out is proportional to what you put in.

jean2 · goal-mode
Refactor auth.ts to use the new token format. All tests must pass.
Goal Modebun test passes
read_file("auth.ts")
edit_file("auth.ts") · 12 changes
✗ 2/12 tests failing — continue
read_file("auth.test.ts")
edit_file("auth.ts") · 4 changes
✓ All 12 tests passing — goal met

Set a goal. Walk away.

Switch to Goal mode and define what "done" looks like. A separate evaluator inspects actual tool output after every turn. Test results. Lint output. File contents. Not the agent saying it's finished.

  • Plain-language completion condition
  • Independent evaluator checks evidence, not claims
  • Loops silently until the check is green
jean2 · browser-control
browser_discover_elements
browser_dom_action · click
browser_dom_action · type
browser_dom_action · submit
login.example.com
email input
password
Sign in

It controls Chrome.

Jean2Browser gives the agent real browser hands. Read pages, click elements, fill forms, navigate tabs. Same tool-use interface as files and shell. No Playwright. No separate scripting layer.

  • The web is just another surface
  • Install the extension, agent gets hands
  • Read, click, type, navigate — all as tool calls
jean2 · cross-session-memory
Session 1 · Day 1
We use pnpm, not npm.
memory · save "package manager: pnpm"
Session 2 · Day 14
Install the new dependency.
pnpm add zod · no prompt needed
✓ Recalled from MEMORY.md

It remembers. Across sessions.

Tell it "we use pnpm" once. It writes it down. Two weeks later, in a different session, it already knows. The agent maintains its own memory files and reads them every time a session starts.

  • Two scopes: workspace (shared) and agent (personal)
  • The agent writes memory itself
  • Searches past sessions for prior solutions
~/.jean2/agents/typescript-specialist/
  ├── MEMORY.md     # project facts
  ├── USER.md       # your preferences
  ├── skills/
  │   ├── debugging/
  │   │   └── SKILL.md
  │   └── deployment/
  │       └── SKILL.md
  └── MEMORY.md, USER.md travel
     across every workspace

It has a home.

Promote a preconfig to an agent and it gets a persistent home. Personal memory that travels across every project. Skills it refined last month show up in a new workspace.

▸ workflow("Audit codebase for security")
  Decomposed into 4 subtasks:
  ✓ Scan dependencies
  ✓ Review auth flows
  ⋮ Check input validation
  → Synthesize results...

It splits hard problems apart.

Give it a complex task. It decomposes the work, fans out concurrent subagents, and synthesizes one answer. Each subagent runs its own session with its own model and tools.

Scheduled Jobs

  Daily summary     09:00
  Dependency check  Mon
  Changelog gen     Fri

Last run: 09:00 · ok

It runs without you.

Schedule a job and the agent runs on its own. Daily summaries, periodic checks, batch processing. Each run spawns a session with a prompt you define. No client open, no human in the loop.

▸ skill_manage → create
  # Deployment Checklist
  1. bun run typecheck
  2. bun run test
  3. Verify version.ts
  → Saved as SKILL.md

It writes its own playbooks.

The agent notices patterns in your work and creates SKILL.md files encoding those workflows. Next time, it just does it. With agent-managed skills enabled, it programs itself.

Desktop (macOS)   Phone (PWA)

┌─────────────┐   ┌─────────┐
│ Session #42 │   │ Session │
│  Active     │<->│  #42    │
│  Agent loop │   │  Active │
└─────────────┘   └─────────┘

One server. Any device. Always on.

A persistent server running file I/O, terminal sessions, and tool execution. 24/7. PWA on desktop, phone, tablet. Connect over localhost, Tailscale, or your VPN.

Jean2Browser is the first plugin. Your agent controls Chrome, reads pages, fills forms. More extensions are coming, each opening a new surface. Same server.

Get Jean2Browser

Jean, everywhere

PWA. Any browser, any device

Desktop, phone, tablet. It runs everywhere. No app store needed. Works over localhost, Tailscale, or your VPN.

macOS Desktop App

Native Electron app with system tray integration, keyboard shortcuts, and a polished desktop experience. Linux and Windows coming soon.

Download for macOS

What will Jean become?

A coding agent. A research assistant. A daily automation that runs while you sleep. Same server, different configuration. The docs walk you through every step.