octo-server

command module
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 18, 2026 License: Apache-2.0 Imports: 26 Imported by: 0

README ยถ

OCTO OCTO

OCTO โ€” the open workplace built for humans ร— AI agents.
Let Lobsters (OpenClaw-powered digital doubles) do the thinking and doing. You focus on taste.

๐Ÿ  OCTO Home ยท ๐Ÿš€ Quickstart ยท ๐Ÿ“ฆ Ecosystem ยท ๐Ÿค Contributing

License ็ฎ€ไฝ“ไธญๆ–‡


๐ŸŒ Read in: English ยท ็ฎ€ไฝ“ไธญๆ–‡

OCTO Server

The Go backend at the centre of OCTO โ€” REST + WebSocket APIs, Lobster agent orchestration, and the control plane for WuKongIM.

octo-server is the heart of the OCTO platform. It exposes REST + WebSocket APIs consumed by octo-web and octo-admin, orchestrates business logic and Lobster (AI agent) scheduling, and drives the WuKongIM IM core for real-time messaging.

๐ŸŒŸ Why OCTO Server

  • One anchor for the whole platform. Clients, adapters, matter, summary, and admin all meet at octo-server. Deploy and scale one backend; everything else speaks to it.
  • Lobster-orchestration first class. Routing, session, and tool-call execution for OpenClaw-powered digital doubles are built into the server, not bolted on. Agents are treated as first-class conversation participants.
  • Pluggable storage & IM. MySQL-compatible SQL migrations and object-storage adapters ship in the box; WuKongIM is driven over a thin control-plane boundary so the IM core remains swappable.

๐Ÿš€ Quickstart

git clone https://github.com/Mininglamp-OSS/octo-server.git
cd octo-server
go build -o octo-server .
./octo-server --config ./configs/tsdd.yaml

The default dev config expects a local WuKongIM instance and a MySQL-compatible database. See the bundled configs/tsdd.yaml template for the standalone-binary path, QUICKSTART.md for an end-to-end walkthrough, and BUILDING.md for cross-repo build notes.

For a one-command Docker Compose stack (server + admin + web + matter

  • smart-summary + WuKongIM + MySQL + Redis + MinIO + nginx), use the official OOTB deployment at Mininglamp-OSS/octo-deployment. The older docker/octo/ and docker/tsdd/ compose stacks that used to live in this repo have been retired in favour of that single source of truth.

๐Ÿ“ฆ Modules / Architecture

High-level layout:

Path Purpose
cmd/ Service entry points (octo-server, subcommands)
internal/api/ REST + WebSocket handlers โ€” conversation, user, group, file, org, webhook
internal/service/ Business logic โ€” access control, Lobster orchestration, IM fan-out
internal/repository/ SQL + cache repositories (MySQL, Redis)
internal/im/ Control-plane client for WuKongIM (channel / message / presence)
internal/agent/ Lobster routing, session store, tool-call execution
internal/adapter/ Adapter registration + dispatch surfaces
configs/ YAML config schema + dev / prod examples
migrations/ SQL schema migrations
docs/ Architecture notes, API reference, diagrams

What the server does each request:

  1. Authenticate โ€” token / cookie / DH-sealed WebSocket frame.
  2. Authorise โ€” org-aware RBAC, per-channel ACL, agent-identity gating.
  3. Execute โ€” run business logic, possibly spawning / resuming a Lobster agent session.
  4. Fan out โ€” enqueue IM message via WuKongIM, trigger adapters if the channel requires an external bridge.
  5. Respond โ€” unified JSON envelope (or WebSocket frame) with tracing + metrics tags.

๐Ÿ”— OCTO Ecosystem

