
casty
Inicio rápido
Sección titulada «Inicio rápido»git clone https://github.com/castyfun/casty.git && cd casty./scripts/0-provision.sh # (0) compute: a server with a 2 TB volume, or --host user@ip for your own./scripts/1-node.sh # (1) a Snapchain read node: installed, synced, with a tunnel to it./scripts/2-client.sh # (2) a client: casty, an app key for your account, your feed from your nodeTres comandos: (0) cómputo, (1) un nodo de lectura, (2) un cliente. ./scripts/deploy.sh ejecuta los tres de una vez, y El camino completo explica cada paso y el protocolo que hay detrás.
casty pone un nodo de lectura de Snapchain, una copia completa de Farcaster, en un host que tú controlas, y te da un cliente que no habla con nada más: un comando de terminal y una página para el navegador y el teléfono. Tu feed, tus menciones y tus hilos se leen de tu nodo; tus casts, respuestas, likes, recasts y follows salen a través de él. No hay ninguna API alojada entre tú y la red, así que no hay clave de API que conseguir ni límite de peticiones que respetar.
Empieza con un solo comando
Sección titulada «Empieza con un solo comando»Un nodo nuevo, tuyo
Sección titulada «Un nodo nuevo, tuyo»Un servidor con un volumen de 2 TB y un firewall en Hetzner o AWS, Snapchain en él, el cliente en tu máquina y la página en el host detrás de HTTPS. El nodo se sincroniza durante unas horas.
git clone https://github.com/castyfun/casty.git && cd casty./scripts/deploy.sh --fid <your fid> --domain node.example.org¿Ya tienes una máquina Linux con 2 TB libres? Añade -- --host user@ip.
casty en un nodo que ya funciona
Sección titulada «casty en un nodo que ya funciona»Sin servidor: casty se conecta a cualquier nodo Snapchain, uno tuyo en otra máquina o uno público, y lo recuerda. Listo en un minuto.
git clone https://github.com/castyfun/casty.git && cd casty./scripts/2-client.sh --node https://snap.farcaster.xyz:3381 --fid <your fid>Luego ./bin/casty web y, en «you», «add a key with your wallet».
Deja que lo haga un agente
Sección titulada «Deja que lo haga un agente»Pega un prompt en Claude Code, Codex, Cursor u otro agente de programación. Lee llms.txt, te pregunta cuál de las dos opciones quieres y nunca te pide la frase semilla.
Set up casty for me: https://github.com/castyfun/casty.Read https://castyfun.github.io/casty/llms-full.txt first....Cómo encaja todo
Sección titulada «Cómo encaja todo»Las lecturas vienen de tu nodo, así que el feed es tan rápido como la máquina en la que funciona. Las escrituras se firman en tu máquina con una clave de aplicación que solo tiene casty, y tu nodo las retransmite a los validadores. La clave se añade con un solo mensaje firmado, aprobado por tu billetera en el navegador: sin transacción, sin gas, sin RPC de Ethereum.
Qué obtienes
Sección titulada «Qué obtienes»- Tres scripts y un comando.
0-provision.shalquila el servidor o comprueba el tuyo,1-node.shinstala Snapchain y espera a que se sincronice,2-client.shinstalacastyy añade una clave.deploy.shlos ejecuta en orden y retoma donde se detuvo una ejecución. - Un cliente de terminal.
casty feed,casty cast,casty like 2: texto plano para ti,--jsonpara scripts, números que pasan de un comando al siguiente. - Una página para el navegador y el teléfono. El feed, los hilos, las menciones, los perfiles y un cuadro de redacción, en claro y en oscuro, con atajos de teclado en un portátil y la opción de instalarla en la pantalla de inicio de un teléfono.
- Tu nodo, desde cualquier lugar.
casty servepone la página en el host del nodo detrás de HTTPS, con un índice del feed que responde al instante y notificaciones push para menciones y respuestas. - Claves a la vista. Cada clave de aplicación de tu cuenta, lo que puede firmar, cuándo caduca, y su revocación desde la terminal o con la propia clave.
- Probado sin un nodo. Un nodo Snapchain simulado comprueba cada firma, así que el cliente, los scripts y la página ejecutan sus comprobaciones sin conexión en CI.
En la terminal
Sección titulada «En la terminal»$ casty feed --limit 31 @casty-test · 0s · via casty Reading the feed from my own node. No API key, no rate limit.
2 @user-2000000002 · 22d · via app-alpha @casty-test thanks for the pointer, it worked. https://example.com/2000000002/3
3 @user-2000000011 · 22d · via app-beta Reading the Snapchain docs on a train. A good way to spend an hour.
$ casty like 2liked 2000000002:0x973d398ad75e1f25fa780085f3c22d30b01d2504En el navegador y en el teléfono
Sección titulada «En el navegador y en el teléfono»



