0 m原生 Android · coding agent 控制端

Agent 在远方深潜, 进度在掌心浮现。

Lagoon 直连你自己的 OpenCode 2.x 服务器——在手机上查看会话、继续下达任务、处理授权与提问。 任务状态会浮现在通知与系统实时更新里,全程无需第三方中转。

  • 正式版 v0.2.4 · 2026-10-12
  • 预览版 v0.2.5-rc.4 · 2026-10-14
9:41 2跑·1完·1待
全部会话
我的 OpenCode 工作站 +
今天
  • 重构离线缓存的截断策略
  • 升级 Gradle 版本目录待授权
  • 修复 SSE 重连后的计数
  • 为通知深链补充回归测试
  • 整理 v0.2.4 发布说明
昨天
  • 排查子会话父链汇总
  • 对齐官方时间线投影规则
  • 新会话
界面示意 · 依据 v0.2.4 实际布局重绘,数据为演示内容

−18 m连接

一根直连的光纤,
中间没有任何中转站。

手机直接与你的 OpenCode 服务端建立连接:REST 读写加上全局 SSE 事件流。 v0.2.0 起已彻底移除 FCM 推送与伴随服务,凭据只留在你自己的手机里。

手机与多台 OpenCode 服务器的连接示意 正式版只实时监控当前服务器;预览版同时保持全部已配置服务器的连接。

点按任一服务器节点,切换当前服务器。

  • 直连端点填写服务器地址,或直接粘贴 opencode pair 输出的官方配对链接(强制 HTTPS)。
  • Keystore 加密密码与会话 Cookie 由 Android Keystore AES-GCM 保护;请求绑定固定 origin,禁止跨源重定向转发凭据。
  • 断线自动对账SSE 断开后自动重连,并重新读取控制状态补齐断线期间的变化。
  • 明文需显式授权建议走 HTTPS 或可信 VPN;局域网 HTTP 必须在该服务器资料中明确开启。

−46 m会话

离开电脑,
对话不必中断。

时间线按官方客户端规则投影:轮次分组、工具折叠、只显示最后一条错误。下滑看看一次任务在 Lagoon 里如何展开。

  1. 01

    在手机上下达任务

    选择项目、Agent 与模型,输入任务或斜杠命令(经服务端 /command 执行),也可以附上图片和文件。

  2. 02

    过程收成一条轨迹

    每个用户轮次的工具调用收拢为「共处理 N 个操作」。展开即可查看命令与输出、读写路径、编辑前后文本与思考过程。

  3. 03

    授权与提问,就地处理

    Agent 需要执行关键动作时,直接在手机上「允许一次」或「拒绝」;只有服务端给出保存范围时才提供「始终允许」。问答表单同样可以直接填写。

  4. 04

    运行中,也能继续引导

    任务运行时仍可继续发送消息来引导当前轮次,或随时停止。消息由客户端生成 id,断线时只用同一 id 重试一次。

  5. 05

    子会话、改动与文件

    右上角 ⋯ 收纳子任务、代码改动与文件浏览搜索;重命名、置顶、删除都在手边。

9:42
重构离线缓存的截断策略opencode-lagoon · build
缓存超限时保留最新的消息,并把会话标记为“不完整”,别再让旧缓存冒充完整会话。
  1. 读取core/OfflineCache.kt
  2. 搜索"truncate" · 4 处
  3. 编辑OfflineCache.kt +38 −12
  4. 运行./gradlew :app:testDebugUnitTest
已改为按预算从最新消息向前保留,超限时写入 truncated 标记,首页会显示“缓存已截断”。接下来跑一遍单元测试确认。

需确认关键操作

OpenCode 正在请求执行动作:

bash  ./gradlew :app:testDebugUnitTest
拒绝始终允许允许一次
顺便把截断阈值写进设置页说明。
运行中 · 1 分 12 秒
描述你的任务…

会话操作

  • 子任务(2)explore · general
  • 改动(3)OfflineCache.kt · +38 −12
  • 文件浏览与搜索工程文件
  • 重命名
  • 删除

−80 m实时更新

像生物荧光一样,
状态会自己亮起来。

Android 16 上,服务器总览以系统「实时更新」常驻状态栏胶囊与锁屏,只在有任务运行或待处理时上岛。 外观完全交给系统绘制,Lagoon 只按标准格式提供内容,不写任何厂商私有字段。

9:41 1跑·0完
Lagoon·我的 OpenCode 进行中

1 个任务运行中

