Saltearse al contenido
↑↓Navegar ↵Abrir escCerrar

Extensiones

Una extensión puede ofrecer una página a pantalla completa, como un tablero de tareas. Ábrela desde Páginas de extensiones, encima de las sesiones. El menú solo aparece para páginas habilitadas y aprobadas. Elegir un chat, recargar, pausar, eliminar o cambiar de servidor cierra la página. La extensión no puede abrirla por su cuenta.

Sus propios datos se guardan en el servidor conectado y se borran al eliminar la extensión. Un tablero puede seguir sesiones de varios proyectos y worktrees sin crear archivos en tu proyecto.

Usa Configuración → Extensiones para añadir a OpenChamber paneles hechos por otras personas. Una extensión es una página pequeña que se coloca en la barra derecha, junto a los paneles integrados. Puede mostrarte datos de otro servicio, adjuntar una tarea al chat y, si se lo permites, iniciar sesiones, enviar prompts o leer archivos.

Las extensiones funcionan en OpenChamber web y de escritorio. VS Code y la app móvil todavía no las cargan. No son lo mismo que los plugins de OpenCode.

Instalar una

Las extensiones marcadas como Integrada se incluyen con la instancia OpenChamber seleccionada. Empiezan activadas y reciben sus permisos declarados sin otro diálogo. Usa Desactivar o Activar en su tarjeta. No se pueden eliminar ni actualizar por separado de la app. Desactivarlas conserva sus datos y cuentas conectadas, y esa elección se mantiene tras actualizar la app.

Sus cuentas aparecen en Ajustes → Integraciones → Integraciones nativas. Un servicio puede seguir necesitando un token API o iniciar sesión para acceder a tu cuenta.

  1. Abre Configuración → Extensiones.
  2. Pega una de estas opciones en el campo Carpeta, ZIP o URL y elige Añadir:
    • la ruta absoluta de una carpeta en este equipo
    • la ruta de un archivo .zip
    • un enlace https a un repositorio git o a un archivo zip
    • una dirección Git SSH como [email protected]:owner/extension.git
  3. Si la extensión pide permisos, un diálogo los enumera. Elige Permitir y activar, o Eliminar para quitarla.

También puedes arrastrar un .zip sobre el campo o elegirlo con el botón de archivo que está al lado; el archivo se sube al servidor de OpenChamber, así que esto también funciona con una instancia remota. En el escritorio, el botón de carpeta abre un selector nativo, y una carpeta arrastrada se instala desde su ruta.

El icono de la extensión aparece en la barra. Si no aparece, consulta Solución de problemas.

Una instalación desde carpeta se ejecuta directamente desde esa carpeta, así que quien desarrolla una extensión puede editar y recargar. Un zip o una URL se copia primero en la carpeta de datos de OpenChamber; el archivo original no se toca.

Repositorios privados e identidades Git

Las instalaciones SSH aceptan [email protected]:owner/extension.git y ssh://[email protected]/owner/extension.git, con #branch-or-tag opcional. Elige la identidad global o una identidad Git guardada en el menú de huella junto al campo. La selección se conserva para comprobar e instalar actualizaciones; los cambios de clave se aplican en la siguiente operación.

La identidad global usa la configuración Git/SSH y el agente SSH del usuario que ejecuta el servidor OpenChamber seleccionado. En una instancia remota, la clave debe estar disponible allí. Desbloquea primero las claves protegidas en el agente SSH de ese proceso. HTTPS usa las credenciales HTTPS de Git, sin cambiar automáticamente a SSH. Los hosts Git deben resolver a direcciones públicas; no se admiten alias SSH locales ni destinos de redes privadas.

Qué puede hacer una extensión

Mostrar un panel y leer qué proyecto y sesión están abiertos no necesita permiso. Todo lo que actúa en tu nombre sí lo necesita, y ves la lista completa una sola vez, al instalar:

  • Enviar mensajes en tus sesiones: escribe y envía prompts al modelo, lo que gasta tokens y puede ejecutar herramientas.
  • Acceder a proyectos y sesiones: listar proyectos, worktrees y estados de sesiones, y crear y abrir sesiones en proyectos registrados. El contenido de las conversaciones sigue siendo privado.
  • Leer y escribir archivos del proyecto: cualquier archivo del proyecto abierto.
  • Leer y escribir archivos fuera del proyecto: solo las ubicaciones enumeradas en el diálogo.
  • Usar tu Small Model: generación de texto puntual fuera de tus sesiones, con el modelo de Configuración → Sesiones → Small Model. Gasta tokens.
  • Conectarse a un servicio externo: con la cuenta que conectas en Configuración → Integraciones.
  • Leer la conversación de una sesión: solo cuando ejecutas la acción de la extensión en esa sesión.
  • Ejecutar un servicio local: un programa aparte con todo el acceso de tu usuario. Permítelo solo si confías en el autor. Cuando la extensión quiere enterarse de lo que pasa en tus sesiones, esta línea enumera también los momentos de los que recibe aviso: termina un turno, falla un turno, el agente pide permiso, el agente hace una pregunta. Recibe aviso en todos los proyectos, sin ninguna ventana abierta, y obtiene solo identificadores: la sesión, su proyecto y los elementos que le vinculaste.
  • Leer lo que dice el agente en segundo plano: la respuesta final de cada turno, las preguntas que hace el agente y para qué pide permiso, en todos los proyectos, enviados al servicio local de la extensión. Permítelo solo si confías en adónde lo envía la extensión.
  • Iniciar sesiones y enviar mensajes por sí sola: su servicio local lo hace sin ninguna ventana abierta, lo que gasta tokens y puede ejecutar herramientas.
  • Añadir a lo que leen los agentes: texto en las instrucciones de tus sesiones y skills que se ofrecen a todos los agentes mientras la extensión esté activa.
  • Añadir un plugin a OpenCode: el plugin del paquete se carga en tu OpenCode mientras la extensión esté activa. El código del plugin se ejecuta dentro de OpenCode con todo tu acceso, como un servicio local, así que permítelo solo si confías en el autor.

Un servicio local también puede seguir funcionando mientras OpenChamber esté en marcha, o activarse según un horario. El diálogo lo dice bajo Ejecutar un servicio local, e indica cuándo lo que escribes después de @ va al servicio. Una extensión puede añadir sus propias filas al menú @ y sus propios bloques a las respuestas del agente. Pausar la extensión quita todo esto.

Una extensión que entrega tus notificaciones, a Slack, Matrix o a un servidor propio, también lo dice bajo Ejecutar un servicio local, con una línea que empieza por Entrega tus notificaciones. No sale nada hasta que conectas una cuenta para ella en Configuración → Integraciones; a partir de ahí recibe lo que recibiría tu teléfono, y pausar la extensión lo detiene.

Cuando una versión más nueva pide más de lo que permitiste, la tarjeta muestra Requiere aprobación y un botón Revisar permisos. Hasta que permitas la nueva lista, esa extensión sigue apagada.

Dónde aparece

Además de su panel en la barra lateral, una extensión puede añadir entradas a menús que ya usas: las acciones de un mensaje del chat, el menú de una sesión, el menú + junto al cuadro de chat y comandos de barra como /task ABC-12 que adjuntan algo sin abrir nada. También puede dar a sus propias herramientas un icono, un título y un diseño de salida propios en el chat, como los que tienen las herramientas integradas de OpenChamber. La extensión decide cuáles de ellos ofrece; todos están apagados hasta que permites la extensión.

Algunas extensiones muestran una imagen en vivo en lugar de un panel propio: aquello en lo que un agente está trabajando en el servidor, como un navegador o un simulador. Haz clic en la imagen o escribe para tomar el control; la línea de estado dirá Tienes el control y las acciones de navegador del agente se rechazarán hasta que pulses Devolver al agente. Copiar y pegar funcionan como siempre. Otro dispositivo conectado a la vez ve quién tiene el control y no puede quitarlo. Una extensión así puede añadir sus propios controles junto a la imagen, por ejemplo una barra de direcciones encima o una columna de herramientas al lado.

Una extensión con un plugin de OpenCode

Una extensión puede incluir un plugin de OpenCode, para que instales una sola cosa en vez de dos. Su diálogo de permisos tiene una fila que empieza con Añadir un plugin a OpenCode. Una vez que lo permites, OpenChamber añade el plugin al OpenCode que ejecuta para ti en un par de segundos, sin reiniciar; desactivar o eliminar la extensión lo retira del mismo modo. No se escribe nada en tu propio opencode.json, así que el plugin nunca sobrevive a la extensión ni se ejecuta en el OpenCode que inicias en una terminal.

Cuando OpenChamber no inició el OpenCode con el que habla, o tu entorno define su propio OPENCODE_CONFIG, la configuración de OpenChamber no llega a ese OpenCode. La pantalla de la extensión lo dice y ofrece Añadir a la configuración global. Eso escribe la carpeta del plugin en tu configuración global de OpenCode: entonces se ejecuta en cada OpenCode de este equipo, terminal incluida, sigue activo mientras la extensión esté desactivada y es tuyo para gestionarlo en Ajustes → Plugins. Si eliminas la extensión, OpenCode muestra esa entrada como un plugin fallido y sigue funcionando hasta que borres la entrada allí. Un OpenCode en otra máquina no puede cargar una carpeta de esta; la pantalla lo dice.

VS Code y la app móvil no cargan extensiones. Una sesión dentro de un espacio aislado ejecuta su propio OpenCode, que nunca recibe el plugin. En modo empresa el plugin cuenta como un servicio local: la extensión solo se instala desde un repositorio aprobado por tu administrador.

Una extensión como host Git

Una extensión puede añadir un host Git junto a GitHub, GitLab, Gitea, Forgejo y Gerrit. Su diálogo de permisos tiene entonces una línea que empieza por Actúa como el host Git y nombra el host. La línea también dice qué le envía OpenChamber: nombres de repositorios, ramas y el texto que escribes en issues y pull requests.

Cuando lo permites, el host recibe su propia tarjeta en Configuración → Integraciones, junto a los hosts integrados. Conecta ahí tu cuenta con un token, y con la dirección del host si la tarjeta la pide. A partir de ahí, un proyecto cuyo remoto está en ese host funciona como cualquier otro: sus issues y pull requests están en el tablero Issues y PRs y en el menú + del chat, sus ramas muestran insignias de pull request y puedes empezar un worktree desde uno de sus pull requests. Qué hace cada una de estas cosas está en Hosts Git.

Tu token se queda en OpenChamber. La extensión pide a OpenChamber que llame al host por ella, y OpenChamber añade el token a cada llamada, solo para la dirección que conectaste. La extensión nunca lo recibe.

Pausar la extensión quita el host hasta que vuelvas a activarla, y tu cuenta se conserva. Quitar la extensión olvida la cuenta. VS Code no muestra hosts Git de extensiones.

El SDK de OpenChamber tiene un ejemplo funcional, examples/source-control-provider, para empezar a construir uno. Consulta Crea una extensión.

Una extensión como gestor de incidencias

Una extensión puede añadir un gestor de incidencias junto a Linear: YouTrack, Jira, Plane o uno propio. Su diálogo de permisos tiene entonces una línea que empieza por Actúa como el gestor de incidencias y lo nombra. La línea también dice qué le envía OpenChamber: tus búsquedas y los elementos que abres, y que se le pide cambiar su estado y publicar comentarios de sesión por ti.

Cuando lo permites, el gestor recibe su propia tarjeta en Configuración → Integraciones bajo Cuentas de extensiones. Conecta ahí una cuenta: con un token, o iniciando sesión en el navegador después de introducir el client id de la app que registraste en el gestor, y antes la dirección del servidor si la tarjeta la pide. A partir de ahí, sus elementos están donde están los de Linear: el menú + del chat y el selector, New Worktree, los elementos vinculados de una sesión y los estados en vivo de los elementos que sigues. Un enlace pegado a uno de sus elementos se reconoce igual. Qué hace cada una de estas cosas está en Linear.

Tus tokens se quedan en OpenChamber. La extensión pide a OpenChamber que llame al gestor por ella, y OpenChamber añade la credencial a cada llamada, solo para el servidor que conectaste. La extensión nunca la recibe, y solo sus llamadas de cambio de estado y de comentarios pueden escribir algo allí.

Pausar la extensión quita el gestor hasta que vuelvas a activarla, y tus cuentas se conservan. Quitar la extensión las olvida. VS Code no muestra gestores de incidencias; en el teléfono se muestran los elementos del gestor, y las cuentas se conectan desde la app web o de escritorio.

El SDK de OpenChamber tiene un ejemplo funcional, examples/tracker-provider, con un gestor falso para ejecutar al lado. Consulta Crea una extensión.

Una extensión como proveedor de uso

Una extensión puede añadir un proveedor de uso junto a los integrados: un proveedor que OpenChamber no lee por sí mismo, o uno propio. Su diálogo de permisos tiene entonces una línea que empieza por Informa del uso como un proveedor integrado y enumera los proveedores de OpenCode cuyas credenciales lee, como openrouter; una extensión que no enumera ninguno lo dice.

Cuando la permites, su tarjeta aparece después de los proveedores integrados en Ajustes → Uso, con el nombre y el icono de la extensión, y se suma a los límites de la cabecera, al estado de trabajo, al popover del teléfono y a la bandeja del escritorio cuando marcas Mostrar en el estado de trabajo, como cualquier proveedor integrado. En cada actualización OpenChamber entrega a la extensión la credencial que OpenCode guarda para cada proveedor enumerado, y nada más; una versión que enumere otro proveedor vuelve a pedir tu aprobación. La extensión lee el uso por sí misma y OpenChamber lo dibuja como dibuja el de un proveedor integrado.

Pausar la extensión quita la tarjeta hasta que vuelvas a activarla, y tus ajustes de uso para ella se conservan. Quitar la extensión quita la tarjeta para siempre. VS Code no muestra uso de extensiones; en el teléfono la tarjeta se muestra, y la extensión se configura desde la aplicación web o de escritorio. Una sesión dentro de un espacio aislado lee el uso del servidor propio de ese espacio, que no tiene extensiones.

El SDK de OpenChamber tiene un ejemplo funcional, examples/quota-provider, con una API de uso falsa para ejecutar al lado. Consulta Crea una extensión.

Conectar su cuenta

Una extensión que habla con un servicio recibe una tarjeta en Configuración → Integraciones bajo Cuentas de extensiones. Según el servicio, la tarjeta pide un token de API, un usuario y token, o un client id para un flujo de inicio de sesión. Elige Conectar; Desconectar olvida el token guardado. Los campos extra que declara la extensión se guardan solos al salir de ellos.

El token se queda en el servidor de OpenChamber. La página de la extensión nunca lo ve.

Actualizar

Las extensiones instaladas desde una URL de git pueden actualizarse solas. Abrir Configuración → Extensiones comprueba cada una como máximo una vez por hora; Buscar actualizaciones comprueba al momento. Una tarjeta con una versión más nueva muestra Actualización disponible y un botón Actualizar. La actualización conserva tus permisos, cuentas y ajustes; si la nueva versión pide más, el diálogo de aprobación aparece otra vez. Las instalaciones por carpeta o zip no se actualizan: reemplázalas a mano.

Añade #v1.2.0 o #stable a la URL de git al instalar para seguir una etiqueta o rama en lugar de la rama por defecto.

Pausar o quitar

Cada tarjeta tiene un interruptor Activado. Apagado mantiene la extensión instalada pero oculta su panel y bloquea sus llamadas. Quitar borra una instalación por zip o URL de la carpeta de datos de OpenChamber; en una instalación por carpeta solo olvida la ruta, tu carpeta se queda.

Crear la tuya

Todo lo que puede hacer una extensión, y cómo crear una, está en Crear una extensión.