{"id":47600570,"url":"https://github.com/rabbyte-tech/jean2","last_synced_at":"2026-05-10T22:08:53.194Z","repository":{"id":340743471,"uuid":"1166519618","full_name":"rabbyte-tech/jean2","owner":"rabbyte-tech","description":"Your AI agent. One server. Any device. No baked-in behavior.","archived":false,"fork":false,"pushed_at":"2026-04-19T21:43:42.000Z","size":2485,"stargazers_count":15,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-19T23:38:34.440Z","etag":null,"topics":["agent","agents","ai-agent","ai-agents","coding-agent"],"latest_commit_sha":null,"homepage":"https://jean2.ai/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rabbyte-tech.png","metadata":{"files":{"readme":"README.md","changelog":"changelogs/client/v0.8.1.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-25T10:04:58.000Z","updated_at":"2026-04-19T21:43:46.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rabbyte-tech/jean2","commit_stats":null,"previous_names":["rabbyte-tech/jean","rabbyte-tech/jean2"],"tags_count":156,"template":false,"template_full_name":null,"purl":"pkg:github/rabbyte-tech/jean2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbyte-tech%2Fjean2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbyte-tech%2Fjean2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbyte-tech%2Fjean2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbyte-tech%2Fjean2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rabbyte-tech","download_url":"https://codeload.github.com/rabbyte-tech/jean2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbyte-tech%2Fjean2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32203362,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-23T20:19:26.138Z","status":"ssl_error","status_checked_at":"2026-04-23T20:19:23.520Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","agents","ai-agent","ai-agents","coding-agent"],"created_at":"2026-04-01T18:49:04.512Z","updated_at":"2026-04-24T00:01:17.532Z","avatar_url":"https://github.com/rabbyte-tech.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/promo.webp\" alt=\"Jean2 desktop client — chat interface, workspace selector, and tool execution\" width=\"800\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eYour AI agent. One server. Any device. No baked-in behavior.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  A coding assistant, a research agent, a personal automation — same binary, different configuration.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://jean2.ai/docs/getting-started\"\u003eGet Started\u003c/a\u003e ·\n  \u003ca href=\"https://jean2.ai\"\u003eDocs\u003c/a\u003e ·\n  \u003ca href=\"https://github.com/rabbyte-tech/jean2\"\u003eGitHub\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Quick Start\n\n### Install (macOS / Linux)\n\n```bash\ncurl -fsSL https://jean2.ai/install.sh | bash\n```\n\n### Run\n\n```bash\njean2 init\njean2 start\n```\n\nConnect a client:\n\n```bash\nnpx @jean2/client\n```\n\n\u003e Desktop apps available for macOS, Windows, and iOS. See the [setup guide](https://jean2.ai/docs/getting-started) for all options.\n\u003e\n\u003e For development from source, see [Contributing](#contributing).\n\n---\n\n## What Sets It Apart\n\n### 🧠 Any LLM\n\nConnect any combination of LLM providers — OpenAI, Anthropic, Google, OpenRouter, or any OpenAI-compatible endpoint. Switch providers and models per-session. Budget models for routine tasks, premium for hard problems. No vendor lock-in.\n\n### 🔧 Tools in Any Language\n\nWrite tools in any runtime — Bun, Node, Python, Bash, Go, Rust, anything. A tool is just a directory with a manifest and a script. Drop it in, the agent picks it up. No build step, no registration.\n\n### 🔌 MCP \u0026 Skills\n\nConnect any MCP server (local or remote, with OAuth). Define Skills as discoverable `SKILL.md` instruction sets. Both are automatically available to your agent sessions.\n\n### 🤖 Subagent Orchestration\n\nAgents spawn hierarchical subagents for complex tasks. Isolated sessions, inherited workspace context, cascading interrupts. Configure depth limits per preconfig.\n\n### 🌐 Access From Anywhere\n\nOne persistent server. REST + WebSocket under the hood. Desktop, mobile, or browser — all connect the same way. Works over Tailscale, VPN, or local network.\n\n### 🎯 Make It Yours\n\nSystem prompts, tools, and skills are all files on disk. Edit them, add them, remove them. Download preset bundles or build from nothing. Your agent, your rules.\n\n---\n\n## Use Cases\n\n| Use Case | Description                                                                                                                               |\n|----------|-------------------------------------------------------------------------------------------------------------------------------------------|\n| **AI-Powered Coding** | Connect Claude, GPT-5.4, or Gemini to your codebase. Subagents explore, refactor, and implement with full workspace isolation.            |\n| **Research \u0026 Analysis** | Give your agent tools to query APIs, scrape pages, and process documents. Isolated workspaces keep contexts separate.                     |\n| **Deployment \u0026 Ops** | Connect MCP servers for Kubernetes, AWS, or Terraform. Multi-step deployment pipelines via subagent orchestration.                        |\n| **Automation Workflows** | Create agent personalities for repetitive tasks. Skills let agents follow domain-specific workflows. Queue sessions for batch processing. |\n\n---\n\n## Tools\n\nA set of built-in tools to get started with `jean2 init` — or pick what you need and write your own in any language.\n\n| Tool | Description |\n|------|-------------|\n| **apply-patch** | Apply unified diff patches to files atomically |\n| **edit** | String replacements in files with fuzzy matching |\n| **glob** | Find files matching glob patterns |\n| **read-file** | Read files and directory listings |\n| **write-file** | Write content to files |\n| **grep** | Search files with regex patterns |\n\n[+9 more tools available](https://jean2.ai/docs/tools/registry) · [Explore all tools](https://jean2.ai/docs/tools/registry)\n\n\u003e Tools execute in sandboxed child processes. Define optional security checks for dangerous operations.\n\n---\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│                       Client Layer                              │\n│    ┌───────────┐  ┌──────────┐  ┌─────────────────────────┐     │\n│    │ Desktop   │  │ Mobile   │  │ Web (npx @jean2/client) │     │\n│    │ (Electron)│  │ (Tauri)  │  │                         │     │\n│    └────┬──────┘  └────┬─────┘  └──────────┬──────────────┘     │\n│         └──────────────┴─┬─────────────────┘                    │\n│                          │                                      │\n│              WebSocket + REST (any network)                     │\n│              local · Tailscale · VPN · public                   │\n└──────────────────────────┬──────────────────────────────────────┘\n                           │\n┌──────────────────────────┴─────────────────────────────────────┐\n│                    Server (@jean2/server)                      │\n│                                                                │\n│  ┌─────────────┐  ┌──────────┐  ┌───────────────────┐          │\n│  │ Agent Loop  │  │ Tool     │  │ MCP Manager       │          │\n│  │ (AI SDK v6) │  │ Executor │  │ (stdio + remote)  │          │\n│  └──────┬──────┘  └────┬─────┘  └────────┬──────────┘          │\n│         └──────────────┼─────────────────┘                     │\n│               ┌────────┴───────────┐                           │\n│               │   ~/.jean2/tools/  │                           │\n│               │   (any runtime)    │                           │\n│               └────────────────────┘                           │\n│                     ┌──────────────┐                           │\n│                     │ Subagent     │                           │\n│                     │ Orchestrator │                           │\n│                     └──────┬───────┘                           │\n│               ┌────────────┴────────────┐                      │\n│               │     SQLite Store        │                      │\n│               │ Sessions · Messages     │                      │\n│               │ Permissions · History   │                      │\n│               └─────────────────────────┘                      │\n│                                                                │\n│              Workspaces → directories on your machine          │\n└──────────────────────────┴─────────────────────────────────────┘\n```\n\n### Packages\n\n| Package | Description |\n|---------|-------------|\n| [`@jean2/server`](packages/server/) | Agent loop, tool execution, REST + WebSocket API, SQLite, daemon mode |\n| [`@jean2/client`](packages/client/) | React 19 + Vite 8 UI — chat, file browser, permissions, multi-server |\n| [`@jean2/sdk`](packages/sdk/) | Shared TypeScript types, WebSocket protocol, transport layer, REST clients |\n| [`@jean2/client-electron`](packages/client-electron/) | Electron desktop app — macOS and Windows |\n| [`@jean2/client-tauri`](packages/client-tauri/) | Tauri 2 native app — mobile (iOS, Android) |\n\n### Tech Stack\n\n| Layer | Technology |\n|-------|-----------|\n| Runtime | [Bun](https://bun.sh/) |\n| Server | [Hono](https://hono.dev/), AI SDK v6, SQLite |\n| Client | React 19, Vite 8, TypeScript |\n| UI | Tailwind CSS v4, shadcn/ui, Radix UI |\n| Desktop | [Electron](https://www.electronjs.org/) |\n| Mobile | [Tauri 2](https://tauri.app/) |\n| LLM | Vercel AI SDK v6, MCP SDK |\n\n---\n\n## Sessions\n\n- **Compact** — LLM-powered conversation summarization\n- **Fork** — Branch any session at any message\n- **Revert** — Undo to any previous point\n- **Interrupt** — Cancel generation with automatic cascade to subagents\n- **Queue** — Queue messages while the agent is busy\n- **Remote Terminal** — Full PTY terminal with multi-tab support\n\n---\n\n## Configuration\n\nAll configuration lives in `~/.jean2/` — model definitions, API keys, tools, preconfigs, and workspace data. See the [configuration docs](https://jean2.ai/docs/getting-started) for the full reference.\n\n---\n## License\n\n[Apache 2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabbyte-tech%2Fjean2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frabbyte-tech%2Fjean2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabbyte-tech%2Fjean2/lists"}