thing
Publica lo que tu agente acaba de construir en un enlace duradero, con versiones inmutables, un diff entre cualquiera de ellas y comentarios en la propia página.
Documentación
@unravel-tech/thing
CLI para thing: publica, versiona y comparte artefactos (páginas HTML, documentos Markdown, imágenes independientes y PDFs) desde agentes de codificación.
npx -y @unravel-tech/thing push report.html
Ese primer push abre la aprobación en el navegador, espera el inicio de sesión, luego se reanuda e
imprime la URL duradera. Markdown, imágenes y PDFs funcionan de la misma manera. Instálalo
globalmente si lo usas con frecuencia: npm i -g @unravel-tech/thing.
Comandos
| Comando | Qué hace |
|---|---|
thing --version / thing version | Muestra la versión del CLI instalado |
thing update [--force] [--manager npm|bun] | Instala la última versión globalmente; --force se ejecuta incluso cuando el servidor reporta esta versión como actual |
thing login [--server url] [--no-browser] | Inicio de sesión explícito con código de dispositivo; abre la aprobación en el navegador y almacena un token |
thing logout / thing whoami | Limpia / muestra la identidad actual y dónde aterrizan los pushes |
thing default [team] [--clear] | Muestra o establece tu destino de push predeterminado del lado del servidor (se usa cuando no se proporciona --team, desde cualquier máquina) |
thing use <team> [project] | Establece una anulación local de equipo/proyecto activo para esta máquina |
thing push <file.html|.md|.pdf|.png|.jpg|.gif|.webp> [--name x] [--team t] [--project p] [--visibility v] | Autentica si es necesario, luego publica una nueva versión inmutable e imprime la URL servida |
thing list | Lista los artefactos que puedes ver |
thing versions <name> | Historial de versiones de un artefacto |
thing rollback <name> <n> | Apunta la última versión de nuevo a la versión n |
thing open <name> | Abre el artefacto en un navegador |
thing mcp | Ejecuta un servidor de Protocolo de Contexto de Modelo sobre stdio (herramientas: server_info, push_artifact, list_artifacts, whoami) |
Cada comando acepta --json para salida legible por máquina.
Un push --json no autenticado emite el estado de autenticación delimitado por nuevas líneas;
el objeto JSON final es siempre el resultado del push. Usa --no-login para fallar rápidamente
en lugar de iniciar la autenticación interactiva, como en CI.
Valores de visibilidad: private, team, anyone-with-link (imprime una URL de compartir con token), public.
Actualizaciones
Thing admite actualizaciones informativas y obligatorias publicadas por el servidor de Thing. Una
actualización informativa imprime un aviso con límite de frecuencia a stderr pero permite que el
comando continúe. Una actualización obligatoria detiene los comandos normales con código de salida 3
mientras mantiene disponibles --help, --version y update. --json devuelve un
error estructurado CLIENT_UPDATE_REQUIRED.
El CLI verifica como máximo una vez por hora y muestra el mismo aviso como máximo una vez
por día. Establece THING_NO_UPDATE_NOTICES=1 para ocultar los avisos informativos; las actualizaciones
obligatorias no se pueden suprimir. thing update --force reinstala la última
versión incluso cuando la versión actual aún es compatible.
Las sesiones MCP exponen la versión instalada a través del apretón de manos de inicialización
y la herramienta server_info. Las actualizaciones informativas aparecen en las instrucciones de MCP, una notificación
de registro y el primer resultado de herramienta de negocio. Las actualizaciones obligatorias dejan
server_info disponible pero detienen las herramientas de artefactos hasta que Thing se actualice y el
cliente MCP se reinicie.
El endpoint correspondiente del servidor de Thing y el middleware de aplicación se
especifican en THING_SERVER_UPDATE_POLICY.md.
Resolución de contexto
En qué equipo aterriza un push se decide en orden: bandera --team → .thing.json en el
directorio de trabajo → una anulación local thing use → tu predeterminado del lado del servidor
(thing default) → tu espacio personal. El inicio de sesión ya no fija un equipo, así que sin ninguna de
las anulaciones establecidas, el servidor elige tu predeterminado (por ejemplo, la organización Unravel para miembros de Unravel).
MCP
Claude Code, Cursor, Codex y cualquier otra cosa que hable Protocolo de Contexto de Modelo pueden publicar a través de thing. No se necesita inicio de sesión en terminal: crea un token en usething.ai en Configuración, luego Tokens, y pega esto en la configuración MCP de tu cliente.
{
"mcpServers": {
"thing": {
"command": "npx",
"args": ["-y", "@unravel-tech/thing@latest", "mcp"],
"env": { "THING_TOKEN": "paste-your-token-here" }
}
}
}
En una máquina que tiene Bun pero no Node, intercambia npx por bunx:
{
"mcpServers": {
"thing": {
"command": "bunx",
"args": ["-y", "@unravel-tech/thing@latest", "mcp"],
"env": { "THING_TOKEN": "paste-your-token-here" }
}
}
}
El servidor expone cuatro herramientas: server_info para la versión instalada y
el estado de actualización, push_artifact para publicar un archivo o contenido en línea y obtener
un enlace, list_artifacts para ver lo que tienes, y whoami para verificar qué
cuenta y equipo estás usando para publicar.
Si ya ejecutaste thing login, la credencial almacenada se usa y
THING_TOKEN se puede omitir.
Entornos de ejecución
Node >= 18 o Bun, sin dependencias de ejecución. El ejecutable thing se lanza bajo
cualquiera de los dos que esté en tu PATH (Node primero), así que una instalación global funciona en una
máquina que nunca ha instalado Node:
bun i -g @unravel-tech/thing
thing login