{"id":49832121,"url":"https://github.com/bermudi/openclaw-mini","last_synced_at":"2026-05-13T21:04:40.149Z","repository":{"id":345458520,"uuid":"1184890147","full_name":"bermudi/openclaw-mini","owner":"bermudi","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-14T13:37:31.000Z","size":2746,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-14T15:29:52.302Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bermudi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-03-18T03:03:45.000Z","updated_at":"2026-04-14T13:37:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/bermudi/openclaw-mini","commit_stats":null,"previous_names":["bermudi/openclaw-mini"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bermudi/openclaw-mini","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bermudi%2Fopenclaw-mini","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bermudi%2Fopenclaw-mini/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bermudi%2Fopenclaw-mini/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bermudi%2Fopenclaw-mini/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bermudi","download_url":"https://codeload.github.com/bermudi/openclaw-mini/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bermudi%2Fopenclaw-mini/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32999522,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"ssl_error","status_checked_at":"2026-05-13T13:14:51.610Z","response_time":115,"last_error":"SSL_read: 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":[],"created_at":"2026-05-13T21:04:35.150Z","updated_at":"2026-05-13T21:04:40.142Z","avatar_url":"https://github.com/bermudi.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenClaw Mini\n\nOpenClaw Mini is a lightweight OpenClaw-inspired agent runtime built with Next.js, Bun, Prisma, and local markdown-backed context files.\n\n## Quick start\n\n1. Install dependencies:\n   ```bash\n   bun install\n   ```\n2. Initialize the database:\n   ```bash\n   bun run db:push\n   ```\n3. Run the interactive setup wizard:\n   ```bash\n   bun run setup\n   ```\n   This guides you through provider keys, auth, workspace bootstrap, and optional\n   channel integrations. Run `bun run setup --doctor` at any time to check install health.\n4. Start the app:\n   ```bash\n   bun run dev\n   ```\n\n\u003e **Manual setup:** If you prefer to configure by hand, copy `examples/openclaw.json`\n\u003e to `~/.openclaw/openclaw.json`, set `OPENCLAW_CONFIG_PATH` to override the path,\n\u003e and see `SETUP.md` for the full reference.\n\n## Internal API auth\n\nOpenClaw Mini now protects admin APIs and trusted service boundaries with `Authorization: Bearer \u003ctoken\u003e`.\n\n- Set `OPENCLAW_API_KEY` for the Next.js admin APIs, scheduler, and WebSocket `/broadcast` ingress.\n- The scheduler and internal WS client automatically send this bearer token once it is configured.\n- Startup fails fast if `OPENCLAW_API_KEY` is missing.\n- For local-only testing, you can temporarily set `OPENCLAW_ALLOW_INSECURE_LOCAL=true` to bypass internal auth with a warning.\n- Browser clients (`/chat` and dashboard send-message actions) do not embed bearer tokens; they only work in local insecure mode or behind an authenticating reverse proxy.\n- Webhook signature verification remains separate; webhook secrets still use their own signature headers.\n\n## Telegram transport\n\n- `TELEGRAM_TRANSPORT` controls inbound Telegram delivery.\n- The default is `webhook`; set it to `polling` for local or single-instance long polling.\n- Polling mode is single-consumer only, so run one scheduler instance per bot token.\n- Keep `TELEGRAM_WEBHOOK_SECRET` configured when using webhook mode.\n\n## Architecture\n\nOpenClaw Mini uses a unified runtime architecture with three main components:\n\n```text\n┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐\n│   Next.js App   │  │  Runtime (Bun)  │  │   Dashboard     │\n│   (API routes)  │  │  (Task/Trigger  │  │  (Next.js dev   │\n│                 │  │   loops, WS)    │  │   server)       │\n└────────┬────────┘  └────────┬────────┘  └────────┬────────┘\n         │                    │                     │\n         └────────────────────┴─────────────────────┘\n                              │\n                    ┌─────────┴─────────┐\n                    │   SQLite + Files  │\n                    │   (Memory, Tasks) │\n                    └───────────────────┘\n```\n\n- **Next.js App**: HTTP API routes, webhook handlers, chat UI\n- **Runtime**: In-process task dispatch, trigger scheduling, WebSocket server, channel adapters\n- **Dashboard**: Optional separate dev server for agent management UI\n\nAll components share the same database and memory files. The runtime maintains persistent connections for Telegram, WhatsApp, and WebSocket clients.\n\n## Event flow\n\nEvents flow through an in-memory event bus with optional WebSocket broadcasting:\n\n```text\nRuntime / Next.js\n       │\n       │ eventBus.emit()\n       v\n  eventBus routes ──\u003e local listeners (hooks, subscriptions)\n       │\n       └─\u003e WebSocket broadcast (dashboard clients)\n```\n\n- `eventBus.emit()` returns `Promise\u003cvoid\u003e` for async delivery confirmation\n- Use `void eventBus.emit(...)` for fire-and-forget paths\n- The WebSocket server runs in-process within the runtime\n\n## Runtime provider configuration\n\nProvider and model configuration now lives in `openclaw.json`.\n\n- Default path: `~/.openclaw/openclaw.json`\n- Override path: `OPENCLAW_CONFIG_PATH=/absolute/path/to/openclaw.json`\n- Format: JSON5-compatible `openclaw.json` with `providers` and `agent` sections\n- Secrets: use `${ENV_VAR}` in provider `apiKey` fields instead of hardcoding keys\n- Reloads: config changes are watched and the provider registry reloads without restarting the app\n- Required: the runtime fails fast with a helpful example if `openclaw.json` does not exist\n\nA complete example is available at `examples/openclaw.json`:\n```json\n{\n  \"providers\": {\n    \"openai\": {\n      \"apiType\": \"openai-chat\",\n      \"apiKey\": \"${OPENAI_API_KEY}\"\n    }\n  },\n  \"agent\": {\n    \"provider\": \"openai\",\n    \"model\": \"gpt-4.1-mini\"\n  }\n}\n```\n\n## More setup details\n\nSee `SETUP.md` for the full setup guide, sub-agent override behavior, troubleshooting, and background service instructions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbermudi%2Fopenclaw-mini","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbermudi%2Fopenclaw-mini","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbermudi%2Fopenclaw-mini/lists"}