{"id":49849017,"url":"https://github.com/Mininglamp-OSS/octo-adapters","last_synced_at":"2026-05-16T11:00:45.992Z","repository":{"id":357328744,"uuid":"1235491483","full_name":"Mininglamp-OSS/octo-adapters","owner":"Mininglamp-OSS","description":"Third-party adapters for OCTO — bridge AI agents, IM platforms, and external services into the OCTO workplace via OpenClaw channels and WebSocket.","archived":false,"fork":false,"pushed_at":"2026-05-11T20:38:49.000Z","size":1219,"stargazers_count":9,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-12T10:44:05.132Z","etag":null,"topics":["adapter","ai-agent","channel-plugin","chatbot","im","mininglamp","octo","openclaw","typescript","websocket"],"latest_commit_sha":null,"homepage":null,"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/Mininglamp-OSS.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["Mininglamp-OSS"]}},"created_at":"2026-05-11T11:28:41.000Z","updated_at":"2026-05-12T10:31:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Mininglamp-OSS/octo-adapters","commit_stats":null,"previous_names":["mininglamp-oss/octo-adapters"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Mininglamp-OSS/octo-adapters","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mininglamp-OSS%2Focto-adapters","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mininglamp-OSS%2Focto-adapters/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mininglamp-OSS%2Focto-adapters/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mininglamp-OSS%2Focto-adapters/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mininglamp-OSS","download_url":"https://codeload.github.com/Mininglamp-OSS/octo-adapters/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mininglamp-OSS%2Focto-adapters/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33100319,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"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":["adapter","ai-agent","channel-plugin","chatbot","im","mininglamp","octo","openclaw","typescript","websocket"],"created_at":"2026-05-14T14:00:19.875Z","updated_at":"2026-05-16T11:00:45.980Z","avatar_url":"https://github.com/Mininglamp-OSS.png","language":"TypeScript","funding_links":["https://github.com/sponsors/Mininglamp-OSS"],"categories":["Configuration"],"sub_categories":["Messaging Channels"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./docs/assets/logo-light.png#gh-light-mode-only\" width=\"200\" alt=\"OCTO\"\u003e\n  \u003cimg src=\"./docs/assets/logo-dark.png#gh-dark-mode-only\" width=\"200\" alt=\"OCTO\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eOCTO — the open workplace built for humans × AI agents.\u003c/b\u003e\u003cbr/\u003e\n  \u003csub\u003eLet \u003cb\u003eLobsters\u003c/b\u003e (OpenClaw-powered digital doubles) do the \u003ci\u003ethinking\u003c/i\u003e and \u003ci\u003edoing\u003c/i\u003e. You focus on \u003ci\u003etaste\u003c/i\u003e.\u003c/sub\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Mininglamp-OSS\"\u003e\u003cb\u003e🏠 OCTO Home\u003c/b\u003e\u003c/a\u003e ·\n  \u003ca href=\"#-quickstart\"\u003e\u003cb\u003e🚀 Quickstart\u003c/b\u003e\u003c/a\u003e ·\n  \u003ca href=\"#-octo-ecosystem\"\u003e\u003cb\u003e📦 Ecosystem\u003c/b\u003e\u003c/a\u003e ·\n  \u003ca href=\"./CONTRIBUTING.md\"\u003e\u003cb\u003e🤝 Contributing\u003c/b\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"./LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-Apache_2.0-blue.svg\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"./README.zh.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/lang-简体中文-red.svg\" alt=\"简体中文\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003e 🌐 **Read in**: **English** · [简体中文](README.zh.md)\n\n# OCTO Adapters\n\n\u003e **Third-party integrations** for OCTO — bridge your chat stack, AI providers, and data sources into Lobster-addressable surfaces.\n\nEvery adapter in this repo is a self-contained module that can be enabled or\ndisabled independently. Adapters connect OCTO to external systems — other IM\nplatforms (Slack, Discord, 飞书, Telegram), AI providers (OpenAI, Anthropic,\nClaude Agent SDK, OpenClaw channels), productivity tools, and webhook sinks —\nso Lobster agents can reach a user wherever the user already is.\n\n## 🌟 Why OCTO Adapters\n\n- **Plug, don't patch.** Drop an adapter in, configure credentials, restart — no core-server fork, no schema surgery. Adapters are loaded at boot from `octo-server`'s config.\n- **Polyglot on purpose.** Adapters live side-by-side in TypeScript (Node) and Python. Pick the language that matches the upstream SDK — this repo is the meeting point.\n- **Lobster-native.** Every adapter exposes the same OCTO-internal envelope (channel id + message + agent context), so Lobster agents can switch transports without learning each vendor's quirks.\n\n## 🚀 Quickstart\n\n```bash\ngit clone https://github.com/Mininglamp-OSS/octo-adapters.git\ncd octo-adapters\n\n# Node adapters — see ./packages for the current list\npnpm install\npnpm --filter \u003cadapter-name\u003e dev\n\n# Python adapters\ncd \u003cadapter-dir\u003e \u0026\u0026 pip install -e .\npython -m \u003cadapter_module\u003e.cli\n```\n\nEach adapter has its own `README.md` under its package directory with\ncredentials setup and a minimal run recipe. Start from that README, not this\nroot.\n\n## 📦 Modules / Architecture\n\nThis release bundles three reference adapter families (see individual package\ndirectories for the canonical package name and CLI entry point):\n\n| Family | Language | Purpose |\n|---|---|---|\n| **Claude Agent SDK gateway** | TypeScript (Node) | WebSocket gateway connecting the Claude Agent SDK to the OCTO IM protocol. Handles DH key exchange, AES-CBC framing, streaming replies, DM + group delivery, session persistence, auto-reconnect. |\n| **OpenClaw channel** | TypeScript (Node) | OpenClaw AI framework channel plugin over the OCTO IM WebSocket protocol. Real-time receive, auto-reconnect, streaming, typing indicator, read receipts, multi-account isolation. |\n| **Hermes Agent channel** | Python | Hermes Agent adapter for the OCTO IM platform (multi-account, protocol + integration layer). |\n\nEach adapter implements the same high-level lifecycle:\n\n1. **Connect** to the upstream transport (WebSocket, HTTP long-poll, gRPC).\n2. **Authenticate** — DH + AES if using OCTO IM's secure framing, OAuth / bearer otherwise.\n3. **Route** inbound messages into the OCTO-internal envelope.\n4. **Dispatch** outbound messages from Lobster agents back to the upstream.\n5. **Recover** — exponential back-off reconnect, idempotent message IDs, session resume.\n\n## 🔗 OCTO Ecosystem\n\n\u003c!-- shared snippet: OCTO repo matrix. Keep identical across all 9 repos. --\u003e\n\n```mermaid\ngraph TD\n  subgraph Clients[Clients]\n    Web[octo-web\u003cbr/\u003eWeb / PC]\n    Android[octo-android\u003cbr/\u003eAndroid]\n    iOS[octo-ios\u003cbr/\u003eiOS]\n  end\n\n  subgraph Core[Core Services]\n    Server[octo-server\u003cbr/\u003eBackend API]\n    Matter[octo-matter\u003cbr/\u003eTask / Todo]\n    Summary[octo-smart-summary\u003cbr/\u003eAI Summary]\n    Admin[octo-admin\u003cbr/\u003eAdmin Console]\n  end\n\n  subgraph Shared[Shared Libraries \u0026 Integrations]\n    Lib[octo-lib\u003cbr/\u003eCore Go Library]\n    Adapters[octo-adapters\u003cbr/\u003eThird-party Adapters]\n  end\n\n  Web --\u003e Server\n  Android --\u003e Server\n  iOS --\u003e Server\n  Admin --\u003e Server\n  Server --\u003e Matter\n  Server --\u003e Summary\n  Server --\u003e Adapters\n  Server -.uses.-\u003e Lib\n  Matter -.uses.-\u003e Lib\n  Adapters -.uses.-\u003e Lib\n```\n\n| Repository | Language | Role |\n|---|---|---|\n| [`octo-server`](https://github.com/Mininglamp-OSS/octo-server) | Go | Backend API · business orchestration · Lobster agent scheduling |\n| [`octo-matter`](https://github.com/Mininglamp-OSS/octo-matter) | Go | Task / Todo / Matter micro-service |\n| [`octo-smart-summary`](https://github.com/Mininglamp-OSS/octo-smart-summary) | Go | LLM-powered conversation summarisation |\n| [`octo-web`](https://github.com/Mininglamp-OSS/octo-web) | TypeScript / React | Web \u0026 PC (Electron) client |\n| [`octo-android`](https://github.com/Mininglamp-OSS/octo-android) | Kotlin / Java | Native Android client |\n| [`octo-ios`](https://github.com/Mininglamp-OSS/octo-ios) | Swift / Objective-C | Native iOS client |\n| [`octo-admin`](https://github.com/Mininglamp-OSS/octo-admin) | TypeScript / React | Admin console (tenant / org / user / channel management) |\n| [`octo-lib`](https://github.com/Mininglamp-OSS/octo-lib) | Go | Shared core library (protocol, crypto, storage, HTTP) |\n| [`octo-adapters`](https://github.com/Mininglamp-OSS/octo-adapters) | TypeScript / 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\nIf you're writing a new adapter, please see `docs/ADAPTER-AUTHORING.md` _(coming soon)_ for the integration contract and directory layout.\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---\n\n\u003cp align=\"center\"\u003e\n  \u003csub\u003eMade with 🐙 by \u003cb\u003eOCTO Contributors\u003c/b\u003e · \u003ca href=\"https://github.com/Mininglamp-OSS\"\u003eMininglamp-OSS\u003c/a\u003e\u003c/sub\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMininglamp-OSS%2Focto-adapters","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMininglamp-OSS%2Focto-adapters","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMininglamp-OSS%2Focto-adapters/lists"}