1个运行中,0个已完成

    示意图:系统表面的字体、配色与布局以设备实际绘制为准。

    模拟一台服务器上的任务

    进行中
    有任务运行或待处理:常驻并申请提升为实时更新,胶囊显示 x跑·y完。
    已结束
    只剩未读的完成 / 失败:降级为可划掉的普通通知,不再常驻岛上。
    空
    全部已读:移除通知。打开会话即视为已读,计数随之下降。

    计数口径统一为「运行中 / 未读已完成 / 待回复 / 失败」。分段轨道表达任务组成,而不是虚构的完成百分比;Android 15 及以下使用普通通知与不确定进度条。

    −120 m能力 · 正式版 v0.2.4

    在深水区,
    细节都在。

    多服务器资料

    保存多台服务器,胶囊一键切换。支持 Basic Auth、官方 opencode pair 配对链接,认证失败不会保存资料。

    项目与会话

    按日期、项目或状态分组,可置顶、搜索、重命名与归档;只显示主会话,子代理归入所属会话。

    Agent 与模型

    切换 Agent 与模型,并可在设置中过滤模型下拉框只显示常用项。

    斜杠命令

    命令经服务端 /command 执行,与桌面端行为一致;随版本变化的接口按实例 /openapi.json 选择。

    改动与文件

    查看子会话、代码改动,浏览与搜索工程文件;Markdown 表格、代码高亮与复制一应俱全。

    加密离线缓存

    项目目录与消息加密缓存在本机,离线也能翻阅。过期或局部失败的数据会被明确标记,且不能用于发送操作。

    后台监控

    有任务运行时由前台服务保持实时同步;WorkManager 每 15 分钟做一次权威读取,补记已结束的运行。

    HyperOS / MIUIX 设计语言

    Kotlin + Jetpack Compose 原生实现:连续曲率 Squircle、科技蓝语义调色板,默认跟随系统深浅色,支持预见式返回与 lagoon:// 深链接。

    −160 m航道图

    哪些已经抵达,
    哪些仍在航行。

    Lagoon 处于快速迭代期。下面严格区分已发布的正式版、可抢先体验的预览版与尚未承诺时间的规划方向。

    已发布 · 正式版

    v0.2.4

    2026-10-12 · GitHub Latest

    • OpenCode 2.x 服务端(以 /api/info 识别版本,1.x 已不再支持)
    • 项目、会话、子会话、改动与文件浏览
    • 异步任务、运行中继续发送、停止、权限与表单处理
    • Android 16 系统实时更新与分段状态轨道;旧系统普通通知回退
    • 加密离线缓存、Keystore 凭据、SSE 自动重连

    预览中 · Pre-release

    v0.2.5-rc.4

    2026-10-14 · 尚未在真机完成验收

    • “全部服务器”模式:并行连接所有已配置服务器,聚合会话、运行中任务与未读结果
    • 持续连接:首页筛选与打开对话不再中断其他服务器的监控
    • 手机本地开关:“不显示授权窗口”与“自动授权(仅允许一次)”,默认关闭
    • 刷新、离线缓存、多服务器通知归因等一系列可靠性修复

    规划方向 · 未承诺时间

    更多 harness

    定位:面向多种 coding agent harness 的通用控制端

    • 在 OpenCode 2.x 之外,持续扩展适配更多 coding agent harness
    • 具体支持哪些 harness、何时发布,以产品仓库的 Release 为准

    −200 m下载

    从这里开始下潜。

    正式版 · 推荐

    Lagoon v0.2.4

    安装包
    Lagoon-0.2.4.apk
    大小
    10.0 MB
    系统
    Android 8.0 及以上
    服务端
    OpenCode 2.x
    下载 APK

    抢先体验预览版 v0.2.5-rc.4 全部版本与发布说明

    预览版与正式版使用同一套稳定签名。从 OpenCode Lagoon 旧版本升级时,应用标识 com.igng.opencode.lagoon 与签名保持不变,可直接覆盖安装。

    1. 1

      准备服务端

      运行 OpenCode 2.x 服务端并启用 Basic Auth;或者在电脑上生成官方配对链接,免去手动填写密码:

      opencode pair
    2. 2

      添加服务器

      在 Lagoon 中填写服务器地址(如 https://oc.example.com)或粘贴配对链接。手机无法通过 localhost 访问电脑,请使用电脑的局域网 IP、HTTPS 域名或可信 VPN。

    3. 3

      开始一次会话

      选择项目,描述你的任务。之后就可以把电脑留在原地,让进度在掌心浮现。

    需要中转服务器或推送服务吗?

    不需要。手机直接连接你的 OpenCode 服务端;自 v0.2.0 起已移除 FCM 与伴随服务,后台通知由本机前台服务监听事件流后在本地发出。

    支持 OpenCode 1.x 或其他 harness 吗?

    目前只支持 OpenCode 2.x(1.x 已不再支持)。适配更多 coding agent harness 是规划方向,尚无承诺的发布时间。

    我的凭据和数据存在哪里?

    服务器密码与会话 Cookie 经 Android Keystore 加密保存在手机上;离线缓存同样加密存放在本机。除你自己配置的服务器外,Lagoon 没有任何云端服务接收这些数据。

    为什么有时收不到后台通知?

    Android 会限制后台运行:强行停止应用、系统清理以及 Android 15+ 对 dataSync 前台服务的时长限制都可能中断监听。Lagoon 会在回到前台或定时任务时重新对账,但不承诺无限后台保活。