Skip to content

[FEATURE]: Default sharing to "disabled" — privacy by default #17188

Closed as not planned

Description

@jerome-benoit

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Related: #7982, #459

Describe the enhancement you want to request

Default sharing behavior raises privacy and informed consent concerns

The current default ("share": "manual") allows any user to upload their full session — including file contents, terminal output, and environment context — to external servers (opncd.ai) with a single /share command, without any confirmation dialog or informed consent step.

While /unshare does delete session data from the remote server, several concerns remain:

  1. Informed consent: Users are not warned before upload about what data is being shared, where it is stored, for how long, and who has access. This conflicts with fundamental data protection principles (GDPR Art. 5 — transparency, CCPA, and most privacy frameworks).

  2. Incidental data exposure: Coding sessions routinely capture sensitive data — .env files, credentials, personal information in test data, proprietary algorithms. Users may not realize that a shared session includes all of this context, not just their prompt.

  3. No confirmation before upload: There is no consent dialog before /share executes. A single accidental invocation exfiltrates the entire session. Privacy-respecting UX requires explicit confirmation for irreversible data transfers.

  4. No data retention policy: Sessions shared to opncd.ai are stored indefinitely on Cloudflare infrastructure (R2 + Durable Objects) with no automatic expiration. There is no privacy policy (opncd.ai/privacy → 404), no terms of service (opncd.ai/terms → 404), and no documentation on who can access stored sessions or whether they are used for any secondary purpose. The only written statement is a single line in the docs: "data persists until you unshare."

  5. Privacy by default: The principle of privacy by default (GDPR Art. 25) requires that the most privacy-protective configuration applies without manual action. Sharing should be opt-in ("disabled" by default), not opt-out.

Recommendations (ordered by implementation effort):

  1. Change the default to "disabled" — one-line change, immediate impact, aligns with privacy-by-default
  2. Add a confirmation dialog to /share — display what will be uploaded and to which endpoint before proceeding
  3. Publish a privacy policy and terms of service for opncd.ai — document data retention, access controls, jurisdiction, and secondary use
  4. Add automatic expiration — shared sessions should have a configurable TTL with a reasonable default (e.g. 30 days)

The "share": "disabled" config workaround exists today, but defaults matter — most users never change configuration files, and organizations cannot rely on per-user configuration for data protection compliance.

Activity

  1. added
    coreAnything pertaining to core functionality of the application (opencode server stuff)
    on Mar 12, 2026
  2. github-actions commented on Mar 12, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    If these cover the same ground, consider adding your specific recommendations there instead.

  3. jerome-benoit commented on Mar 12, 2026

    @jerome-benoit
    ContributorAuthor

    Related issues

    Beyond the two already referenced in the description, additional related issues found across the repository:

    Privacy & defaults:

    Share/unshare lifecycle bugs:

    Security boundary:

  4. assigned and unassigned on Apr 26, 2026
  5. removed
    coreAnything pertaining to core functionality of the application (opencode server stuff)
    on May 3, 2026
  6. lee-b commented on May 15, 2026

    @lee-b

    Yes, having this enabled by default is a misfeature imho.

  7. 80avin commented on Jul 6, 2026

    @80avin

    I suggest to add OPENCODE_DISABLE_NONESSENTIAL_TRAFFIC env var similar to claude-code's CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC which disables all traffic to non-essential APIs. Non-essential means all APIs other than those required for LLMs, including telemetry, model syncing, checking updates, etc.

  8. github-actions commented on Sep 5, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions