CommunityRedacción y edicióngithub.com

Canvas

Crea y comparte lienzos interactivos de markdown con previsualización en vivo, a través de una API agnóstica y autenticada.

¿Qué es Canvas?

Canvas es una skill para agentes de IA que permite crear y compartir documentos markdown interactivos con una previsualización renderizada, accesibles mediante un slug público. Se integra mediante una API HTTP autenticada (sin necesidad de navegador) que soporta operaciones de creación, escritura, lectura y listado de lienzos. Es compatible con plataformas como Claude Code, Cursor o Codex, y requiere que el usuario proporcione las variables de entorno `CANVAS_SITE_URL` y `CANVAS_AGENT_TOKEN`. Su utilidad radica en ofrecer una superficie colaborativa entre humanos y agentes, actualizable en tiempo real para que las pestañas abiertas se refresquen automáticamente.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add n3wth/skills

Installed? Explore more Redacción y edición skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace Canvas?

canvas.n3wth.com alberga markdown interactivo más una previsualización renderizada, identificada por un slug público. Las vistas abiertas en la URL compartida se actualizan cuando se escribe la fuente.

Esta skill se comunica con la API del agente autenticada por HTTP. No requiere navegador. No contiene secretos en este archivo — el invocador proporciona CANVAS_AGENT_TOKEN y la URL base del sitio Convex desde su propio entorno.

Cuándo usar

  • Crear una superficie de trabajo colaborativa que otro humano o agente pueda abrir
  • Enviar markdown y devolver un enlace estable
  • Actualizar un lienzo existente en su lugar para que las pestañas abiertas se vuelvan a renderizar
  • Leer la fuente actual antes de editar

Variables de entorno que el invocador debe tener

VariableSignificado
CANVAS_SITE_URLBase HTTP de Convex, p. ej. https://.convex.site (sin barra inclinada final)
CANVAS_AGENT_TOKENToken compartido de tipo bearer, cuando el despliegue tiene uno configurado

Los enlaces públicos compartidos siempre usan https://canvas.n3wth.com/c/{slug} (no el host del sitio Convex).

Autenticación: Si CANVAS_AGENT_TOKEN está configurado en el despliegue de Convex, cada ruta del agente a continuación requiere Authorization: Bearer $CANVAS_AGENT_TOKEN. Si el token no está configurado (local/desarrollo), las mismas rutas funcionan sin encabezado — configure el token en producción.

API

Autenticación en cada ruta mutante/lectura del agente:

Authorization: Bearer $CANVAS_AGENT_TOKEN
Content-Type: application/json

Descubrimiento (sin autenticación):

curl -sS "$CANVAS_SITE_URL/agent/v1"

1. Crear

curl -sS -X POST "$CANVAS_SITE_URL/agent/v1/canvases" \
  -H "Authorization: Bearer $CANVAS_AGENT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Mi lienzo",
    "source": "# Hola\n\nEsto es **markdown**."
  }'

La respuesta incluye slug, url, version. Devuelva url al usuario — ese es el lienzo que abrirá en https://canvas.n3wth.com/c/{slug}.

2. Escribir fuente

curl -sS -X PUT "$CANVAS_SITE_URL/agent/v1/canvases/$SLUG/source" \
  -H "Authorization: Bearer $CANVAS_AGENT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"source":"# Actualizado\n\nNuevo contenido aquí."}'

Las pestañas abiertas en https://canvas.n3wth.com/c/$SLUG se vuelven a renderizar sin recargar.

3. Leer fuente actual

curl -sS "$CANVAS_SITE_URL/agent/v1/canvases/$SLUG" \
  -H "Authorization: Bearer $CANVAS_AGENT_TOKEN"

4. Listar

curl -sS "$CANVAS_SITE_URL/agent/v1/canvases" \
  -H "Authorization: Bearer $CANVAS_AGENT_TOKEN"

Devuelve solo metadatos (sin los cuerpos de la fuente).

Flujo de trabajo del agente

  1. Confirme que CANVAS_SITE_URL y CANVAS_AGENT_TOKEN están configurados en su entorno (nunca los confirme).
  2. POST /agent/v1/canvases con title/source opcionales.
  3. Informe al humano/otro agente de la url de la respuesta (https://canvas.n3wth.com/c/{slug}).
  4. Itere con PUT .../source a medida que refine.
  5. GET .../canvases/{slug} si necesita la fuente actual antes de editar.

Errores

EstadoSignificado
401Token bearer faltante o incorrecto (solo cuando el despliegue tiene configurado CANVAS_AGENT_TOKEN)
404Slug desconocido
400Validación (tamaño de fuente, JSON)

Límite estricto de fuente: 512 KiB caracteres.

Fuera de alcance

Ninguna pizarra de dibujo, ningún producto de lienzo de terceros. Esta API es solo crear / escribir fuente / leer / listar.

Instalación portátil

Copie esta carpeta en skills.n3wth.com o en cualquier raíz de skills de agente doméstico como canvas/SKILL.md. Apunte los agentes a ella desde AGENTS.md. Contacto: [email protected]. GitHub: https://github.com/n3wth.

Skills relacionados