Qué necesitas
Sección titulada «Qué necesitas»- Una cuenta de prueba de Farcaster: un fid con al menos una storage unit, y una billetera que tenga la dirección en la que está registrado, o la frase semilla de esa dirección. casty usa la frase una sola vez, para firmar la solicitud de clave, y nunca la escribe en disco.
- Un host. O bien credenciales de Hetzner Cloud (
HCLOUD_TOKENy la CLIhcloud) o de AWS (la AWS CLI v2 y un perfil o una clave de acceso), o bien acceso SSH a una máquina que ya tienes y que puede ejecutar Docker. Consulta Un nodo en casa para el último caso. - Un par de claves SSH, por defecto
~/.ssh/id_ed25519y~/.ssh/id_ed25519.pub. - En tu máquina:
ssh,curlyjq. Node.js 22.12 o más reciente solo para compilar el cliente tú mismo (2-client.sh --from-source). macOS y Linux funcionan; en Windows, ejecuta los scripts en WSL2.
El host del nodo necesita lo que pide Snapchain: 16 GB de RAM, 4 vCPU, 2 TB de disco libre y una IP pública (getting started). En un host alquilado, el paso 0 elige el servidor y el volumen, y el paso 1 comprueba el host antes de instalar nada.
Cuánto tarda
Sección titulada «Cuánto tarda»El paso 1 es el que más tarda: en su primer arranque el nodo descarga una instantánea de varios
cientos de GB y luego se pone al día con los bloques posteriores a esa instantánea. Cuenta con horas.
1-node.sh espera e imprime cuánto va retrasado el nodo tras cada comprobación. Pulsar Ctrl-C termina
solo la espera; el nodo sigue sincronizándose, y ./scripts/1-node.sh status --wait retoma la
espera.
Cuánto cuesta
Sección titulada «Cuánto cuesta»casty no conoce los precios de tu proveedor. Una ejecución real de 0-provision.sh enumera el
servidor, el volumen y el firewall que está a punto de crear, dice que se facturan hasta que los
borres, y solo sigue adelante cuando escribes de vuelta el nombre del servidor.
./scripts/0-provision.sh --destroy borra los tres.
Pruébalo sin un nodo
Sección titulada «Pruébalo sin un nodo»El repositorio incluye un nodo Snapchain simulado que sirve la misma API HTTP desde fixtures y comprueba las firmas de cada mensaje que se le envía. Con él, el cliente entero funciona sin conexión:
pnpm install --frozen-lockfilepnpm demopnpm demo arranca el simulado en un puerto libre, añade una clave de aplicación con la frase de
prueba BIP-39 test test test test test test test test test test test junk, lee el feed con y sin
los casts de una aplicación, publica un cast, le da like a uno y al final borra su configuración
temporal. Los fids de los fixtures empiezan en 2000000001 y no pertenecen a nadie.
pnpm demo:web hace la misma preparación y luego sirve casty web, la página para el
navegador y el teléfono, en un puerto libre hasta que pulses Ctrl-C.
Un solo comando
Sección titulada «Un solo comando»Usage: deploy.sh [--domain <name> | --tailscale] [--read-only] [--fid <fid>] [--from-source] [--env <file>] [--yes] [--dry-run] [-- <0-provision.sh options>]
Runs, in order: 0-provision.sh (unless --env's file already describes a host; with --domain, again on that host to open 80 and 443), 1-node.sh (the node, the wait for its sync, the tunnel), 2-client.sh (the client, an app key, the feed) and, with a front named, 1-node.sh serve. Every step is safe to run again: the same command picks up where a run stopped.
--domain <name> serve the page on the host as https://<name> (Caddy; opens 80 and 443) --tailscale serve it as the host's name on your tailnet instead --read-only a page that reads only: no app key or passphrase leaves this machine --fid <fid> no seed phrase: 2-client.sh --fid; add the key in ./bin/casty web with your wallet, then run the same command again for the page on the host --from-source build the client here with Node and pnpm instead of downloading it --env <file> node.env to write or read (default: node.env) --yes do not ask before creating anything --dry-run print what provisioning and the node would run; the client is skipped -- <options> passed to 0-provision.sh, e.g. -- --provider aws --region eu-west-1
Exit codes: 0 ok, 2 bad arguments, otherwise the code of the step that stopped.Adónde ir después
Sección titulada «Adónde ir después»Empieza por 0. Preparar un host. Si quieres saber qué configuran los scripts antes de ejecutarlos, lee Nodos de lectura y validadores y Dirección de custodia y claves de aplicación. Seguridad enumera cada secreto involucrado y cómo revocar cada uno.