graph TD
  subgraph Clients[Clients]
    Web[octo-web<br/>Web / PC]
    Android[octo-android<br/>Android]
    iOS[octo-ios<br/>iOS]
  end

  subgraph Core[Core Services]
    Server[octo-server<br/>Backend API]
    Matter[octo-matter<br/>Task / Todo]
    Summary[octo-smart-summary<br/>AI Summary]
    Admin[octo-admin<br/>Admin Console]
  end

  subgraph Shared[Shared Libraries & Integrations]
    Lib[octo-lib<br/>Core Go Library]
    Adapters[octo-adapters<br/>Third-party Adapters]
  end

  Web --> Server
  Android --> Server
  iOS --> Server
  Admin --> Server
  Server --> Matter
  Server --> Summary
  Server --> Adapters
  Server -.uses.-> Lib
  Matter -.uses.-> Lib
  Adapters -.uses.-> Lib
Repository Language Role
octo-server Go Backend API ยท business orchestration ยท Lobster agent scheduling
octo-matter Go Task / Todo / Matter micro-service
octo-smart-summary Go LLM-powered conversation summarisation
octo-web TypeScript / React Web & PC (Electron) client
octo-android Kotlin / Java Native Android client
octo-ios Swift / Objective-C Native iOS client
octo-admin TypeScript / React Admin console (tenant / org / user / channel management)
octo-lib Go Shared core library (protocol, crypto, storage, HTTP)
octo-adapters TypeScript / Python Third-party integrations (IM bridges, AI channels)

๐Ÿงญ Philosophy

OCTO ships under three shared principles that apply to every repository in this matrix:

  1. 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.
  2. 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.
  3. 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.

๐Ÿค Contributing

We love pull requests! Before you open one, please read:

For security issues please follow SECURITY.md instead of the public tracker.

๐Ÿ“„ License

Apache License 2.0 โ€” see LICENSE for the full text and NOTICE for third-party attributions.

๐Ÿ™ Acknowledgments

octo-server is a derivative work of:

See NOTICE for the exhaustive Go module license inventory and third-party attribution block.


Made with ๐Ÿ™ by OCTO Contributors ยท Mininglamp-OSS

Documentation ยถ

The Go Gopher

There is no documentation for this package.

Directories ยถ

Path Synopsis
modules
base/common
smsbao
smsbao
bot_api
Package bot_api ยท YUJ-644 / Mininglamp-OSS#33 / YUJ-660 / YUJ-688
Package bot_api ยท YUJ-644 / Mininglamp-OSS#33 / YUJ-660 / YUJ-688
message
Package message โ€” POST /v1/sidebar/sync
Package message โ€” POST /v1/sidebar/sync
robot
Package robot ยท YUJ-644 / Mininglamp-OSS#33 / YUJ-660
Package robot ยท YUJ-644 / Mininglamp-OSS#33 / YUJ-660
pkg
db
log
metrics
Package metrics ๆ”ถ้›† dmwork ่ฟ›็จ‹็บง Prometheus ๆŒ‡ๆ ‡ใ€‚
Package metrics ๆ”ถ้›† dmwork ่ฟ›็จ‹็บง Prometheus ๆŒ‡ๆ ‡ใ€‚
util
Package decimal implements an arbitrary precision fixed-point decimal.
Package decimal implements an arbitrary precision fixed-point decimal.
tools
lint-personal-msgsendreq command
Command lint-personal-msgsendreq scans .go files under one or more roots and rejects direct config.MsgSendReq{} composite literals that explicitly set ChannelType to common.ChannelTypePerson (or its .Uint8() variant).
Command lint-personal-msgsendreq scans .go files under one or more roots and rejects direct config.MsgSendReq{} composite literals that explicitly set ChannelType to common.ChannelTypePerson (or its .Uint8() variant).
migrate-rename command
Command migrate-rename rebuilds migration filenames as a single global timestamp-prefixed sequence so sql-migrate's numeric-prefix branch sorts them strictly by execution order rather than alphabetically.
Command migrate-rename rebuilds migration filenames as a single global timestamp-prefixed sequence so sql-migrate's numeric-prefix branch sorts them strictly by execution order rather than alphabetically.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL