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
🌐 Read in: English · 简体中文
Native iOS client for the OCTO messaging platform — Swift / Objective-C, talking to
octo-serverover REST + WebSocket.
octo-ios is the official iOS front-end for OCTO. It is a native Swift /
Objective-C app (not a webview wrapper) that talks to
octo-server over REST +
WebSocket, and drives the same Lobster-agent conversation surface as
octo-web and
octo-android.
GoogleService-Info.plist, no signing certificates, no provisioning profiles bound to the upstream team. You bring your own Apple Developer team, your own Bundle Identifier (com.example.octo placeholder → com.yourcompany.octo), your own Firebase project, your own certificates. All stripped by the octo-release pipeline before this repo is published.octo-web / octo-android, same i18n resource keys (English · 简体中文), same Lobster identity / streaming / typing indicators — so feature work can land on three clients without a protocol fork.⚠️ Mandatory pre-flight — this fork will not build a signed or
distributable .ipa until you swap four placeholder artefacts:
README-BUNDLE-ID.md
for the full rename checklist across the .pbxproj, entitlements,
and every extension target (com.example.octo → your reverse-DNS).firebase-template.md
for how to obtain and drop in your own GoogleService-Info.plist.universal-link-setup.md
for the apple-app-site-association file that your domain must host
before deep-links resolve to your build.Once those are done, open in Xcode:
git clone https://github.com/Mininglamp-OSS/octo-ios.git
cd octo-ios
# CocoaPods (if used):
pod install
# Or Swift Package Manager — handled by Xcode on open.
open OCTO.xcworkspace # or OCTO.xcodeproj
From CLI, a development build after signing is configured:
xcodebuild -workspace OCTO.xcworkspace \
-scheme OCTO \
-configuration Debug \
-destination 'generic/platform=iOS Simulator' \
build
By default the app points at http://localhost:8080 for octo-server.
Edit OCTO/Config/Config.plist (or the flavour-specific equivalent) to
aim at your own deployment.
Top-level layout (typical OCTO iOS tree):
| Path | Purpose |
|---|---|
OCTO/ | Main app target — view controllers, SwiftUI views, app delegate |
OCTO/UI/ | Screen surfaces: chat, channels, org, settings |
OCTO/Data/ | REST + WebSocket client, local cache, Core Data / Realm models |
OCTO/Agent/ | Lobster-aware UI components (streaming, tool-call previews, agent identity) |
OCTO/Push/ | APNS registration + push routing + notification-service extension |
OCTO/Resources/ | Assets, localisations (en.lproj, zh-Hans.lproj), launch storyboards |
ShareExtension/ | Share-sheet target for forwarding content into OCTO |
NotificationExtension/ | Rich-notification + encryption-aware decryption target |
WuKongSDK/ | WuKongIM iOS client wrapper (real-time messaging transport) |
Pods/ or Packages/ | CocoaPods / SPM dependencies |
Runtime pillars:
URLSession for REST; WuKongIM iOS SDK for the persistent WebSocket.octo-server → Firebase fan-out (optional) → Notification-Service extension decrypts the payload before display.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) |
OCTO ships under three shared principles that apply to every repository in this matrix:
We love pull requests! Before you open one, please read:
For security issues please follow SECURITY.md instead of the public tracker.
Apache License 2.0 — see LICENSE for the full text and NOTICE for third-party attributions.
octo-ios owes its original scaffolding to:
octo-server drives behind this client.See NOTICE for the full attribution list and third-party component licenses.
Made with 🐙 by OCTO Contributors · Mininglamp-OSS
Objective-C
96.3%
Swift
2.2%
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
🌐 Read in: English · 简体中文
Native iOS client for the OCTO messaging platform — Swift / Objective-C, talking to
octo-serverover REST + WebSocket.
octo-ios is the official iOS front-end for OCTO. It is a native Swift /
Objective-C app (not a webview wrapper) that talks to
octo-server over REST +
WebSocket, and drives the same Lobster-agent conversation surface as
octo-web and
octo-android.
GoogleService-Info.plist, no signing certificates, no provisioning profiles bound to the upstream team. You bring your own Apple Developer team, your own Bundle Identifier (com.example.octo placeholder → com.yourcompany.octo), your own Firebase project, your own certificates. All stripped by the octo-release pipeline before this repo is published.octo-web / octo-android, same i18n resource keys (English · 简体中文), same Lobster identity / streaming / typing indicators — so feature work can land on three clients without a protocol fork.⚠️ Mandatory pre-flight — this fork will not build a signed or
distributable .ipa until you swap four placeholder artefacts:
README-BUNDLE-ID.md
for the full rename checklist across the .pbxproj, entitlements,
and every extension target (com.example.octo → your reverse-DNS).firebase-template.md
for how to obtain and drop in your own GoogleService-Info.plist.universal-link-setup.md
for the apple-app-site-association file that your domain must host
before deep-links resolve to your build.Once those are done, open in Xcode:
git clone https://github.com/Mininglamp-OSS/octo-ios.git
cd octo-ios
# CocoaPods (if used):
pod install
# Or Swift Package Manager — handled by Xcode on open.
open OCTO.xcworkspace # or OCTO.xcodeproj
From CLI, a development build after signing is configured:
xcodebuild -workspace OCTO.xcworkspace \
-scheme OCTO \
-configuration Debug \
-destination 'generic/platform=iOS Simulator' \
build
By default the app points at http://localhost:8080 for octo-server.
Edit OCTO/Config/Config.plist (or the flavour-specific equivalent) to
aim at your own deployment.
Top-level layout (typical OCTO iOS tree):
| Path | Purpose |
|---|---|
OCTO/ | Main app target — view controllers, SwiftUI views, app delegate |
OCTO/UI/ | Screen surfaces: chat, channels, org, settings |
OCTO/Data/ | REST + WebSocket client, local cache, Core Data / Realm models |
OCTO/Agent/ | Lobster-aware UI components (streaming, tool-call previews, agent identity) |
OCTO/Push/ | APNS registration + push routing + notification-service extension |
OCTO/Resources/ | Assets, localisations (en.lproj, zh-Hans.lproj), launch storyboards |
ShareExtension/ | Share-sheet target for forwarding content into OCTO |
NotificationExtension/ | Rich-notification + encryption-aware decryption target |
WuKongSDK/ | WuKongIM iOS client wrapper (real-time messaging transport) |
Pods/ or Packages/ | CocoaPods / SPM dependencies |
Runtime pillars:
URLSession for REST; WuKongIM iOS SDK for the persistent WebSocket.octo-server → Firebase fan-out (optional) → Notification-Service extension decrypts the payload before display.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) |
OCTO ships under three shared principles that apply to every repository in this matrix:
We love pull requests! Before you open one, please read:
For security issues please follow SECURITY.md instead of the public tracker.
Apache License 2.0 — see LICENSE for the full text and NOTICE for third-party attributions.
octo-ios owes its original scaffolding to:
octo-server drives behind this client.See NOTICE for the full attribution list and third-party component licenses.
Made with 🐙 by OCTO Contributors · Mininglamp-OSS
Objective-C
96.3%
Swift
2.2%