默认监听 8088 端口,首次启动需设置符合策略的 OCTOP_DEFAULT_PASSWORD,否则进入初始化向导;数据默认落在 ~/.octop/,Docker 部署需挂载 /data/.octop 才能持久化;反向代理子路径部署需用 VITE_BASE_PATH 重新构建前端并剥离前缀。
docker compose -f docker/docker-compose.yml up -d
pip install octopREADME 未说明显存或 GPU 要求;支持 Linux、Windows、macOS,可 Docker 部署,也可用腾讯云 Lighthouse/CVM 等云主机。
自托管多用户多智能体 AI 助手,把对话、工作区和凭据都留在自己机器上
自托管的多用户、多智能体 AI 助手,支持长期记忆和本地优先部署,适合团队搭建自己的智能助理服务。
核心能力
- 单进程同时提供 Web 控制台、CLI、IM 渠道与定时任务
- 多用户 JWT 隔离,内置专家库与专家市场按场景切换
- AgentTeams 由协调者调度多个专家处理多步任务
- 连接器支持 OAuth 与 MCP 网关,接入腾讯文档、会议等资源
- 工作区后端可选本地磁盘、Docker 沙箱、PostgreSQL 或 COS/S3
容易踩的坑
- v1.0.3b4最新正式版2026-11-06 · 2026-11-06 02:33 UTC
新增
- 工作台增加云主机页:授权后查看腾讯云 CVM,并由常驻运维专家巡检和变更
- 后台标签页的定时提醒改为系统通知
- 启动时同步新的预置模型,腾讯云通道支持 HY4
修复
- 共享专家能用查看者的自定义 MCP 名称
- 编辑团队会保存示例头像
- Docker 精简镜像在编译器已移除后仍能发布
变更
- 多实例部署时,腾讯云授权改存在控制面;单机仍用本地文件
- 云服务器页移到工作台末尾,并注明目前只支持腾讯云 CVM
- 默认 Docker 标签改为精简版,完整版使用
:<version>-full和:full - 连接器可按类别筛选,大额 token 用量会缩写
- 升级 octop-harness 至 1.0.8
Downloads
Windows
Desktop installer (Recommended)
Portable
macOS
Desktop installer (Recommended)
Portable
Linux
Desktop installer (Recommended)
Portable
Docker image
- Lite:
ghcr.io/tencentcloud/octop:1.0.3b4(:latest) - Full:
ghcr.io/tencentcloud/octop:1.0.3b4-full(:full)
fnOS NAS
- Docker lite (x86 and ARM) | Docker full (desktop, OCR, local models; x86 and ARM) | Native x86_64 | Native ARM64 (no Docker)
What's Changed
- chore: sync main into develop after 1.0.3b3 by @github-actions[bot] in https://github.com/TencentCloud/Octop/pull/2822
- fix: persist team sample avatars when editing a team by @jubaoliang in https://github.com/TencentCloud/Octop/pull/2844
- fix: let Docker publish finish when the compiler is already removed by @jubaoliang in https://github.com/TencentCloud/Octop/pull/2842
- feat(providers): sync new preset models on startup and support HY4 by @Bosheng0422 in https://github.com/TencentCloud/Octop/pull/2830
- fix: map shared custom MCP names onto the expert harness by @jubaoliang in https://github.com/TencentCloud/Octop/pull/2848
- Feat/cloud hosts console by @seed30 in https://github.com/TencentCloud/Octop/pull/2778
- fix(cloud): keep the cloud tab last and note Tencent-only support by @jubaoliang in https://github.com/TencentCloud/Octop/pull/2850
- feat(dashboard): show cron reminders as system notifications in background tabs by @jubaoliang in https://github.com/TencentCloud/Octop/pull/2851
- fix(cloud): share Tencent Cloud logins through PostgreSQL by @jubaoliang in https://github.com/TencentCloud/Octop/pull/2854
- chore: release 1.0.3b4 by @jubaoliang in https://github.com/TencentCloud/Octop/pull/2855
Full Changelog: https://github.com/TencentCloud/Octop/compare/v1.0.3b3...v1.0.3b4
- v1.0.3b32026-11-04 · 2026-11-04 16:39 UTC
查看更新说明
新增
- PostgreSQL 可存放技能包和知识库。多实例共用定时任务、频道、头像、插件和已发布专家
- Docker 与飞牛增加精简版。存储后端增加火山引擎 TOS
- 可预建 LDAP 账号,聊天列表可隐藏任意专家
修复
- 专家工作区落到允许的存储根下。共享连接器只有创建者能改
- 聊天历史不再错序,未答完的提问不会被别的会话接走
- 超长图片先缩小再发送。失效的默认模型会自动换掉
- 升级记忆库:长会话分批提炼,重启后不重跑
- 安装清理不再删掉运行环境。PostgreSQL 上的知识库检索和关怀去重恢复正常
变更
- 升级 octop-harness 至 1.0.7
- 内置专家并入专家市场,安装包不再自带市场目录
Downloads
Windows
Desktop installer (Recommended)
Portable
macOS
Desktop installer (Recommended)
Portable
Linux
Desktop installer (Recommended)
Portable
Docker image
- Lite:
ghcr.io/tencentcloud/octop:1.0.3b3(:latest) - Full:
ghcr.io/tencentcloud/octop:1.0.3b3-full(:full)
fnOS NAS
- Docker lite (x86 and ARM) | Docker full (desktop, OCR, local models; x86 and ARM) | Native x86_64 | Native ARM64 (no Docker)
What's Changed
- chore: sync main into develop after 1.0.3b2 by @github-actions[bot] in https://github.com/TencentCloud/Octop/pull/2735
- fix(db): adapt executemany on the PostgreSQL connection proxy by @wxhking in https://github.com/TencentCloud/Octop/pull/2736
- fix(docker): publish a lite image beside the full one by @jubaoliang in https://github.com/TencentCloud/Octop/pull/2746
- fix(agents): refresh AUTO agents with stale provider fallback refs by @jayfeng7 in https://github.com/TencentCloud/Octop/pull/2394
- fix(knowledge): preserve remote embedding order by @AbelTomato in https://github.com/TencentCloud/Octop/pull/1454
- fix(dashboard): restyle the local-shell badge and align account security by @jubaoliang in https://github.com/TencentCloud/Octop/pull/2745
- test: match the Docker publish warning after lite image tags by @liukewia in https://github.com/TencentCloud/Octop/pull/2755
- feat: keep skill packages and knowledge on the control-plane database by @jubaoliang in https://github.com/TencentCloud/Octop/pull/2757
- fix(db): stop fsyncing every SQLite write on Windows by @liukewia in https://github.com/TencentCloud/Octop/pull/2716
- fix(fnos): name the x86 native package amd64 and stamp store versions at pack time by @liukewia in https://github.com/TencentCloud/Octop/pull/2751
- fix(dashboard): serve Monaco fro
- v1.0.3b22026-11-02 · 2026-11-02 01:15 UTC
查看更新说明
新增
- 账号支持 TOTP 与 Passkey:二次验证、无密码登录和恢复码
- 新增 ragflow 知识库连接器
修复
- 记住登录会自动续期,改密码会退出其他设备。缺 MFA 表的旧库会自动补齐
- 极简模式里,专家会话超过 10 条可以继续展开。长代码在气泡里换行,已结束的一轮不会在历史加载后再出现一次
- 停用的会话模型回到 Auto。钉钉和微信切换时,草稿与二维码不再串台,登录回调会保留转发端口
- 更早回合生成的文件不会再次发出。对话轨迹记下模型实际收到的系统提示
变更
- 通行密钥登录默认关闭,要在应用设置里打开。修改密码放在「账户安全」里
- 虚拟桌面和系统浏览器默认不启动。未选 MBTI 时显示「未设置」
- 升级 octop-harness 1.0.6
Downloads
Windows
Desktop installer (Recommended)
Portable
macOS
Desktop installer (Recommended)
Portable
Linux
Desktop installer (Recommended)
Portable
fnOS NAS
What's Changed
- chore: sync main into develop after 1.0.3b1 by @github-actions[bot] in https://github.com/TencentCloud/Octop/pull/2402
- feat(connectors): add ragflow knowledge connector (#2308) by @Pandakingxbc in https://github.com/TencentCloud/Octop/pull/2403
- fix(channels): prevent repeated requests when switching channel types (#2314) by @Pandakingxbc in https://github.com/TencentCloud/Octop/pull/2390
- fix(chat): reset disabled conversation models to Auto (#2316) by @Pandakingxbc in https://github.com/TencentCloud/Octop/pull/2407
- feat: opt in bundled desktop and harden chat turns by @jubaoliang in https://github.com/TencentCloud/Octop/pull/2446
- fix(chat): don't append a finished turn again after history loads by @Bosheng0422 in https://github.com/TencentCloud/Octop/pull/2441
- fix: preserve forwarded ports in OAuth callback URLs by @Bosheng0422 in https://github.com/TencentCloud/Octop/pull/2460
- docs: document which runtime library owns a change by @liukewia in https://github.com/TencentCloud/Octop/pull/2463
- fix(chat): wrap long inline code inside message bubbles by @liukewia in https://github.com/TencentCloud/Octop/pull/2411
- feat: record the model system prompt and harden chat, connectors, and images by @jubaoliang in https://github.com/TencentCloud/Octop/pull/2700
- feat(auth): TOTP/passkey MFA and passwordless passkey login by @huangcheng in https://github.com/TencentCloud/Octop/pull/2350
- feat: renew remembered sessions and simplify sharing and chat nav by @jubaoliang in https://github.com/TencentCloud/Octop/pull/2724
- feat: gate passkey sign-in and fold passw
- v1.0.3b12026-10-25 · 2026-10-25 03:36 UTC
查看更新说明
新增
- 建用户时可以同时创建一个默认专家。权限按页面 Tab 拆开,也可以按组折叠
- 用户组可以限制技能包、知识库、连接器、模型、存储和专家谁能看见
- 技能包可以共享,并用文件树编辑。创建专家、团队等资源时可以选头像
- 表单和对话可以让 AI 润色。搜索增加 DeepSeek 与元宝,模型支持 OpenAI Responses API
修复
- 云端协同共享后可以直接对话。回复进行中不会被刷新冲掉,也不能删掉这场会话
- 手机截图写到专家自己的工作区。只改定时任务文案时,间隔任务不再重新计时
- 浏览器工作台恢复中文输入。主动关怀等对话安静后再发
- 向导密码随数据目录迁移。Linux 桌面无边框窗口可以拖边缘调整大小
变更
- 云端协同默认打码对端地址和账号。共享来的资源在头像上做标记
- 支持子路径部署。飞牛原生包标记为 x86
安全
- 密钥改为加密保存,旧明文仍能读出。插件上传和解压限制了体积
Downloads
Windows
Desktop installer (Recommended)
Portable
macOS
Desktop installer (Recommended)
Portable
Linux
Desktop installer (Recommended)
Portable
fnOS NAS
What's Changed
- chore: sync main into develop after 1.0.2 by @github-actions[bot] in https://github.com/TencentCloud/Octop/pull/2186
- fix(infra): relocate wizard password file under OCTOP_HOME with legacy fallback (#2171) by @legend91019 in https://github.com/TencentCloud/Octop/pull/2174
- fix(dashboard): keep the media provider modal usable when a tool switch is off by @Jay0130-a in https://github.com/TencentCloud/Octop/pull/2105
- fix(portable): propagate bundled packages to Python subprocesses by @chqcjq in https://github.com/TencentCloud/Octop/pull/2044
- fix(desktop): add frameless edge and corner resize handles for Linux by @jayfeng7 in https://github.com/TencentCloud/Octop/pull/1657
- fix(plugins): bound uploads, downloads and ZIP extraction by @AbelTomato in https://github.com/TencentCloud/Octop/pull/1758
- feat(skills): shared packages, file tree editor, and BOM-safe frontmatter by @jubaoliang in https://github.com/TencentCloud/Octop/pull/2226
- feat(models): 支持选择 Responses API 与受控协议回退 by @Pandakingxbc in https://github.com/TencentCloud/Octop/pull/1984
- feat(search): 支持 DeepSeek Search by @Pandakingxbc in https://github.com/TencentCloud/Octop/pull/2180
- fix(api): localize JWT middleware auth errors via Accept-Language by @jubaoliang in https://github.com/TencentCloud/Octop/pull/2248
- fix(chat): refuse to delete a conversation while a reply is in progress by @huangcheng in https://github.com/TencentCloud/Octop/pull/2222
- fix(proactive): send care only after the chat has gone quiet by @Bosheng0422
- v1.0.22026-10-18 · 2026-10-18 15:09 UTC
查看更新说明
新增
- 两台 Octop 可以连起来用:通过云端协同使用对方的专家,能聊天,也能改对方工作区里的文件
- 专家可以组队。主持人负责分派任务和收尾总结,成员的回复会回到聊天,也会同步到即时通讯
- 新连接器:企查查、OpenAlex、语雀、Obsidian、Agent Mail,以及钉钉命令行(设备码登录后可查通讯录、日程和文档)
- 可以用公司的 LDAP 账号登录。Telegram 机器人可以限定哪些用户能跟它说话
- 记忆可以手改「用户档案」和「强记忆」。和已有记忆打架时先请你确认,不会悄悄覆盖;也可以备份和恢复
- 技能和技能包可以导出成一个 ZIP,换一台机器再导入。技能包可以关掉别人的打包下载
- 定时任务可以只跑一次,跑完自动停用,仍留在列表里。聊天进行中可以再补一句,不用等这一轮结束
- 每个专家可以设定默认对话方式:问答、规划或动手。侧栏可以按自己的账号重新排列
- 语音支持腾讯云边说边出字。当前模型不可用时,可以按健康状态自动换一个
- 知识库旁边可以按文件夹浏览文档。新增业务流程、知识工作等专家模板。内置助手可以回答产品和用法问题
- 别的程序可以通过 Agent MCP 网关调用这个 Agent。ONNX 模型可以不连 Hugging Face 直接加载
- 新增钉钉 CLI 连接器:通过官方钉钉 Workspace CLI(
dws)操作通讯录、聊天、日程、文档等;保存后在连接器设置里用设备码登录授权钉钉账号,默认使用钉钉官方应用,也可填写自建应用的 AppKey / AppSecret(#930) - 聊天侧栏可置顶专家,并按专家名或会话标题搜索
- 新增业务流程专家模板,涵盖 SOP、操作手册、流程优化、风险评估、供应商评估和运营报告;中文界面默认使用中文,基于用户提供的材料工作,无需连接器。
- 自建技能可以单个或批量导出为一个 ZIP;技能包也可以整包导出为同一个 ZIP 格式,再导入到其他专家或技能包(#260)。技能包可以关闭打包下载,关闭后其他用户不能导出 ZIP,创建者和管理员仍可下载
- 记忆页新增「用户档案」Tab 手动编辑 USER.md,与「强记忆」复用编辑器和会话快照;Agent 文件工具只读。保存后核对 USER.md/MEMORY.md 与普通记忆:手动文档优先,明确冲突转候选审核并提示用户,重复内容避免重复召回。停止的 Agent 也可检查,语义检查不确定或不可用时明确提示,旧版本候选禁止采纳。
- 记忆页新增「强记忆」Tab,用户可手动编辑 MEMORY.md,支持停止状态的 Agent。每个会话首次加载全文快照并持续复用,修改对新会话生效。用户说「记住」通过 memory_save 保存到 octop-memory,Agent 不再自动改写 MEMORY.md。
- 聊天侧栏置顶专家;业务流程专家;技能与技能包导出 ZIP
- 记忆页可手改用户档案与强记忆,冲突转入审核
- 技能、工具与团队的决策模型;通道插件;模型健康切换
- 对外 Agent MCP 网关;ONNX 模型可离线加载
- 对话 mid-turn steering
- 当前专家记忆备份、恢复与存储维护
- Telegram 可限制允许的用户 ID
- Obsidian CLI 连接器;内置连接器目录改为中英文 JSON
- arXiv 论文检索;Telegram 可限制允许的用户 ID
- 腾讯云实时语音;记忆提炼预算与超时可配置
- 云端桥接命令行;会话列表显示进行中与待处理状态
- 权限选择与自定义侧栏对齐,对话始终可用
- Agent Mail 连接器(授权、邮件工具、新邮件任务)
- LDAP 目录登录
- 专家默认对话模式;输入栏「+」菜单;未开审批时隐藏批准入口
- 飞牛 ARM 安装包与多架构镜像
- 邮箱连接器读取含裸非 ASCII 字节邮件头(如未 MIME 编码的中文发件人/主题)时崩溃
Object of type Header is not JSON serializable:search_emails/read_email改用email.policy.default解析并统一str()转换,同时自动解码 MIME 编码头为可读文本;正文中声明未知字符集(如unknown-8bit)时回退 UTF-8 而非抛LookupError。影响所有基于该通用 IMAP/SMTP 适配器的邮箱(QQ/网易/Gmail 等)。 - 专家可配置默认对话模式(Ask / Plan / Craft):新建 / 编辑专家及从专家创建时可选,新建对话与无模式粘性的线程(含 IM / CLI / cron 渠道)按该默认解析,缺省为 Craft;已有对话保持各自粘性的模式不变(Fixes #1310)。
- 记忆提炼调用参数可配置:记忆设置页新增提炼输出预算、单次提炼/批量整理等待超时;API 另支持
extract_extra_body传递思考开关等厂商参数。参数经 agent 配置透传到 harness 的记忆辅助调用,与提炼时机(空闲/间隔)相互独立,深度思考的本地模型不再必然撑爆默认 120 秒读取超时(Fixes #1360,需配套 octop-harness / octop-memory 的同名变更)。 - Octop↔Octop 云端桥接,经隧道使用远程专家(聊天与工作区可写;工具/插件/渠道部分可写;技能包、全局 ACP、连接器、知识库仅本机)
- 内置助手可回答产品与使用问题
- 可配置 Ollama 本地模型下载目录
- 账号可自定义侧边栏;角色改为存模板 id(账号侧栏与权限快照,不是运行时角色同步)
- 侧栏可按账号自定义;角色模板 id 持久化
- 角色模板、邀请快照与头像;登录页「记住登录状态」
- 企查查同时支持一键 OAuth 与 API Key
- 团队产物、工具轨迹与主持人收尾;管理员批量策略与令牌
- Teams 主持人改写派工,成员回复同步 IM
- 企查查、OpenAlex 连接器
- 技能包新增「复制策略」(
copy_policy,默认snapshot行为不变):创建者/管理员可按包设为lock(复制出的工作区副本带 origin/locked 水印,非创建者在工作区写接口被拒)或deny(复制端点 403、前端按钮禁用);复制成功与拒绝均落 audit。锁定副本在 Agent 工具层的写保护依赖 harness 侧配合,已在 issue 中单列(#770) - 登录验证码新增极验行为验 v4(#870):设置页配置 captcha_id / captcha_key,登录弹窗完成验证,服务端按官方协议 HMAC-SHA256 签名后到 gcaptcha4 二次校验(form-urlencoded,仅 result=success 放行)
- 对话支持默认折叠思考与工具过程(浏览器本地偏好)(#718)
- 对话中可隐藏不常用的共享专家(浏览器本地偏好)(#589)
- 腾讯云语音新增实时(流式)识别:开启后输入框麦克风为按住说话,边说边显示中间结果、松开即出全文;凭据仅保存在服务端,浏览器只收到开关状态;配置存于语音 provider 的 extra_json,无数据库迁移
变更
- 聊天侧栏分成专家、团队、云端三块;还没有团队或云端连接时,可以直接去创建
- 个性化里的技能、子智能体、工具、插件、性格和记忆可以分别授权,不必一次全开
- 输入栏不常用的入口收进「+」。没有开启审批时,不再出现批准按钮
- 飞牛提供 ARM 安装包,安装后走建账号向导
- 用户消息的复制、编辑按钮一直显示
- 升级 octop-memory 1.0.2、octop-harness 1.0.4、octop-gateway 1.0.3
- 升级 octop-harness 1.0.3 与 octop-gateway 1.0.2
- 头像、技能卡片、个人设置抽屉与登录页外观
- 升级 octop-harness 与 octop-memory;README 加入 Octop Pet
- octop-harness 升到 1.0.1;飞牛安装改为建账号向导
- 更新 README 路线图、锚点与产品名链接
- README 路线图与产品链接更新
- 运行时依赖切换为 octop-harness / octop-gateway / octop-memory / octop-browser 1.0.0
- 升级 harness-agent 至 1.0.14;Dashboard 空状态与聊天输入交互微调
- 连接器 OAuth 回调对重定向 URL 和错误消息安全编码,拒绝外站和控制字符绕过;弹窗仅向同源窗口发送授权通知,并保留回跳路径的查询参数与片段
修复
- 中文 Windows 上,搜索或执行命令碰到编码问题时,不再把整轮对话判失败,也不再把命令输出弄丢
- 旧版 Word(.doc)在知识库里改为显示抽出的文字,在工作区、对话和技能里改为下载
- 云端团队刷新页面后,正在生成的成员回复还在。对方拒绝登录时,不会把你自己的账号退出
- 删掉会话会一并清掉它留下的数据。远程存储卡住时,不再挡住整个服务启动
- 邮件标题里没有按规范编码的中文,可以正
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Octop is an open-source, self-hosted AI assistant. It's not just a tool — it's a digital life form that can operate in parallel. Through its multi-agent architecture, it builds an intelligent environment that is both independent and collaborative for teams, families, and individuals. Best of all, it runs entirely on your machine — the fully self-hosted design means privacy is never a compromise, while single-process startup makes the powerful web console, CLI, and IM integrations readily accessible.
Chat through the Web Dashboard, Feishu, DingTalk, QQ, WeChat, Telegram, Discord, WeCom, or programmatic HTTP/SSE/WebSocket. Extend capabilities with the expert library, Connectors (OAuth + MCP), and ACP integration for IDE workflows.
✨ Highlights
| Feature | Description | |
|---|---|---|
| 👥 | Multi-user expert team | One admin, shared household; built-in expert library and expert market — switch specialists per scenario |
| 🤝 | Cloud collaboration | Link this Octop to another instance to browse peer experts and chat across instances; history stays on the expert's side |
| 🎭 | MBTI personas | 16 personality templates plus an interactive quiz — give each agent a distinct character |
| 🎯 | AgentTeams (Beta) | A coordinator schedules multiple experts on multi-step work; details |
| 🔒 | Security built-in | JWT multi-user isolation, tool approval, shell command guardrails, and PII redaction — data stays local |
| 🔌 | Connector ecosystem | Tencent suite (Docs, Meeting, News, …); OAuth and MCP gateway extend resource boundaries — supported connectors |
| 💾 | Pluggable workspace backends | Local disk, Docker sandbox, PostgreSQL, or COS/S3 for agent files — separate from the control-plane DB |
| 🧠 | Portable memory | Powered by Octop Memory; memory migrates with the workspace |
| 📚 | Knowledge base | RAG over your documents; share corpora within a deployment and ground answers in your private data |
| 🧩 | Plugins | Extend Octop with third-party plugins; bundled plugins are seeded and toggled on demand |
| ↔️ | ACP bidirectional | octop acp for IDE/terminal AI; delegate to OpenCode / Claude Code with permission gates |
| 💻 | Terminal AI+ | Interactive shell in the browser — AI-assisted command execution and troubleshooting |
| 🌐 | Browser AI+ | Headless Chromium sessions for web automation, screenshots, and remote browsing |
| 🖥️ | Remote desktop | Live screen and input from the dashboard on Linux, Windows, and macOS — remote office work and GUI apps; one-click isolated desktop on headless Linux |
| 🪟 | Desktop client | Native Windows / macOS / Linux apps (and FnOS packages) alongside the web dashboard |
| 🏠 | Self-hosted | Dashboard, CLI, IM channels, and cron in one octop run — all data under ~/.octop/ |
📌 Overview
Octop is a self-hosted AI assistant platform for households and small teams. It runs a single process that serves a web dashboard, a CLI, IM channels (Feishu, DingTalk, QQ, WeChat, Telegram, Discord, WeCom, and more), and cron automation — all sharing one control-plane database under ~/.octop/ (SQLite by default; PostgreSQL optional).
Octop's design goal: keep every conversation, workspace, and credential on your own machine, while giving each user a personal team of specialized agents they can switch between per task.
- Personal assistant — let a dedicated agent write weekly reports, organize notes, and manage your schedule; memory persists with the workspace.
- Family sharing — one admin account, the whole household; assign different agents and experts per member; share experts and knowledge bases when useful.
- Team helper — AgentTeams or parallel agents, bridging Feishu / DingTalk / WeCom / WeChat to route tasks into group chats.
- Developer boost — delegate coding tasks to OpenCode / Claude Code via ACP, or troubleshoot from the terminal with AI assistance.
- Web automation — use Browser AI+ and remote desktop for forms, screenshots, and GUI apps.
- Scheduled tasks — configure cron in natural language so the agent pushes or runs jobs on time every day.
🧠 Core Technology
| Layer | Technology |
|---|---|
| Language | Python 3.12+ |
| Web framework | FastAPI + uvicorn |
| Agent runtime | Octop Harness |
| Gateway | Octop Gateway |
| Control plane DB | SQLite (WAL, default) or PostgreSQL (optional) |
| Frontend | React 18 + TypeScript + Vite + Ant Design |
| Scheduling | APScheduler |
| ACP | agent-client-protocol |
| Build / quality | hatchling · ruff · mypy · pytest |
Octop is built on the Octop Harness stack — a set of focused runtimes that Octop composes into one process:
- Octop Harness — Agent runtime: model routing, tools, skills, and conversation checkpointing.
- Octop Gateway — multi-platform IM channel bridge that normalizes incoming messages into a single processing pipeline.
- Octop Memory — hierarchical recall with full-text search, so an agent's memory travels with its workspace.
- Octop Browser — CDP-based browser automation with persistent profiles for web tasks.
Instead of an external queue or message broker, Octop routes every surface — Web UI, IM, and cron — through one in-process HarnessProcessor. The result is a single, restart-safe process whose entire state is rebuilt from the control-plane database on boot (local SQLite by default; PostgreSQL optional).
🤔 Features
Server & auth
- Multi-user JWT authentication with admin role
- First-run setup wizard (
octop init) - Interactive API docs at
/api/docs(off by default — set"enable_api_docs": trueinconfig.jsonto enable)
Experts
- Multiple experts per user; each has its own workspace, providers, channels, and cron
- 16 MBTI persona templates + custom system prompt
- Expert library scanned at boot (
infra/agents/experts/library/); expert market and in-deployment expert sharing - AgentTeams (Beta) — coordinator + member experts for multi-step tasks (docs/expert-teams.md)
- Workspace backends (expert files): local disk, Docker sandbox, PostgreSQL, COS/S3, and other remote stores — distinct from the control-plane database
Channels & automation
- IM channels: Feishu, DingTalk, QQ, WeChat, Telegram, Discord, WeCom, and more
- Proactive cron jobs with natural-language and slash-command triggers
- Unified message processing across Web UI, IM, and cron surfaces
Surfaces
- Web dashboard — chat, experts / teams, connectors, channels, cron, knowledge, plugins, settings
- Desktop client — native apps for Windows / macOS / Linux; FnOS packages for NAS
- CLI —
octop run,octop chats,octop acp, admin commands - HTTP/SSE/WebSocket API — full programmatic access
- Remote desktop — dashboard control of the host desktop session
Knowledge & plugins
- Knowledge base — RAG over your documents; optional sharing within the same deployment
- Plugins — install and manage third-party plugins (
octop plugin); bundled plugins are seeded and toggled on demand from the dashboard
ACP (Agent Client Protocol)
Octop supports ACP in two directions:
-
Inbound — external tools use your Octop agent
octop acp --agent main # stdio ACP server for Zed, OpenCode, … -
Outbound — Octop delegates to external coding agents
- Dashboard → ACP (
/acp): configure runners (global per user) - Enable acp_runner per agent, then delegate in chat
- Dashboard → ACP (
Built-in outbound runners include OpenCode, CodeBuddy, Claude Code, and Codex.
Full setup: docs/acp.md.
🧭 Roadmap
Here are our mid-to-long term plans:
Shipped
- Shared resource pool — a central pool of skills and sub-agents that any user can drop into a new expert without rebuilding from scratch.
- Expert sharing — publish your experts to other users in the same deployment, so good configurations are reused instead of recreated.
- PC client — native desktop apps for Windows / macOS / Linux alongside the web dashboard and IM channels.
In progress
- AgentTeams (Beta) — let one coordinator autonomously schedule and orchestrate multiple experts to tackle multi-step tasks.
- Mobile client (closed beta) — native mobile apps currently in internal testing.
Planned
- Browser & terminal polishing — browser skill recording (capture a workflow and replay it as a skill) and a more capable terminal AI assistant.
- Self-evolution — automatically distill everyday conversations into reusable skills, so the assistant grows with you.
- Managed Agents — platform-hosted agent lifecycle (provision, scale, and operate agents without managing the full self-hosted stack yourself).
- Project — project-scoped workspaces that group agents, files, and conversations around a shared goal.
- Cloud–edge continuum — run Octop locally while offloading selected tasks to the cloud, so light work stays on-device and heavier jobs use remote capacity when you need it.
- Plugin marketplace — a curated market to discover, install, and update third-party plugins without leaving Octop.
- Conversational control plane — deepen Octop’s own skills so chat can cover the full dashboard surface: create experts, wire channels, manage knowledge bases, and scaffold plugins end-to-end.
This roadmap may shift as the community grows; treat it as indicative only.
🚀 Quick Start
Prerequisites
- macOS / Linux / Windows
- No pre-installed Python required — the installer uses uv to provision Python 3.12 in an isolated venv under
~/.octop/ - A modern multi-core CPU with a few GB of RAM for the process plus model/embedding caches; enough disk for the database, agent workspaces, and document corpora
1. Install
macOS / Linux — one-line installer (recommended):
curl -fsSL https://download.octop.cloud/octop/scripts/install.sh | bash
Windows (PowerShell):
irm https://download.octop.cloud/octop/scripts/install.ps1 | iex
Windows (cmd) — download and run, or from a cloned repo:
curl -fsSL https://download.octop.cloud/octop/scripts/install.bat -o install.bat
install.bat
After installation, open a new terminal or reload your shell:
source ~/.zshrc # Zsh
# or
source ~/.bashrc # Bash
The installer places octop on your PATH via ~/.octop/bin. Optional extras:
# Download Playwright Chromium for browser automation (skipped if a system Chrome/Chromium is already present)
curl -fsSL https://download.octop.cloud/octop/scripts/install.sh | bash -s -- --extras browser
See scripts/README.md for all install options (--version, --from-source, --mirror, Windows flags).
Desktop app (GUI, no terminal) — grab the artifact for your platform from GitHub Releases:
| Platform | Artifact |
|---|---|
| Windows | Octop-desktop-windows-amd64-<version>.exe (64-bit) / Octop-desktop-windows-arm64-<version>.exe (ARM64) — NSIS installer |
| macOS | Octop-desktop-darwin-arm64-<version>.dmg (Apple Silicon) / Octop-desktop-darwin-amd64-<version>.dmg (Intel) |
| Linux | Octop-desktop-linux-amd64-<version>.tar.gz / Octop-desktop-linux-arm64-<version>.tar.gz |
| FnOS NAS | Octop-fnos-docker-lite-<version>.fpk (smaller image) / Octop-fnos-docker-<version>.fpk (full: desktop, OCR, local models) / Octop-fnos-native-amd64-<version>.fpk (x86_64, no Docker) / Octop-fnos-native-arm64-<version>.fpk (ARM64 fallback if no Docker) — install via App Center |
See desktop/README.md for the desktop shell and fnos/README.md for the FnOS packaging guide.
Alternative — PyPI (if you already manage Python yourself):
pip install octop
# optional local ONNX embedding model cache (Models → Local): pip install "octop[local-embedding]"
# Downloads catalog weights under ~/.octop/embedding_models; not chat, not Memory.
# Browser automation uses the bundled Playwright package; install Chromium via the installer --extras browser,
# the dashboard, or: python -m playwright install chromium
From a source checkout with uv:
uv sync --extra local-embedding
2. Initialize
octop init
The interactive wizard creates the SQLite database, JWT secret, and first admin account under ~/.octop/.
3. Run
# Foreground (API + Web dashboard)
octop run
# Custom host / port
octop run --host 0.0.0.0 --port 8088
# Register as a system service (systemd / launchd / Windows service)
octop service start
Open http://127.0.0.1:8088. With Docker, a valid OCTOP_DEFAULT_PASSWORD creates the admin on first boot (credentials in /data/.octop/credential.txt); if it is unset or rejected, open the setup wizard (unlock password in /data/.octop/octop-login.txt). Interactive octop init / the setup wizard asks you to choose a password (≥8 characters, letters and digits).
Docker (recommended for production)
# Build and start
docker compose -f docker/docker-compose.yml up -d
# China mirror when ghcr.io is unreachable (no local build)
docker compose -f docker/docker-compose.cn.yml up -d
# Or build manually
bash docker/docker_build.sh
docker run -d \
-p 8088:8088 \
-v octop-data:/data/.octop \
-e HOME=/data \
-e OCTOP_DEFAULT_PASSWORD="<strong-password-or-omit-for-setup-wizard>" \
octop:latest
Open http://localhost:8088. A valid OCTOP_DEFAULT_PASSWORD creates the admin on first boot and writes credentials to /data/.octop/credential.txt. If it is unset or rejected by the password policy, no admin is created — complete the setup wizard (unlock password in /data/.octop/octop-login.txt). Override the username via OCTOP_ADMIN_USERNAME.
Password policy: at least 8 characters with letters and digits.
| Variable | Default | Description |
|---|---|---|
OCTOP_PORT | 8088 | HTTP listen port |
OCTOP_DEFAULT_PASSWORD | (unset) | First-run admin password (Docker bootstrap). Valid → create admin; unset or rejected → setup wizard |
OCTOP_ADMIN_USERNAME | admin | First-run admin username |
OCTOP_DATA | ~/.octop | Host data directory (compose bind mount) |
See .env.example for the full list.
To serve the dashboard under a reverse-proxy subpath (for example https://example.com/octop/), rebuild the frontend with VITE_BASE_PATH=/octop/ and strip that prefix in the proxy (nginx proxy_pass …/;). The default build assumes the domain root.
Deploy with Cloud
📑 Contents
- Highlights
- Overview
- Core Technology
- Features
- Roadmap
- Quick Start
- Deploy & Use
- Architecture & Dev
- Project Info
📦 Install options
| Method | Platform | Description |
|---|---|---|
| Remote one-liner | macOS / Linux | curl …/octop/install.sh | bash |
| Remote one-liner | Windows | irm …/octop/install.ps1 | iex or install.bat |
| Local script | macOS / Linux | bash scripts/install.sh |
| Local script | Windows | scripts\install.bat or install.ps1 |
| PyPI | Any | pip install octop (optional extras such as local-embedding) |
| Docker | Any | docker/docker-compose.yml; China mirror: docker/docker-compose.cn.yml |
All install scripts provision an isolated environment at ~/.octop/venv and a ~/.octop/bin/octop wrapper — they do not touch system Python.
Upgrade
octop update replaces only the wheel/binary — your ~/.octop/ database, workspaces, secrets, and config.json are preserved:
octop update # fetch and install the latest octop, then restart the service if one is registered
The schema migrates automatically on next boot; run octop init only if the setup wizard prompts for a migration. Always back up first (octop backup) before a cross-version upgrade.
⚙️ Configuration
All runtime state lives in ~/.octop/. Manage it via CLI or edit files directly.
# LLM providers and models
octop models
octop provider list
# IM channels
octop channel list
octop channel install
# Skills (per agent)
octop skills list --agent main
# Cron jobs
octop cron list
octop cron create --help
# Users (admin)
octop user list
Supported LLM providers
OpenAI-compatible APIs, DashScope (Qwen), Ollama, and other presets — configure per agent in the dashboard or via octop provider.
Supported channels
| Channel | Credentials |
|---|---|
| Feishu | App ID, App Secret |
| DingTalk | App Key, App Secret |
| Bot AppID, Token | |
| QR bind / account credentials; CLI | |
| Telegram | Bot Token |
| Discord | Bot Token; all accessible channels allowed by default, optional channel/DM allowlists; setup and testing |
| WeCom | Corp ID, Agent Secret |
| Web Dashboard | Enabled by default |
Other kinds (e.g. Yuanbao, Xiaoyi, MQTT) are available via the gateway — see channel setup in the dashboard or CLI.
Supported connectors
Built-in OAuth / MCP connectors include Tencent Docs, Tencent Meeting, Notion, TickTick, OpenAlex, Feishu CLI, WeCom CLI, Agent Mail, Obsidian, WeKnora, Dify, and more. Names and descriptions are localized (en / zh).
Full catalog, auth kinds, and MCP modes: docs/connectors.md. Custom MCP servers can be added in the dashboard.
📖 CLI reference
| Command | Description |
|---|---|
octop init | Bootstrap ~/.octop/ (DB, admin, JWT secret) |
octop run | Start Octop in the foreground |
octop service start | Install and start as a system service |
octop service stop | Stop the system service |
octop agent | Create, list, start/stop agents |
octop channel | Install and manage IM channels |
octop chats | REPL and session management |
octop acp | Stdio ACP server for IDE integration |
octop cron | Manage scheduled tasks |
octop models | Provider presets and model resolution |
octop skills | Enable/disable per-agent skills |
octop plugin | Install and manage third-party plugins |
octop backup | Export / restore backups |
octop clean | Remove CLI state or wipe ~/.octop/ |
octop memory list | List running agents eligible for memory maintenance; no database changes. |
octop memory slim [--agent ID] | Back up and slim SQLite memory through the running host; uses the selected agent or prompts by number. Shows terminal and dashboard progress. Details |
octop memory slim --all | Sequentially maintain all eligible running agents, with per-agent progress; stops on the first failure. |
octop update | Check for and install updates |
In signed-in dashboard or local CLI chat, /memory slim explains maintenance for the current agent;
/memory slim --all lists your eligible agents. Add --confirm to start after reviewing the impact.
Use /memory status for progress/results. Chat stays available until maintenance is confirmed and begins.
External IM maintenance requires verified sender permissions and is not enabled yet.
Full reference: docs/cli.md.
🖥️ Web dashboard
After octop run, open http://127.0.0.1:8088.
- Chat — real-time conversation with experts and teams
- Cloud — Tencent CVM fleet overview, instance metrics, and a resident ops expert
- Experts — create experts, pick templates / MBTI personas, share or publish experts, configure providers
- AgentTeams (Beta) — coordinator + member experts for multi-step work
- Connectors — OAuth apps and MCP gateways
- Channels — IM platform setup
- Cron — visual cron job management
- Knowledge base — manage document corpora, semantic retrieval, and in-deployment sharing
- Plugins — install, enable, and configure plugins
- Remote desktop — live screen and input from the dashboard
- ACP — configure outbound coding-agent runners
- Settings — users, security, TLS, system
Interactive API docs: http://127.0.0.1:8088/api/docs (disabled by default — enable by setting "enable_api_docs": true in config.json)
📁 Data directory
~/.octop/ ← install & data root
├── config.json # process config (optional database section)
├── octop.db # SQLite — users, agents, channels, cron, …
├── secrets/ # JWT secret, channel tokens
├── agents/<agent_id>/ # per-agent workspace (SOUL.md, skills, …)
├── security/tool_guard/ # shell command allow/deny rules
├── logs/ # runtime logs
├── venv/ # uv-managed Python (installer layout)
└── bin/octop # PATH wrapper → venv/bin/octop
The control plane can also use PostgreSQL — set database in config.json, or OCTOP_DATABASE_* / the first-run wizard. With PostgreSQL, agent memory reuses the same DSN by default (per-agent schema); to keep file-based memory, set "memory": { "backend": { "type": "sqlite" } } in the agent config. See docs/configuration.md and docs/adr/002-database-backends.md.
See docs/configuration.md for env vars and config.json. Hosts that cannot reach the public catalog can run a private plugin and expert market; the HTTP contract is in docs/private-market.md. A private SkillHub-compatible skill market is docs/skill-market.md (SKILL_MARKET_ORIGIN).
🏗️ Architecture
OctopServer
├─ DatabasePool SQLite (WAL) or PostgreSQL
├─ SharedServices DI root — every repo + config
├─ ExpertCatalog scans agents/experts/library/ at boot
├─ UserManager
│ └─ HarnessAgentManager (per user)
│ └─ AgentRuntime (per agent)
│ ├─ HarnessAgent Agent runtime (octop-harness)
│ ├─ HarnessProcessor IM / UI / cron entry point
│ ├─ ChannelManager IM connections (octop-gateway)
│ └─ CronManager APScheduler
└─ FastAPI app (uvicorn)
Single process. Restart rebuilds state from the control-plane database (local SQLite by default; PostgreSQL optional).
See docs/architecture.md, docs/adr/001-single-process-model.md, and docs/adr/002-database-backends.md.
📁 Project layout
src/octop/
config.py env-var config
launch.py OctopServer boot + uvicorn
infra/ business core (agents, gateway, cron, db, users, …)
api/ HTTP layer — FastAPI app, routers, JWT, SSE
cli/ CLI layer — Click commands
dashboard/ built React SPA (wheel artifact)
dashboard/ frontend source (Vite) — edit here, run make build-frontend
docker/ Docker Compose, entrypoint, build & deploy scripts
tests/ unit/ + integration/
🛠️ Development
Prerequisites: Python 3.12+, Node 18+, uv
# Backend
make install # pip install -e ".[dev]"
make all # format-all + lint + typecheck + test (ship bar)
# Frontend (separate terminal)
make dev-frontend # Vite dev server on :5173 (override with VITE_DEV_PORT)
make build-frontend # production build → src/octop/dashboard/
cd dashboard && npx tsc -b
Individual targets: make test, make lint, make typecheck, make format.
🔒 Security & privacy
- Local-first: Config, chats, workspaces, and credentials live under
~/.octop/on your machine. - Multi-user isolation: JWT auth with per-user agents and workspaces.
- PII redaction & tool approval: sensitive data is redacted before it leaves the workspace, and risky tools or shell commands require explicit approval under the guardrail rules.
- Tool guardrails: User-editable shell command rules under
~/.octop/security/tool_guard/. - No vendor lock-in: Swap LLM providers, storage backends, and channels without rewriting agents.
🤝 Contributing
Contributions are welcome:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Run
make all(backend) ormake check-all(full stack) before submitting - Open a Pull Request
See CONTRIBUTING.md for the full guide. Security issues: SECURITY.md.
Module boundaries and coding conventions: AGENTS.md.
📋 Changelog
See CHANGELOG.md for release history.
🔗 Related projects
| Project | Description |
|---|---|
| Octop Harness | Agent runtime — model routing, tools, skills, checkpointing |
| Octop Gateway | Multi-platform IM channel bridge |
| Octop Memory | Hierarchical recall and FTS search |
| Octop Browser | CDP browser automation with persistent profiles |
| Octop Pet | A desktop pet for Octop |
💬 Community
- Discord — join the English-speaking community: discord.gg/QnWdhJxq9h
Search for 腾讯Octop in WeChat, or scan:
WeCom Customer Group (CN)
For the customer WeCom support group, scan:
Please scan the QR code to join the group. For any questions or assistance, please contact the group admin directly.
📄 License
This project is licensed under the MIT License.
✨ Contributors
Thanks to all contributors: