Go to file
王性驊 156e243ee6 fix avator 2026-09-02 15:38:57 +08:00
.agents/skills/composio first commit 2026-09-02 00:51:19 +08:00
.github first commit 2026-09-02 00:51:19 +08:00
apps fix avator 2026-09-02 15:38:57 +08:00
docs fix avator 2026-09-02 15:38:57 +08:00
infra fix avator 2026-09-02 15:38:57 +08:00
packages fix avator 2026-09-02 15:38:57 +08:00
scripts fix avator 2026-09-02 15:38:57 +08:00
.dockerignore first commit 2026-09-02 00:51:19 +08:00
.env.example fix avator 2026-09-02 15:38:57 +08:00
.gitattributes first commit 2026-09-02 00:51:19 +08:00
.gitignore first commit 2026-09-02 00:51:19 +08:00
.npmrc first commit 2026-09-02 00:51:19 +08:00
AGENTS.md first commit 2026-09-02 00:51:19 +08:00
CHANGELOG.md first commit 2026-09-02 01:03:28 +08:00
CLAUDE.md first commit 2026-09-02 00:51:19 +08:00
CONTRIBUTING.md fix avator 2026-09-02 15:38:57 +08:00
LICENSE first commit 2026-09-02 00:51:19 +08:00
Makefile fix avator 2026-09-02 15:38:57 +08:00
README.md fix avator 2026-09-02 15:38:57 +08:00
SECURITY.md first commit 2026-09-02 01:03:28 +08:00
SETUP_PROMPT.md fix avator 2026-09-02 15:38:57 +08:00
biome.json first commit 2026-09-02 00:51:19 +08:00
package.json fix avator 2026-09-02 15:38:57 +08:00
pnpm-lock.yaml first commit 2026-09-02 00:51:19 +08:00
pnpm-workspace.yaml first commit 2026-09-02 00:51:19 +08:00
skills-lock.json first commit 2026-09-02 00:51:19 +08:00
tsconfig.base.json first commit 2026-09-02 00:51:19 +08:00
turbo.json first commit 2026-09-02 00:51:19 +08:00
vitest.config.ts fix avator 2026-09-02 15:38:57 +08:00

README.md

BangSo Bot

GitHub stars Discord

BangSo Bot — AI teammates you actually own

BangSo Bot is an open-source platform for running persistent AI teammates. It is available on the web, as an Electron desktop app, and through an Expo mobile app. Bring your own model and computer provider, or run the complete stack locally.

BangSo Bot is in beta. Learn more at rakazo.com.

Features

  • Persistent bots with their own conversations, memory, routines, and history
  • Voice mode: speak replies, dictate, and call a bot. Bring your own ElevenLabs, OpenAI, or Cartesia key
  • Shared Team Computers and isolated Private computers
  • Browser, terminal, file, and graphical desktop access
  • Bots that can delegate to peer bots or short-lived subagents
  • Bring-your-own model credentials through Pi
  • App integrations through Composio or Pipedream Connect, plus user-installed Treg, remote MCP, and OpenAPI tool sources
  • Docker, E2B, Daytona, Box, and trusted local-computer support

Demo

https://github.com/user-attachments/assets/dccdeddb-2134-4a56-8eed-b2e591736b1c

Stack

  • TypeScript
  • React 19, Vite, and Tailwind CSS
  • Electron and Expo
  • Hono and oRPC
  • PostgreSQL and Prisma
  • Better Auth
  • Graphile Worker
  • Pi
  • Docker, E2B, Daytona, and Box
  • Composio, Pipedream Connect, MCP, and OpenAPI integrations

Quick start (published images)

You need Docker Engine, the Compose plugin, curl, and OpenSSL. No clone or Node install.

mkdir -p rakazo && cd rakazo &&
curl -fsSLO https://raw.githubusercontent.com/elie222/rakazo/main/infra/compose/install-images.sh &&
bash install-images.sh

The installer downloads the Compose files, creates .env with random secrets, and starts BangSo Bot. It preserves an existing .env when rerun.

Open http://127.0.0.1:5173, create an account, and connect a model. Local Docker computers are on by default. Optional remote providers: e2b, daytona, or box with the matching API key.

Default image tag is edge (main builds, linux/amd64). Details and tags: self-hosting guide.

For an agent-assisted install, use SETUP_PROMPT.md.

Local development (source checkout)

You need Node.js 22+, pnpm 9, Docker, and Make.

git clone https://github.com/elie222/rakazo.git
cd rakazo
make up

That is the local baseline: a bangso Linux account in the computer image, Traditional Chinese UI, sudo on that account, and a rebuilt rakazo/computer:local image. make up copies .env.example when .env is missing, injects blank secrets and computer defaults, then starts the stack at http://127.0.0.1:5173.

Changeable values live in .env. Edit them, then run make up again. Leave a key blank and make fills the local default (COMPUTER_USER_PASSWORD=bangso, COMPUTER_ALLOW_SUDO=1, VITE_DEFAULT_UI_LOCALE=zh-TW) or a random secret. Values already set are left alone.

You can also set OPENROUTER_API_KEY, or connect a supported model provider during onboarding.

Managed app catalogs are optional. Set COMPOSIO_API_KEY for Composio, or the PIPEDREAM_CLIENT_ID, PIPEDREAM_CLIENT_SECRET, and PIPEDREAM_PROJECT_ID trio for Pipedream Connect. Users can add an HTTPS MCP server, Treg endpoint, or OpenAPI JSON document from Integrations without enabling either managed catalog. Connector credentials are encrypted on the server and are never returned by the API.

Treg is usage-metered. Self-hosters supply their own Treg token; operators embedding Treg in a hosted product should review Treg's integration terms, which require a written agreement for hosted resale.

make down stops local Postgres without deleting volumes. make image only rebuilds the computer image. pnpm start:local is the same stack without forcing an image rebuild when the image already exists.

To run the complete stack in Docker and expose only the web entry point to the local network, run pnpm start:docker-lan. The script detects the Mac's LAN IPv4 address and prints the URL to open from another device. API, Postgres, worker, supervisor, and sandbox ports remain private.

Open http://127.0.0.1:5173, create an account, connect a model, and create your first bot.

For deployment, provider selection, backups, and upgrades, see the self-hosting guide.

Desktop and mobile

The Electron and Expo apps are clients of the same BangSo Bot API used by the web app.

With the development stack running, launch Electron with:

pnpm --filter @rakazo/desktop dev

On first run the desktop app asks whether to use the BangSo Bot stack on this computer (http://127.0.0.1:5173) or connect to an existing server. Public servers must use HTTPS; HTTP is accepted only for loopback and private LAN addresses (not link-local). The app verifies BangSo Bot's health endpoint before saving, and later launches go straight to that instance.

Use Change BangSo Bot Server… in the application menu to reconnect. Closing that window without saving returns to the previous instance. For development automation, set RAKAZO_WEB_URL to point the shell somewhere else without changing the saved instance, or RAKAZO_FORCE_SETUP=1 to run setup again.

Mobile build and release instructions live in docs/mobile-release.md.

Web UI language

The web (and Electron-hosted) UI supports English, Deutsch, 한국어, Türkçe, हिन्दी, Português (Brasil), and 繁體中文. Change it under Settings → Language. The marketing homepage (apps/www) is available in en/de/ko via footer language links (/, /de/, /ko/); other marketing pages stay English.

Development

BangSo Bot is a TypeScript monorepo built with React, Electron, Expo, Hono, Postgres, Prisma, Graphile Worker, and Pi.

apps/       web, api, worker, desktop, mobile, and public website
packages/   domain, contracts, persistence, adapters, UI, and test tooling
infra/      local services and computer images
docs/       architecture, operations, and release guides

Common checks:

pnpm lint
pnpm check
pnpm test
pnpm test:integration
pnpm test:e2e

See CONTRIBUTING.md for the development workflow and test matrix.

Documentation

pnpm test              # unit, property, and in-process contract tests
pnpm test:integration  # Postgres journeys, Graphile jobs, LISTEN/NOTIFY
pnpm test:e2e          # Playwright against the emulated stack
pnpm test:e2e -- --sandbox=e2b # the same deterministic suite against real E2B
pnpm test:e2e -- --sandbox=daytona # the same suite against real Daytona
pnpm test:e2e -- --sandbox=box # the same suite against real Box
pnpm test:topology     # local Docker + Graphile worker recovery (needs Docker)
pnpm test:canary       # live OpenRouter / E2B / Box canaries
# explicit real vision-model + real E2B desktop acceptance test:
COMPUTER_E2E_MODEL=<vision-capable-openrouter-model-id> pnpm test:computer

Contributing

The Playwright workflow can also be started manually with Sandbox provider set to e2b, daytona, or box. Those options require E2B_API_KEY, DAYTONA_API_KEY, or BOX_API_KEY, keep the deterministic scripted agent runtime, and destroy the provider machines after the run. The default and all automatic runs remain on fake. Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request. For security vulnerabilities, follow SECURITY.md instead of filing a public issue.

BangSo Bot is licensed under the Apache License 2.0.

Questions and ideas are welcome in the BangSo Bot Discord community.