[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81383":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":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":40,"readmeContent":41,"aiSummary":42,"trendingCount":16,"starSnapshotCount":16,"syncStatus":43,"lastSyncTime":44,"discoverSource":45},81383,"octo-web","Mininglamp-OSS\u002Focto-web","Mininglamp-OSS","Web & desktop (Electron) client for the OCTO open workplace — one React + TypeScript codebase shipping browser and PC surfaces, with first-class AI agent UX.","https:\u002F\u002Fgithub.com\u002FMininglamp-OSS",null,"TypeScript",46,21,37,33,0,5,8,9,15,4.03,"Apache License 2.0",false,"main",[26,27,28,29,30,31,32,33,34,35,36,37,38,39],"ai-agent","chat","desktop-app","electron","i18n","im","messaging","monorepo","open-source","pwa","react","turborepo","typescript","websocket","2026-06-12 02:04:14","\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Fdocs\u002Fassets\u002Flogo-light.png#gh-light-mode-only\" width=\"200\" alt=\"OCTO\">\n  \u003Cimg src=\".\u002Fdocs\u002Fassets\u002Flogo-dark.png#gh-dark-mode-only\" width=\"200\" alt=\"OCTO\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cb>OCTO — the open workplace built for humans × AI agents.\u003C\u002Fb>\u003Cbr\u002F>\n  \u003Csub>Let \u003Cb>Lobsters\u003C\u002Fb> (OpenClaw-powered digital doubles) do the \u003Ci>thinking\u003C\u002Fi> and \u003Ci>doing\u003C\u002Fi>. You focus on \u003Ci>taste\u003C\u002Fi>.\u003C\u002Fsub>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMininglamp-OSS\">\u003Cb>🏠 OCTO Home\u003C\u002Fb>\u003C\u002Fa> ·\n  \u003Ca href=\"#-quickstart\">\u003Cb>🚀 Quickstart\u003C\u002Fb>\u003C\u002Fa> ·\n  \u003Ca href=\"#-octo-ecosystem\">\u003Cb>📦 Ecosystem\u003C\u002Fb>\u003C\u002Fa> ·\n  \u003Ca href=\".\u002FCONTRIBUTING.md\">\u003Cb>🤝 Contributing\u003C\u002Fb>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\".\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-blue.svg\" alt=\"License\">\u003C\u002Fa>\n  \u003Ca href=\".\u002FREADME.zh.md\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flang-简体中文-red.svg\" alt=\"简体中文\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n> 🌐 **Read in**: **English** · [简体中文](README.zh.md)\n\n# OCTO Web\n\n> **Web & PC (Electron) client** for the OCTO messaging platform — one React codebase, two shipped surfaces.\n\n`octo-web` is the TypeScript \u002F React front-end that talks to\n[`octo-server`](https:\u002F\u002Fgithub.com\u002FMininglamp-OSS\u002Focto-server) over REST +\nWebSocket. The same codebase ships two ways: as a browser build (the canonical\nOCTO chat surface), and as an Electron-packaged desktop PC client.\n\n## 🌟 Why OCTO Web\n\n- **One codebase, two products.** Browser + PC (Electron) are built from the same `src\u002F` — no parallel React trees, no diverging UX. Branch switches happen at platform-capability boundaries only.\n- **Lobster-ready UI.** First-class surfaces for AI agent conversations: streaming replies, typing indicator, inline tool-call previews, read receipts, agent-vs-human identity chips.\n- **Full bilingual shell.** English and Simplified Chinese ship together out of the box; i18n keys live in `src\u002Flocales\u002F` and are enforced in CI.\n\n## 🚀 Quickstart\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FMininglamp-OSS\u002Focto-web.git\ncd octo-web\npnpm install\npnpm dev\n```\n\nBy default the web build expects an `octo-server` instance reachable at\n`http:\u002F\u002Flocalhost:8080`. Point it at your own server by copying\n`.env.example` to `.env.local` and editing the `VITE_API_*` values.\n\n## 📦 Modules \u002F Architecture\n\nTop-level layout:\n\n| Path | Purpose |\n|---|---|\n| `src\u002Fpages\u002F` | Route-level React views (chat, channels, org, settings) |\n| `src\u002Fcomponents\u002F` | Shared UI kit (message bubbles, inputs, agent chips, streaming renderers) |\n| `src\u002Fstore\u002F` | Client state (auth, channels, draft, agent orchestration UI state) |\n| `src\u002Fapi\u002F` | REST + WebSocket client talking to `octo-server` |\n| `src\u002Flocales\u002F` | i18n resources (English · 简体中文) |\n| `electron\u002F` | Electron main\u002Frenderer bootstrap for the PC build |\n| `docs\u002F` | Design docs, architecture notes, screenshots |\n\nKey build targets:\n\n```bash\npnpm build        # build the browser bundle\npnpm pc:dev       # launch the Electron shell against the dev build\npnpm pc:package   # produce a distributable PC bundle (macOS \u002F Windows \u002F Linux)\npnpm test         # run unit + component tests\n```\n\nThe PC Electron shell is intentionally thin — it hosts the same React app and\nforwards IPC for native capabilities (tray, notifications, file drop, auto-\nupdate). The browser build runs without any Electron dependency.\n\n## 🔗 OCTO Ecosystem\n\n\u003C!-- shared snippet: OCTO repo matrix. Keep identical across all 9 repos. -->\n\n```mermaid\ngraph TD\n  subgraph Clients[Clients]\n    Web[octo-web\u003Cbr\u002F>Web \u002F PC]\n    Android[octo-android\u003Cbr\u002F>Android]\n    iOS[octo-ios\u003Cbr\u002F>iOS]\n  end\n\n  subgraph Core[Core Services]\n    Server[octo-server\u003Cbr\u002F>Backend API]\n    Matter[octo-matter\u003Cbr\u002F>Task \u002F Todo]\n    Summary[octo-smart-summary\u003Cbr\u002F>AI Summary]\n    Admin[octo-admin\u003Cbr\u002F>Admin Console]\n  end\n\n  subgraph Shared[Shared Libraries & Integrations]\n    Lib[octo-lib\u003Cbr\u002F>Core Go Library]\n    Adapters[octo-adapters\u003Cbr\u002F>Third-party Adapters]\n  end\n\n  Web --> Server\n  Android --> Server\n  iOS --> Server\n  Admin --> Server\n  Server --> Matter\n  Server --> Summary\n  Server --> Adapters\n  Server -.uses.-> Lib\n  Matter -.uses.-> Lib\n  Adapters -.uses.-> Lib\n```\n\n| Repository | Language | Role |\n|---|---|---|\n| [`octo-server`](https:\u002F\u002Fgithub.com\u002FMininglamp-OSS\u002Focto-server) | Go | Backend API · business orchestration · Lobster agent scheduling |\n| [`octo-matter`](https:\u002F\u002Fgithub.com\u002FMininglamp-OSS\u002Focto-matter) | Go | Task \u002F Todo \u002F Matter micro-service |\n| [`octo-smart-summary`](https:\u002F\u002Fgithub.com\u002FMininglamp-OSS\u002Focto-smart-summary) | Go | LLM-powered conversation summarisation |\n| [`octo-web`](https:\u002F\u002Fgithub.com\u002FMininglamp-OSS\u002Focto-web) | TypeScript \u002F React | Web & PC (Electron) client |\n| [`octo-android`](https:\u002F\u002Fgithub.com\u002FMininglamp-OSS\u002Focto-android) | Kotlin \u002F Java | Native Android client |\n| [`octo-ios`](https:\u002F\u002Fgithub.com\u002FMininglamp-OSS\u002Focto-ios) | Swift \u002F Objective-C | Native iOS client |\n| [`octo-admin`](https:\u002F\u002Fgithub.com\u002FMininglamp-OSS\u002Focto-admin) | TypeScript \u002F React | Admin console (tenant \u002F org \u002F user \u002F channel management) |\n| [`octo-lib`](https:\u002F\u002Fgithub.com\u002FMininglamp-OSS\u002Focto-lib) | Go | Shared core library (protocol, crypto, storage, HTTP) |\n| [`octo-adapters`](https:\u002F\u002Fgithub.com\u002FMininglamp-OSS\u002Focto-adapters) | TypeScript \u002F Python | Third-party integrations (IM bridges, AI channels) |\n\n## 🧭 Philosophy\n\nOCTO ships under three shared principles that apply to every repository in this matrix:\n\n1. **Local-first.** Anything that can run on the user's own box — chats, embeddings, agents — should. Your data stays yours; cloud is a choice, not a requirement.\n2. **Humans judge, AI thinks and acts.** Humans focus on *taste* (what matters, what's right, what to ship). Lobster agents — OpenClaw-powered digital doubles — carry the *thinking* and *execution* load.\n3. **Release-as-product.** Every open-source cut is shipped as a self-contained product, not a code dump: one squash per release, Apache 2.0, no internal baggage, reproducible from this repo alone.\n\n## 🤝 Contributing\n\nWe love pull requests! Before you open one, please read:\n\n- [CONTRIBUTING.md](CONTRIBUTING.md) — workflow, branch model, commit style\n- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) — community expectations\n\nFor security issues please follow [SECURITY.md](SECURITY.md) instead of the public tracker.\n\n## 📄 License\n\nApache License 2.0 — see [LICENSE](LICENSE) for the full text and [NOTICE](NOTICE) for third-party attributions.\n\n## 🙏 Acknowledgments\n\n`octo-web` owes its original scaffolding to:\n\n- **[TangSengDaoDaoWeb](https:\u002F\u002Fgithub.com\u002FTangSengDaoDao\u002FTangSengDaoDaoWeb)** — our upstream, by the TangSengDaoDao team.\n- **[WuKongIM](https:\u002F\u002Fgithub.com\u002FWuKongIM\u002FWuKongIM)** — the real-time messaging core that `octo-server` drives behind this client.\n\nSee [NOTICE](NOTICE) for the full attribution list and third-party component licenses.\n\n---\n\n\u003Cp align=\"center\">\n  \u003Csub>Made with 🐙 by \u003Cb>OCTO Contributors\u003C\u002Fb> · \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMininglamp-OSS\">Mininglamp-OSS\u003C\u002Fa>\u003C\u002Fsub>\n\u003C\u002Fp>\n","OCTO Web 是一个为 OCTO 开放工作平台设计的Web和桌面（Electron）客户端，基于React和TypeScript构建。该项目通过单一代码库同时支持浏览器和PC应用，并且特别优化了与AI代理交互的用户体验，包括流式回复、打字指示器等功能。它采用REST+WebSocket协议与后端服务器通信，具备国际化支持，开箱即用提供英文和简体中文界面。适用于需要集成智能助手以提高工作效率的企业或团队环境，尤其是在重视人机协作交流的场景下表现尤为出色。",2,"2026-06-11 04:04:50","CREATED_QUERY"]