Se ejecuta enDesktop
En esta página
Todo el motor, en tu ordenador.
Writ ejecuta workflows de acciones web invocables y monitors enteramente en tu máquina. El motor va incluido como side-car limitado al loopback; nada sale de tu ordenador mientras no enlaces explícitamente una cuenta cloud.
install ▸ plataformas
Instálalo.
Una app por plataforma, cada una con el motor dentro. Elige el formato que espera tu máquina; la página de descarga ofrece el correcto por defecto.
| Plataforma | Instalador | Builds |
|---|---|---|
| macOS | .dmg · .app | arm64 · x86_64 — macOS 11.0 o posterior |
| Windows | .msi · instalador NSIS | x86_64 — instalado para toda la máquina |
| Linux | .deb · AppImage | x86_64 · aarch64 |
Las descargas viven en la página Writ Desktop — esta página nunca enlaza un build directamente, así que un enlace de doc caducado no puede darte el equivocado.
grabar ▸ editar ▸ ejecutar
Graba una vez, repite siempre.
Tú manejas un navegador real y la app va escribiendo el workflow sobre la marcha. Nada se adivina después desde una captura: cada acción que haces queda como un paso que puedes abrir y editar.
| Cada acción es un paso editable | Clics, escritura, navegación, esperas y extracciones se capturan como una lista ordenada que puedes reordenar, retemporizar o borrar. |
| El asistente de IA vive dentro del grabador | Puede leer la página en vivo y escribir el extractor por ti, así señalas lo que quieres en vez de escribir un selector a mano. |
| El modo Assist pregunta antes | Antes de cualquier cosa que cambie la página — un clic, un envío, un paso de compra — el asistente se detiene y te espera. |
| Runs, programaciones y monitors siguen siendo locales | El mismo workflow corre según horario o como monitor sin una ida y vuelta al servidor de nadie. |
Un run local no lleva ningún cargo de cómputo en ningún plan, sea como sea que lo arranques — desde la app, desde una programación, desde un SDK o desde un cliente MCP.
mcp ▸ servidor local
Tus workflows como herramientas, en local.
El desktop registra un servidor MCP llamado writ. El nombre es deliberado: un coordinador autoalojado se registra como writ-selfhost y Writ Cloud como writ-cloud, de modo que los tres conviven en la misma configuración de cliente sin chocar.
Instalación en un clic
La página Connect de la app escribe el servidor en el archivo de configuración del propio cliente para claude_code, claude_desktop, codex, cursor, windsurf y vscode. También puedes pegar la configuración tú mismo:
connect.sh
# The app's Connect page prints this with the absolute path to the
# bundled engine already filled in.
claude mcp add writ -- writ-agentd mcp claude_desktop_config.json
{
"mcpServers": {
"writ": {
"command": "writ-agentd",
"args": ["mcp"]
}
}
} | Transporte | Qué necesita el cliente |
|---|---|
| stdio (recomendado) | El cliente lanza el motor incluido como proceso hijo. No hay ninguna credencial en la configuración del cliente. |
| HTTP directo | Un cliente que habla HTTP acuña en su lugar una clave wlk_ acotada al run y la envía como Bearer. |
Tres servidores, tres nombres
El que conectes decide dónde se ejecuta el trabajo:
| Dónde se ejecuta | Nombre del servidor MCP |
|---|---|
| Writ Desktop (esta página) | writ |
| Coordinador autoalojado | writ-selfhost |
| Writ Cloud | writ-cloud |
El servidor local expone 31 herramientas. Dos de ellas — writ_search_api y writ_install_api, que llegan al marketplace — solo aparecen cuando enlazas una cuenta cloud. Encima de esas obtienes una herramienta run_<name> por cada workflow que decidas exponer.
bloqueos ▸ dos cosas distintas
El bloqueo de app no es la 2FA de persona.
Se confunden constantemente, así que sepáralos: el bloqueo de app protege la caja fuerte de Writ en esta máquina. La 2FA de persona es el segundo factor de los sitios que automatizas. Activar uno no toca el otro.
Bloqueo de app — tu caja fuerte en esta máquina
Una frase de paso sobre los secretos guardados, con un tiempo de inactividad para que alejarte vuelva a bloquear.
| Bloquear | Sella la caja fuerte de inmediato. |
| Desbloquear | Tu frase de paso, escrita en la app. |
| Tiempo de inactividad | Vuelve a bloquear tras un periodo sin actividad, en segundos. |
| Códigos de recuperación | Se emiten con la caja abierta — una caja bloqueada no entrega ninguno. |
Mientras la caja fuerte está bloqueada, todo lo que necesite un secreto guardado falla con 423 en vez de ejecutarse sin él. Desbloquea y vuelve a ejecutar.
2FA de persona — los sitios que automatizas
Una persona guarda un login para un sitio. Cuando ese sitio pide un segundo factor, la persona lo responde:
| Método | Qué pasa en el paso |
|---|---|
none | El sitio no pide segundo factor. |
totp | El código se acuña en el dispositivo en el momento en que corre el paso, y nunca se registra. |
email_otp | El código recibido por email se recoge y se envía por ti. |
sms | El código recibido por SMS se recoge y se envía por ti. |
Puedes validar un secreto TOTP sin guardarlo — pégalo, confirma que el código coincide y sigue. Importar desde una app de autenticación funciona igual. Los secretos que escribes nunca los devuelve la API.
actualizaciones ▸ tres canales
Actualizaciones predecibles.
Cada instalación está en exactamente un canal, y solo aplica actualizaciones construidas para ese mismo canal. El canal nunca se ensancha solo: una instalación stable no empieza a tirar de beta por su cuenta.
| Canal | Para quién |
|---|---|
stable | El predeterminado. Solo versiones publicadas. |
beta | Opcional. Builds de preversión, por delante de stable. |
managed | Fijado por política de empresa, apuntando a un feed de actualización interno. |
Qué se comprueba antes de aplicar una actualización
Una actualización se verifica primero y se aplica después. El despliegue es escalonado: una versión llega a las máquinas por oleadas, no de golpe.
| Firma | La versión debe ir firmada por una clave que este build acepte. |
| Canal | El canal de la versión debe ser el de esta instalación. |
| Caducidad | Una versión caducada o reenviada se rechaza. |
| Protección anti-retroceso | Una versión más antigua no puede pisar a una más nueva. |
| Versión mínima soportada | Una versión puede exigir un suelo antes de instalarse. |
| Suma de verificación | Los bytes descargados deben coincidir con el resumen con el que se aprobó la versión. |
Esas mismas comprobaciones corren sin red alguna, así que una actualización aplicada desde un archivo en una máquina aislada se verifica con el mismo rigor. Una política gestionada puede fijar el canal o el feed de actualización, y el usuario no puede anularla.
referencia ▸ siguiente
Sigue
Graba y ejecuta tu primer workflow.
→ Dónde se ejecutaDesktop, tus propias máquinas o un servidor tuyo.
→ Personas y secretosLogins, TOTP y sesiones calientes.
→ MCPLos mismos workflows como herramientas para cualquier cliente MCP.
→ SDKsTypeScript, Python, Go y Rust contra el motor local.
→ Canales de notificaciónAdónde va una alerta de un run local.
→faq
Preguntas de desktop, respondidas.
¿Necesito una cuenta para usar Writ Desktop?
¿Cuestan algo los runs locales?
¿Qué diferencia hay entre el bloqueo de app y la 2FA de persona?
¿Qué nombre de servidor MCP usa el desktop?
¿Una instalación stable llegará a tirar de un build beta?
¿Puede la app actualizarse sin acceso a la red?
fin ▸ instalar
Pon el motor en tu propia máquina.
Graba un workflow en un navegador real y ejecútalo tantas veces como quieras, gratis.