Cómo compartir una sesión de OpenCode y revocar el enlace
Un enlace compartido de OpenCode es una página pública para cualquiera que obtenga la URL, no una invitación privada para un compañero concreto. Esta guía explica qué datos incluye, cómo elegir manual o disabled, revisar toda la sesión y revocar y comprobar el enlace con /unshare.
Índice

Antes de enviar una sesión de OpenCode a un compañero, trata el enlace como una pequeña publicación pública, no como una invitación privada dirigida a una sola persona. La documentación de OpenCode indica que una conversación compartida es accesible para cualquiera que tenga la URL. Para la mayoría de los equipos, el patrón seguro es revisar toda la sesión, compartir manualmente y ejecutar /unshare cuando termine la colaboración; en proyectos sensibles, conviene usar disabled.
Qué expone un enlace compartido de OpenCode
El enlace no muestra únicamente la última respuesta que quieres comentar. Según la documentación oficial de OpenCode Share, al compartir se crea una URL pública única, se sincroniza el historial con los servidores de OpenCode y quedan accesibles:
- el historial completo de la conversación;
- todos los mensajes y respuestas;
- los metadatos de la sesión.
Esto no significa que OpenCode publique automáticamente todo el repositorio local. El riesgo práctico es que cualquier código, configuración, registro, salida de terminal o contenido de archivo que haya aparecido en un mensaje o respuesta ya forma parte del historial público. Además, el enlace estándar no está limitado al compañero al que se lo envías: puede abrirlo cualquiera que obtenga la URL.
La sesión permanece disponible hasta que la dejes de compartir de forma explícita. No revises solo los últimos mensajes ni consideres que una dirección difícil de adivinar equivale a control de acceso.
Cuándo elegir manual, auto o disabled
En el trabajo cotidiano, decide entre manual y disabled. Usa auto solo si aceptas deliberadamente que cada conversación nueva se comparta antes de una revisión humana.
| Modo | Comportamiento | Cuándo encaja | Riesgo principal |
|---|---|---|---|
manual | Modo predeterminado; solo crea el enlace al ejecutar /share | Colaboraciones ocasionales con sesiones ya revisadas | La revisión puede omitir algo, pero las sesiones nuevas no se publican solas |
auto | Comparte automáticamente cada conversación nueva | Flujos concebidos para ser públicos | Puede publicar secretos, código o registros antes de revisarlos |
disabled | Desactiva por completo la función | Repositorios privados, datos de clientes, entornos regulados o equipos sin necesidad de enlaces públicos | Habrá que usar otra vía de colaboración controlada |
La regla práctica es sencilla: manual para enseñar puntualmente una sesión revisada; disabled si el proyecto es sensible, no hacen falta enlaces públicos o no se puede garantizar una revisión consistente. No actives auto solo para ahorrarte escribir /share.
Revisa la sesión completa antes de compartirla
Lee desde el primer mensaje hasta el último. La página pública contiene todo el historial, por lo que limpiar el fragmento que piensas pegar en el chat del equipo no basta. Si queda información sensible en la sesión original, no compartas esa sesión.
1. Credenciales y datos de autenticación
Busca claves API, tokens de acceso, contraseñas, claves privadas, cookies, tokens de sesión, encabezados Authorization, cadenas de conexión, URL firmadas y valores reales de archivos .env. Los nombres de variables o marcadores pueden ser inocuos; los valores activos no.
Si una credencial ya aparece en el historial y no puedes confirmar que se haya eliminado, revócala o rótala, crea una sesión limpia sin el secreto y comparte la nueva.
2. Código propietario y contexto del negocio
Comprueba archivos fuente, parches, configuración, SQL, notas de arquitectura, nombres de clientes, requisitos internos y funciones aún no publicadas que el modelo haya leído o generado. Varios fragmentos aparentemente inocuos pueden revelar juntos la estructura del sistema, la lógica del negocio o sus límites de seguridad.
3. Registros y salida de comandos
Los registros y errores suelen incluir rutas locales, nombres de usuario, correos, hosts, dominios internos, IP, repositorios, ramas, tickets, bases de datos o parámetros de peticiones. No busques solo token y password: revisa trazas, resultados de pruebas, registros de CI, git diff, comandos curl y la salida del terminal.
4. Metadatos e información identificativa
OpenCode incluye expresamente los metadatos de la sesión entre los datos compartidos. Revisa nombres de proyecto y sesión, ramas, rutas y cualquier detalle que pueda identificar una organización o sistema interno.
5. Si no puedes sanearla con certeza, crea una sesión limpia
La documentación pública no promete ocultación automática. No supongas que OpenCode enmascarará las credenciales ni compartas para «ver qué aparece». Lleva únicamente el código, error y contexto imprescindibles a una conversación nueva; suele ser más fiable que intentar demostrar que una sesión larga no conserva restos sensibles.
Cómo compartir con seguridad en modo manual
manual es el modo predeterminado y el más adecuado para revisar antes de publicar.
Paso 1: confirma la configuración efectiva
OpenCode combina configuraciones de varias ubicaciones; una fuente posterior sustituye a otra anterior si ambas definen la misma clave. La configuración global suele estar en ~/.config/opencode/opencode.json y la del proyecto en opencode.json, en la raíz del repositorio. Ejecuta:
opencode debug config
Comprueba en la configuración resuelta que share sea realmente manual, no auto heredado de otra fuente. Consulta ubicaciones y precedencia en la documentación oficial de OpenCode Config.
Para fijar el modo manual de forma explícita, añade al opencode.json apropiado:
{
"$schema": "https://opencode.ai/config.json",
"share": "manual"
}
Paso 2: completa la revisión de privacidad
Aplica la lista anterior a todo el historial. Si no puedes publicar una credencial, código propietario, registro confidencial o metadato identificativo, detente. Crea una sesión nueva y mínima si aún necesitas colaborar.
Paso 3: ejecuta /share en la sesión revisada
/share
La documentación oficial indica que el comando genera una URL única y la copia al portapapeles. No la reenvíes todavía: revísala primero como la página pública que es.
Paso 4: abre el enlace como lo haría el destinatario
Visita la URL en una ventana privada o en un navegador sin sesión iniciada y recorre la página de principio a fin. Comprueba que aceptarías mostrar todo su contenido a cualquier persona que consiga el enlace, incluidos mensajes antiguos y registros largos.
Esta comprobación no añade permisos. El enlace estándar sigue siendo público.
Paso 5: envíalo por un canal controlado y decide cuándo revocarlo
Comparte la URL solo en el canal de equipo que la necesita y pide que no se reenvíe. La petición reduce la difusión accidental, pero no vincula técnicamente el enlace a los destinatarios. Decide desde el principio cuándo lo retirarás: al resolver el error, cerrar la revisión o terminar un plazo concreto.
Cómo desactivar el uso compartido en un proyecto sensible
Si el proyecto contiene datos de clientes, credenciales de producción, código propietario o no existe una necesidad legítima de enlaces públicos, disabled es más fiable que depender de que cada persona recuerde todos los pasos.
Añade lo siguiente al opencode.json de la raíz y súbelo a Git:
{
"$schema": "https://opencode.ai/config.json",
"share": "disabled"
}
La documentación Share recomienda la configuración del proyecto para aplicar esta decisión al equipo. Como las fuentes se combinan, ejecuta opencode debug config y confirma el valor final, sobre todo si hay configuración inline o administrada que puede prevalecer.
Para una política organizativa que los usuarios normales no puedan cambiar, los administradores deben usar managed settings. La documentación actual enumera /Library/Application Support/opencode/ en macOS, /etc/opencode/ en Linux y %ProgramData%\opencode en Windows; estas políticas tienen mayor prioridad que los archivos de usuario y proyecto. Las instalaciones empresariales también pueden limitar el acceso a usuarios con SSO o alojar la función por cuenta propia.
Cómo revocar un enlace existente
La revocación es un paso explícito. Cerrar el terminal, borrar el mensaje donde enviaste la URL o limpiar el portapapeles no deja de compartir una sesión ya pública.
Paso 1: vuelve a la sesión original y ejecuta /unshare
/unshare
OpenCode afirma que el comando elimina el acceso público y el enlace, y borra los datos relacionados con la conversación compartida.
Paso 2: comprueba la URL antigua desde fuera
Conserva la URL original y ábrela de nuevo en una ventana privada u otro navegador. La señal útil de éxito es que ya no muestre la conversación, no simplemente que el comando termine sin un error visible. Si aún se abre, confirma que dejaste de compartir la sesión correcta y revisa el estado del cliente.
Paso 3: si la comprobación falla, considera el enlace todavía público
La página pública Share actual documenta /unshare desde la conversación original y no enumera un panel público separado para administrar enlaces. Si no puedes recuperar la sesión, el comando no está disponible o la URL aún muestra datos, no anuncies que está revocada. Trátala como pública y contacta con el administrador de OpenCode o con soporte hasta verificar desde fuera que el acceso desapareció.
Lo que /unshare no puede recuperar
/unshare impide que OpenCode siga sirviendo la conversación en la URL antigua. No puede hacer que un destinatario olvide lo visto ni recuperar capturas, código copiado o registros descargados anteriormente.
La página oficial dice que se eliminan los datos asociados al uso compartido, pero no promete borrar cachés de terceros, copias del navegador o archivos creados por los destinatarios. Revocar es una limpieza necesaria, no un sustituto de la revisión previa. Si se expuso una credencial activa, revócala o rótala además de ejecutar /unshare.
Preguntas frecuentes
¿El enlace publica todo mi repositorio local?
La documentación menciona el historial, los mensajes, las respuestas y los metadatos; no dice que todos los archivos locales se publiquen automáticamente. Sin embargo, cualquier código, archivo, parche o registro que haya entrado en la conversación debe considerarse parte del contenido compartido.
¿Puedo autorizar solo a una persona?
La función estándar se describe como un enlace público para cualquiera que tenga la URL, no como una lista de acceso por correo. Las organizaciones que necesiten identidad deben valorar las opciones empresariales documentadas, como SSO o alojamiento propio.
¿Por qué apareció un enlace sin ejecutar /share?
Comprueba si la configuración resuelta usa auto. Ejecuta opencode debug config y revisa las fuentes global, de proyecto, inline y administrada para identificar cuál prevalece.
¿Qué hago si /share no está disponible?
Comprueba si el valor final es disabled o está bloqueado por una política administrada. No eludas una norma del equipo mediante un archivo de menor prioridad; pregunta al administrador qué método de colaboración está aprobado.
Lista final antes de enviar
Antes de pulsar Enviar, confirma que:
- el modo efectivo es
manualo el proyecto está intencionadamente endisabled; - revisaste el historial desde el primer mensaje;
- no quedan credenciales activas, URL internas, código propietario, datos de clientes ni registros sensibles;
- abriste la página pública en una ventana sin autenticar;
- sabes quién necesita la URL, por qué canal se enviará y cuándo se revocará;
- al terminar ejecutarás
/unshareen la sesión original y comprobarás la URL antigua.
Cuando tratas una sesión compartida como una publicación y no como un adjunto de chat, los riesgos importantes resultan mucho más visibles antes de que el enlace salga de tus manos.