# Publish > Comparte páginas del brain como HTML autocontenido y protegido con contraseña, sin llamadas a LLM. Fuente: https://skillsagentes.com/skills/garrytan/gbrain/publish Markdown: https://skillsagentes.com/skills/garrytan/gbrain/publish.md Repositorio: https://github.com/garrytan/gbrain Autor: garrytan Licencia: MIT Actualizado: hace 4 meses Coste de contexto: 19 tok instalada, 1.5k tok al activarse, 1.5k tok con todos los archivos del bundle Bundle: 1 archivo, 6 KB Permisos que pide: get_page, search ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add garrytan/gbrain --skill publish --agent claude-code # Cursor npx -y skills add garrytan/gbrain --skill publish --agent cursor # Codex npx -y skills add garrytan/gbrain --skill publish --agent codex # Gemini CLI npx -y skills add garrytan/gbrain --skill publish --agent gemini # Windsurf npx -y skills add garrytan/gbrain --skill publish --agent windsurf # Cline npx -y skills add garrytan/gbrain --skill publish --agent cline ``` ## Qué hace - Convierte una página del brain en un archivo HTML autocontenido, listo para compartir - Elimina frontmatter, citas de fuentes, números de confirmación, enlaces internos y la sección Timeline - Cifra el contenido con AES-256-GCM y derivación de clave PBKDF2 (100K iteraciones, SHA-256) por defecto - Genera una contraseña automáticamente si el usuario no especifica una - Preserva las URLs externas y el resto del contenido no sensible ## Cuándo usarla - El usuario pide compartir una página del brain o crear un enlace para compartir - Se necesita enviar un memo de deal, un briefing de persona o una investigación a alguien externo - El usuario pide publicar un análisis de data room o un plan de viaje - Contenido del brain necesita salir del sistema sin exponer todo el brain ## Qué la activa - "Comparte esta página con un cliente" - "Publica esta página del brain" - "Créame un enlace para compartir este briefing" - "Dame esta página protegida con contraseña" ## Antes de instalar - Requiere el CLI `gbrain` instalado; subir a almacenamiento en la nube es opcional y usa `gbrain files upload`/`signed-url`. ## Archivos - SKILL.md — 6 KB ## SKILL.md Reproducido tal cual desde garrytan/gbrain bajo MIT. Esta sección es el documento original y está en inglés. # Publish Skill Share brain pages as beautiful, self-contained HTML documents. Optionally password-protected with client-side AES-256-GCM encryption. No server needed. This is a **code + skill pair**: the deterministic code (`gbrain publish`) does the stripping, encrypting, and HTML generation. This skill tells you when and how to use it. See [Thin Harness, Fat Skills](https://x.com/garrytan/status/2042925773300908103) for the architecture philosophy. ## Contract - Published HTML is fully self-contained: no external dependencies, no server needed. - All private metadata (frontmatter, source citations, confirmation numbers, brain cross-links, timeline) is stripped before publishing. - Password protection uses AES-256-GCM with PBKDF2 key derivation; plaintext never appears in the encrypted HTML file. - Default is always encrypted unless the user explicitly requests "open", "no password", or "public". - External URLs (`https://...`) are preserved; only internal brain paths are stripped. ## When to Publish - User asks to share a brain page, create a shareable link, or says "give me a page" - User wants to send a deal memo, person briefing, or research to someone external - User asks to publish a data room analysis or trip plan - Any time brain content needs to leave the brain without exposing the whole system ## Default: ALWAYS ENCRYPT Brain content is private. Default to password-protected unless the user explicitly says "open", "no password", or "public". If no password is specified, auto-generate one. Share the password via a different channel than the URL. ## Quick Reference ```bash # Basic publish (outputs local HTML file) gbrain publish brain/companies/acme.md # Password protected (auto-generate password) gbrain publish brain/companies/acme.md --password # Password protected (specific password) gbrain publish brain/companies/acme.md --password "secret123" # Custom title gbrain publish brain/companies/acme.md --password --title "Acme -- Deal Analysis" # Custom output path gbrain publish brain/companies/acme.md --out /tmp/acme-share.html ``` ## What Gets Stripped The publish command automatically removes all private/internal data: | Stripped | Example | Why | |---------|---------|-----| | YAML frontmatter | `title:`, `type:`, `tags:` | Internal metadata | | `[Source: ...]` citations | All formats | Provenance is internal | | Confirmation numbers | `ABC123DEF` -> "on file" | PII/booking data | | Brain cross-links | `[Jane](../people/jane.md)` -> `Jane` | Internal paths | | Timeline section | Everything below `---` / `## Timeline` | Raw evidence log | | "See also" lines | Internal references | Brain navigation | **Preserved:** external URLs (`https://...`), all other content. ## Sharing Workflows ### Option A: Local file (simplest) ```bash gbrain publish brain/people/jane-doe.md --password --out ~/Desktop/jane-briefing.html ``` Share the HTML file via email, Slack, Airdrop. Share the password separately. ### Option B: Upload to cloud storage ```bash # Publish locally first gbrain publish brain/companies/acme.md --password "secret" --out /tmp/acme.html # Upload to Supabase Storage gbrain files upload /tmp/acme.html --page shares/acme # Get a signed URL (1-hour expiry) gbrain files signed-url shares/acme/acme.html ``` Share the signed URL + password. URL expires in 1 hour. Re-generate as needed. ### Option C: Static hosting (Render, Netlify, S3) Upload the HTML file to any static hosting service. The file is self-contained, no server logic needed. Password-protected files work entirely client-side via Web Crypto API. ### Option D: GitHub Pages / Gist ```bash gbrain publish brain/trips/japan-2026.md --out trip.html # Upload to a GitHub Gist or Pages repo ``` ## Password Protection Details - **Algorithm:** AES-256-GCM - **Key derivation:** PBKDF2 with 100K iterations, SHA-256 - **Salt:** Random 16 bytes per encryption - **IV:** Random 12 bytes per encryption - **Decryption:** Client-side via Web Crypto API (SubtleCrypto) - **No server auth needed** -- the HTML file is self-contained - **"Remember on this device"** -- saves password in localStorage When encrypted, the published HTML contains ONLY ciphertext. The plaintext is not present anywhere in the file. ## Updating a Published Page Re-run the publish command with the same output path: ```bash gbrain publish brain/companies/acme.md --password "same-password" --out shares/acme.html ``` Same file, same URL (if hosted), updated content. ## Revoking Access Delete the file. If using signed URLs, the URL expires automatically (1 hour). If using static hosting, remove the file from the host. ## Anti-Patterns - **Publishing without encryption.** Brain content is private. Default to password-protected unless the user explicitly says "open", "no password", or "public". - **Sharing password and URL in the same channel.** Always share the password via a different channel than the URL for security. - **Assuming the user wants raw markdown.** The publish command produces beautiful HTML. Don't copy-paste markdown when `gbrain publish` exists. - **Including internal metadata.** Never manually share content that contains frontmatter, source citations, or timeline sections. Let the publish command strip it. ## Output Format ``` PUBLISHED: [page title] ======================== File: [output path] Encrypted: [yes (AES-256-GCM) / no] Password: [auto-generated password / user-provided / none] Size: [file size] Share the file via: [email / Slack / Airdrop / cloud upload] Share the password via: [a different channel] ``` ## Tools Used - `gbrain publish` -- deterministic HTML generation (no LLM calls) - `gbrain files upload` -- upload to cloud storage (optional) - `gbrain files signed-url` -- generate access links (optional) ## Dónde encaja - Categoría: [Productividad](https://skillsagentes.com/categorias/productividad.md) — Planificación, toma de notas y automatización de flujos personales. - Creador: [garrytan](https://skillsagentes.com/creators/garrytan.md) — 134 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Setup](https://skillsagentes.com/skills/garrytan/gbrain/setup.md): Configura GBrain con auto-aprovisionamiento de Supabase o PGLite, inyección en AGENTS.md y primera importación. - [Maintain](https://skillsagentes.com/skills/garrytan/gbrain/maintain.md): Chequeos de salud del brain: aplicación de back-links, auditoría de citas, validación de filing, detección de info obsoleta, páginas huérfanas y benchmarks. - [Schema Unify](https://skillsagentes.com/skills/garrytan/gbrain/schema-unify.md): Migra un brain de gbrain-base a la taxonomía de 14 tipos canónicos de gbrain-base-v2 usando gbrain onboard --check y el handler Minion unify-types. - [Retrieval Reflex](https://skillsagentes.com/skills/garrytan/gbrain/retrieval-reflex.md): Cuándo y qué recuperar: abre la página del brain de una entidad relevante antes de responder desde memoria. - [Minion Orchestrator](https://skillsagentes.com/skills/garrytan/gbrain/minion-orchestrator.md): Skill unificado de Minions para jobs deterministas de shell y orquestación de subagentes LLM: cola durable, observable y controlable, más la doctrina de ejecución durable para operaciones largas. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)