Your AI agent.
One server. Any device.
No baked-in behavior.
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.
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
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
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 workspaceIt 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 Jean2BrowserJean, 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 macOSWhat 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.
