分享会话
说明 OpenCode 会话分享的用途、公开边界、撤销方式和团队默认策略。
OpenCode 的 /share 不是“发一段截图”,而是把当前会话同步到 OpenCode 的分享服务,并生成一个任何拿到链接的人都能打开的公开 URL。它适合求助、复盘和团队协作,不适合未经检查地分享真实项目上下文。
这一篇用 8 分钟换什么:你会知道 /share 到底分享了什么、什么时候用 manual / auto / disabled、分享前要检查哪些敏感内容,以及团队项目为什么应该先把默认值收紧。
先给结论:分享前先当公开页面处理
分享链接形如:
opncd.ai/s/<share-id>只要别人拿到链接,就能访问对应会话。不要把它理解成“只有团队成员可见”的私密链接。
| 场景 | 建议 |
|---|---|
| 非敏感问题求助 | 手动 /share,发给需要的人 |
| 团队复盘一次 OpenCode 输出 | 手动分享,结束后 /unshare |
| 公开仓库 CI 自动化 | 明确检查 share 配置和日志内容 |
| 私有客户项目、商业策略、未公开源码 | share: "disabled" |
| 企业试用期 | 默认禁用,再按合规要求评估 |
不要在包含 API key、cookie、客户数据、内部路径、未公开源码、私有服务地址或商业策略的会话里直接 /share。先脱敏,脱敏不确定就禁用分享。
分享的数据流
当你分享当前会话时,OpenCode 会创建唯一公开 URL,并把会话历史同步到 OpenCode 服务器。官方文档明确说明,分享后的会话在取消分享前会保持可访问状态。
flowchart LR
Local["本地 OpenCode 会话"] --> Share["/share"]
Share --> Server["同步到 OpenCode 分享服务"]
Server --> URL["opncd.ai/s/<share-id>"]
URL --> Viewer["任何拥有链接的人"]
Server --> Unshare["/unshare 移除链接并删除相关数据"]
style Share fill:#dbeafe,stroke:#3b82f6,stroke-width:2px
style Server fill:#fef3c7,stroke:#f59e0b
style Viewer fill:#fee2e2,stroke:#ef4444
style Unshare fill:#dcfce7,stroke:#22c55e
通常会被分享的内容包括:
- 完整对话历史。
- 用户消息和 OpenCode 回复。
- 与该会话相关的元数据。
- 对话里出现的文件片段、命令输出、错误日志或路径信息。
所以真正的安全判断不是“有没有贴密钥”,而是“这段会话公开后,陌生人能不能推断出不该公开的信息”。
三种分享模式怎么选
OpenCode 的 share 配置有三种模式。
| 模式 | 行为 | 适合场景 |
|---|---|---|
manual | 默认模式;只有运行 /share 才生成链接 | 个人日常使用、临时求助 |
auto | 新会话自动分享 | 极少数公开演示或固定公开协作环境 |
disabled | 完全禁用分享 | 私有仓库、客户项目、企业试用、敏感团队 |
项目里可以显式写入:
{
"$schema": "https://opencode.ai/config.json",
"share": "disabled"
}团队项目不要靠口头约定“大家别点分享”。把 share: "disabled" 写进项目配置,提交到 Git,才能让默认行为稳定。
手动分享和取消分享
手动分享当前会话:
/share这会生成一个唯一 URL,并复制到剪贴板。
取消分享当前会话:
/unshare官方文档说明,/unshare 会移除分享链接,并删除与该对话相关的数据。实际协作里建议把 /unshare 当作收尾动作:问题解决、复盘结束、链接不再需要,就撤销。
分享前检查清单
点 /share 前,至少扫一遍这些内容:
- 会话里有没有 API key、token、cookie、SSH key、OAuth 回调信息。
- 命令输出里有没有
.env、CI secrets、数据库连接串、私有 registry token。 - 文件片段里有没有客户名称、邮箱、订单、账号、内部项目代号。
- 错误日志里有没有内网域名、私有 IP、服务器路径、用户目录。
- 对话里有没有未公开产品策略、报价、路线图或漏洞细节。
- 公开后是否会暴露团队使用的 provider、模型、网关或安全策略。
如果只是要别人帮你看一个报错,更稳的做法是先导出或复制最小必要信息,脱敏后再分享,而不是把整个会话直接公开。
团队默认策略
个人学习可以保留 manual。团队项目建议分层处理:
| 项目类型 | 默认策略 |
|---|---|
| 教程示例、公开 demo | manual,必要时分享 |
| 开源项目 | manual,CI 集成单独检查分享默认值 |
| 私有业务项目 | disabled |
| 客户交付项目 | disabled |
| 企业统一环境 | 通过集中配置禁用或限制分享 |
企业版可以把分享功能完全禁用、限制给通过 SSO(Single Sign-On,单点登录——员工只在公司身份系统登录一次,访问所有内部应用都自动通过)的用户,或在自有基础设施中托管分享页面。即使具备这些能力,敏感组织也应该先默认关闭,再按用例开放。
什么时候适合分享
适合分享的情况:
- 你要向同事展示一次 OpenCode 的推理过程。
- 你要让别人复盘一个非敏感 bug 的定位过程。
- 你要给社区提问,且已经确认会话里没有私密上下文。
- 你要把一次公开仓库的修复过程作为教程素材。
不适合分享的情况:
- 会话接触了真实客户、真实账号或真实生产日志。
- agent 读过私有源码、商业计划、报价、合同或内部文档。
- 你不确定命令输出里有没有 secret。
- 项目所在组织没有明确的数据分享政策。
接下来去哪
安全、分享与团队使用
把 `/share` 放进权限、密钥、团队配置和 CI 自动化的大边界里看。
企业版
团队 rollout 前先确认数据边界、SSO、内部 AI gateway 和分享策略。
GitHub 集成
公开仓库自动化尤其要检查 share、日志和 secrets。
TUI 工作流
从终端里理解 `/share`、`/unshare` 和其他会话控制命令。
官方资料
- OpenCode Share:https://opencode.ai/docs/share
- OpenCode Enterprise:https://opencode.ai/docs/enterprise
- OpenCode GitHub Integration:https://opencode.ai/docs/github