---
title: "分享会话"
description: "说明 OpenCode 会话分享的用途、公开边界、撤销方式和团队默认策略。"
verifiedAt: "2026-05-09"
---

OpenCode 的 `/share` 不是“发一段截图”，而是把当前会话同步到 OpenCode 的分享服务，并生成一个任何拿到链接的人都能打开的公开 URL。它适合求助、复盘和团队协作，不适合未经检查地分享真实项目上下文。

> [!NOTE]
> **这一篇用 8 分钟换什么**：你会知道 `/share` 到底分享了什么、什么时候用 manual / auto / disabled、分享前要检查哪些敏感内容，以及团队项目为什么应该先把默认值收紧。

## 先给结论：分享前先当公开页面处理

分享链接形如：

```text
opncd.ai/s/<share-id>
```

只要别人拿到链接，就能访问对应会话。不要把它理解成“只有团队成员可见”的私密链接。

| 场景 | 建议 |
| --- | --- |
| 非敏感问题求助 | 手动 `/share`，发给需要的人 |
| 团队复盘一次 OpenCode 输出 | 手动分享，结束后 `/unshare` |
| 公开仓库 CI 自动化 | 明确检查 `share` 配置和日志内容 |
| 私有客户项目、商业策略、未公开源码 | `share: "disabled"` |
| 企业试用期 | 默认禁用，再按合规要求评估 |

> [!WARNING]
> 不要在包含 API key、cookie、客户数据、内部路径、未公开源码、私有服务地址或商业策略的会话里直接 `/share`。先脱敏，脱敏不确定就禁用分享。

## 分享的数据流

当你分享当前会话时，OpenCode 会创建唯一公开 URL，并把会话历史同步到 OpenCode 服务器。官方文档明确说明，分享后的会话在取消分享前会保持可访问状态。

```mermaid
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` | 完全禁用分享 | 私有仓库、客户项目、企业试用、敏感团队 |

项目里可以显式写入：

```jsonc title="opencode.json"
{
  "$schema": "https://opencode.ai/config.json",
  "share": "disabled"
}
```

> [!IMPORTANT]
> 团队项目不要靠口头约定“大家别点分享”。把 `share: "disabled"` 写进项目配置，提交到 Git，才能让默认行为稳定。

## 手动分享和取消分享

手动分享当前会话：

```text
/share
```

这会生成一个唯一 URL，并复制到剪贴板。

取消分享当前会话：

```text
/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。
- 项目所在组织没有明确的数据分享政策。

## 接下来去哪

<Cards>
  <Card title="安全、分享与团队使用" description="把 `/share` 放进权限、密钥、团队配置和 CI 自动化的大边界里看。" href="/docs/opencode/understanding/08-security-share-team" />
  <Card title="企业版" description="团队 rollout 前先确认数据边界、SSO、内部 AI gateway 和分享策略。" href="/docs/opencode/official/06-integrations/enterprise" />
  <Card title="GitHub 集成" description="公开仓库自动化尤其要检查 share、日志和 secrets。" href="/docs/opencode/official/06-integrations/github" />
  <Card title="TUI 工作流" description="从终端里理解 `/share`、`/unshare` 和其他会话控制命令。" href="/docs/opencode/official/00-getting-started/tui" />
</Cards>

## 官方资料

- OpenCode Share：[https://opencode.ai/docs/share](https://opencode.ai/docs/share)
- OpenCode Enterprise：[https://opencode.ai/docs/enterprise](https://opencode.ai/docs/enterprise)
- OpenCode GitHub Integration：[https://opencode.ai/docs/github](https://opencode.ai/docs/github)
