# Instrucciones para el agente: Tailcat: conecta una máquina remota con servicios locales

Pega este texto a tu agente (Claude Code, Codex, OpenCode, Hermes o el que uses) y dile «ayúdame a montarlo». Son los pasos para ponerlo en marcha; el porqué de cada pieza está en la guía completa.

- Dificultad: intermedio
- Proyecto: https://github.com/tailscale/tailcat (licencia BSD-3-Clause)
- Guía completa: https://lab.wisd.ai/hub/tailcat

---

## Para el agente: cómo acompañar al usuario

1. Pregunta primero para qué lo quiere. Si su objetivo no necesita algún paso, sáltalo.
2. Antes de instalar, comprueba lo que ya tiene (versiones, claves, sistema operativo).
3. Avanza un paso cada vez: explica en una frase qué vas a hacer y deja que el usuario lo ejecute o lo apruebe.
4. Tras cada paso, comprueba que funcionó antes de seguir. Si falla, para y explica el error.
5. No inventes comandos ni opciones: si la documentación del proyecto contradice estos pasos, manda la documentación.
6. Al terminar, haz una prueba real con el objetivo del usuario y dile dónde profundizar.

---

## Pasos de configuración

### Paso 1: instala en ambos equipos

En macOS con Homebrew, INSTALL.md documenta:

```sh
brew install tailcat
```

Para Linux o Windows usa sus paquetes oficiales o el método de tu sistema en INSTALL.md.

### Paso 2: publica solo el servicio necesario

Con tu aplicación de prueba escuchando en el puerto 8080, el ejemplo del README usa:

```sh
tailcat serve 8080,3306
```

Elige únicamente los puertos que necesite tu tarea; el ejemplo publica dos. Conserva la dirección impresa de forma privada. No uses el modo de todos los puertos para esta prueba.

### Paso 3: conecta desde el equipo remoto

El ejemplo oficial de reenvío es:

```sh
tailcat forward tcXXXXXXXXX 18080:8080 3306
```

Sustituye la dirección y deja solo las correspondencias de puertos que hayas publicado. Para el servicio 8080 basta la correspondencia 18080:8080 del ejemplo. El reenvío escucha en loopback por defecto.

### Paso 4: termina el acceso

Detén el reenvío y el servidor con Ctrl-C al acabar la tarea.

## Comprobación

En el cliente, abre el puerto local reenviado y comprueba la respuesta de tu aplicación. Después de detener ambos procesos, confirma que el acceso ya no funciona. No uses una transferencia de datos sensibles como primera prueba.

## Si algo falla

Si no conecta, comprueba primero el servicio local, la dirección compartida y los puertos. Si necesitas SSH, sigue su sección de autenticación por clave; no cambies a una shell sin autenticación para resolver un fallo de red.

Fuente: [documentación del proyecto](https://github.com/tailscale/tailcat/blob/52fbad323e9d352f1febb623e0975368e9a8cbdd/README.md).
