[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-94722":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":15,"starSnapshotCount":15,"syncStatus":14,"lastSyncTime":36,"discoverSource":37},94722,"rakazo","elie222\u002Frakazo","elie222","Open-source Grok Bot alternative. Choose your own model and sandbox.","https:\u002F\u002Frakazo.com",null,"TypeScript",863,109,2,0,344,481,80.12,"Apache License 2.0",false,"main",true,[24,25,26,27,28,29,30,31,32],"ai-agents","chatgpt","docker","electron","expo","grok","llm","self-hosted","typescript","2026-08-24 04:01:22","# Rakazo\n\n![Rakazo — AI teammates you actually own](.\u002Fdocs\u002Freadme-hero.png)\n\nOpen-source Grok Bot alternative, built with Cursor and Grok 4.6.\n\nWeb, desktop, and mobile. Bring your own AI and sandbox. The product is still early (beta).\n\nEach bot has one thread, one computer, memory, routines, and history. A bot can also spawn more bots — each a regular peer with its own thread and computer — or run short-lived subagents inside the current turn. This repository is the complete core product — it runs without a Rakazo-operated control plane.\n\n## Demo\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fdccdeddb-2134-4a56-8eed-b2e591736b1c\n\n## Stack\n\n- TypeScript\n- React 19, Vite, Tailwind\n- Electron\n- Expo\n- Hono, oRPC\n- Postgres, Prisma\n- Better Auth\n- Graphile Worker\n- Pi\n- Any sandbox provider (tested with Docker and E2B)\n- Composio\n\n## Requirements\n\n- Node.js 22+\n- pnpm 9\n- Docker Desktop (Postgres plus the graphical bot computer)\n\n## Run locally (web)\n\nFrom the repo root:\n\n```bash\ncp .env.example .env\n```\n\nEdit `.env`:\n\n- Set `BETTER_AUTH_SECRET` and `ENCRYPTION_KEY` to long random strings before any network exposure. Placeholder values only work in local `development` \u002F `test` runs.\n- Put your OpenRouter key in `OPENROUTER_API_KEY` (or skip the key and paste one during onboarding).\n- ChatGPT Plus or Pro, GitHub Copilot, or SuperGrok \u002F X Premium: skip the key and sign in on the **Connect a model** screen. Pick **OpenAI Codex**, **GitHub Copilot**, or **xAI**, then sign in with the device code Pi shows. Claude Pro is not in the Rakazo UI yet — Pi's Claude login opens a localhost callback, which does not work from the web app.\n- Optional: `COMPOSIO_API_KEY` if you want Plugins to talk to live apps.\n\nThen:\n\n```bash\ndocker compose --env-file .env -f infra\u002Fcompose\u002Fdocker-compose.yml up postgres -d\npnpm install\npnpm db:generate\npnpm db:migrate\npnpm sandbox:build\npnpm dev\n```\n\n`pnpm dev` starts the API (`:3100`), Graphile Worker, Vite web app (`:5173`), and sandbox supervisor (`:7091`).\n\nOpen [http:\u002F\u002F127.0.0.1:5173](http:\u002F\u002F127.0.0.1:5173). Sign up, pick a model from the Pi catalog (paste an API key, sign in with ChatGPT \u002F Copilot \u002F SuperGrok, or Skip if the deployment key is set), create a bot, send a message. The computer pane is a live Linux desktop. The model can observe and control the screen, use browsers and other graphical applications, run terminal commands, and work with files. You can interact with the same desktop while it runs; taking control makes the viewer editable but does not impose an exclusive agent\u002Fuser lock. Ask a bot to spawn another bot, or to run a subagent for work that should stay inside this turn.\n\nConfirm the product path:\n\n```bash\ncurl -s http:\u002F\u002F127.0.0.1:3100\u002Fhealth\n```\n\nYou want `\"runtime\":\"pi\"`, `\"sandbox\":\"docker\"`, `\"jobs\":\"graphile\"`, and `\"realtime\":\"postgres\"`. `\"composio\":true` only if the Composio key is set.\n\nProduct defaults are Pi + Docker + Graphile. `pnpm test` pins the emulators (`AGENT_RUNTIME=scripted`, `SANDBOX_PROVIDER=fake`, `WAKEUP_DRIVER=memory`) so default tests never call live models or Composio.\n\n### Computer and app modes\n\nThe app you open and the computer provider are separate choices. Web, Electron, and mobile are clients of the same API. Docker stays the default. In the Electron app the deployment owner is asked once whether bots should keep using Docker or run on this Mac as you.\n\n| `SANDBOX_PROVIDER` | Where agent commands run | Best fit | Isolation notes |\n| --- | --- | --- | --- |\n| `docker` (default) | A Docker computer on your machine. The Electron app can switch this to This Mac without changing the env var. | Quick local setup and trusted single-machine self-hosting | Workspace bots share the Team Computer by default; Private computers are optional. The supervisor controls the local Docker daemon, so keep its port private; Rakazo does this by default. |\n| `e2b` | A remote E2B desktop through the E2B SDK | Public or multi-user deployments | Team and Private computers are isolated from the Rakazo application host. Requires `E2B_API_KEY`. Workspace and browser-profile data are checkpointed into Rakazo-owned `DATA_DIR`, so the provider machine is not the durable source of truth. This Mac is not available. |\n| `desktop` | Directly on the API\u002Fworker host. Working directories under the process user's home folder are allowed. | A trusted single-user local process | Least isolated. Model-initiated shell commands run with the Rakazo process's OS permissions. Do not use it on a public or shared server. The Electron first-run \"This Mac\" choice uses this provider while leaving `SANDBOX_PROVIDER=docker`. |\n| `fake` | An in-process emulator | Tests only | Does not run a real computer. |\n\nDocker remains the recommended quick start for someone running Rakazo on their own machine. E2B is the safer boundary when untrusted users or public traffic share a deployment.\n\nIf this Postgres was created with `prisma db push` before checked-in migrations existed, mark the baseline once:\n\n```bash\npnpm --filter @rakazo\u002Fdb exec prisma migrate resolve --applied 0001_init\n```\n\n## Run the desktop app\n\nThe Electron shell loads the same web UI. Leave `pnpm dev` running, then:\n\n```bash\npnpm --filter @rakazo\u002Fdesktop dev\n```\n\nNative red \u002F yellow \u002F green buttons close, minimize, and zoom that window. They do nothing in the browser tab. On first launch the desktop app asks whether bots should keep using Docker or run on this Mac as you. Docker stays the default. macOS will not show a permission prompt for that choice — the consent is Rakazo's.\n\nPoint Electron at a different origin with `RAKAZO_WEB_URL` (default `http:\u002F\u002F127.0.0.1:5173`).\n\nPackaged installers (optional):\n\n```bash\npnpm --filter @rakazo\u002Fdesktop pack\n```\n\nOutputs land in `apps\u002Fdesktop\u002Fout\u002F` (macOS dmg\u002Fzip, Windows NSIS, Linux AppImage). Those builds still need a running API and web origin.\n\n## Test\n\n```bash\npnpm test              # unit, property, and in-process contract tests\npnpm test:integration  # Postgres journeys, Graphile jobs, LISTEN\u002FNOTIFY\npnpm test:e2e          # Playwright against the emulated stack\npnpm test:e2e -- --sandbox=e2b # the same deterministic suite against real E2B\npnpm test:topology     # local Docker + Graphile worker recovery (needs Docker)\npnpm test:canary       # live OpenRouter \u002F E2B canaries\n# explicit real vision-model + real E2B desktop acceptance test:\nCOMPUTER_E2E_MODEL=\u003Cvision-capable-openrouter-model-id> pnpm test:computer\n```\n\nPull requests retain the Playwright HTML report, screenshots, traces, and videos as short-lived\nGitHub Actions artifacts. Successful merges and the nightly verification publish a persistent run\nhistory plus a scan-friendly screenshot gallery at\n\u003Chttps:\u002F\u002Frakazogithubactions.fsn1.your-objectstorage.com\u002Fplaywright\u002Findex.html>.\n\nThe Playwright workflow can also be started manually with **Sandbox provider** set to `e2b`.\nThat option requires `E2B_API_KEY`, keeps the deterministic scripted agent runtime, and destroys\nthe provider machines after the run. The default and all automatic runs remain on `fake`.\n\n`pnpm test:topology`, `pnpm test:canary`, and `pnpm test:computer` are for running the product path on your machine. They are not part of pull-request CI. The computer acceptance test also requires `E2B_API_KEY` and `OPENROUTER_API_KEY` (the command reads the root `.env`) and uses a temporary Postgres container. It proves an actual model can observe and click a real browser, then use the sandbox terminal and files.\n\nSee [`docs\u002Fcomputer-runtime.md`](.\u002Fdocs\u002Fcomputer-runtime.md) for the agent\u002Fruntime boundary, provider switching, and persistence contract.\n\n## Layout\n\n```\napps\u002Fweb api worker desktop mobile www\npackages\u002Fcore contracts db auth memory ui-web adapter-kit adapters testkit\ninfra\u002Fcompose sandboxes\n```\n\n`apps\u002Fwww` is the public marketing site (`rakazo.com`). It is not the signed-in product.\n\n## Self-host and Cloud\n\nSee `docs\u002Fself-host.md`. Cloud and self-hosted editions share the same application and contracts. There is no separate Rakazo-hosted control plane in this repo yet — a public Cloud deploy is a VPS (or E2B) plus the marketing site, not a serverless push of the chat app.\n\n---\n\n[Inbox Zero Inc.](https:\u002F\u002Fwww.getinboxzero.com\u002F?utm_source=rakazo&utm_medium=github&utm_campaign=readme)\n","Rakazo 是一个开源的、可自托管的 AI 代理（AI agent）运行平台，提供类似 Grok Bot 的本地化智能体协作能力。它支持用户自主选择大模型（如 OpenAI、Claude、xAI、Copilot 等）、自定义沙箱环境（Docker 或 E2B），并为每个 AI 代理配备独立线程、图形化桌面沙箱、内存、历史与可编程例程；支持代理间协作、嵌套子代理及跨端（Web\u002F桌面\u002F移动端）统一控制。技术栈基于 TypeScript、React 19、Electron、Expo 和 Hono，后端集成 Postgres、Graphile Worker 与 Better Auth，强调隐私可控与去中心化部署。适用于需要本地化 AI 自动化、安全敏感场景下的智能体实验、AI 工具链编排及私有 AI 助手开发等需求。","2026-08-15 02:30:03","CREATED_QUERY"]