Agente de automatización web 24/7 a $0/mes, desplegado como binario Go estático en un VPS free tier. Orquesta un navegador remoto (Browser-Use Cloud BaaS) y un LLM por API, sin Python, sin Playwright, sin Chromium local.
Stack congelado (ver
RESTRICCIONES.md/ESPECIFICACIONES.mddel proyecto hermanoBrowser-Use): PicoClaw (Go) = Agent Runtime · go-harnessless (Go) = puente CDPwssremoto · Browser-Use Cloud BaaS = navegadorcdpUrl· LLM pluggable: cualquier proveedor compatible con la API de OpenAI (OpenAI, Gemini, Groq, Together, etc.).
- $0/mes asumido. No se documentan tarifas.
proxyCountryCode: null(proxyless) salvo geo-targeting. - Sin Python en producción. Solo binario Go estático +
curl+jq+go-harnessless. - Reciclado obligatorio cada 15 min. La sesión Free expira a los 15 min; se recicla reusando
profileId(no se pierde estado). - LLM pluggable (proveedor-agnóstico). Cliente OpenAI-compatible: se inyecta
LLM_BASE_URL+LLM_API_KEY+LLM_MODELpor.env; no está hardcodeado a ningún proveedor.
PicoClaw (VPS, binario Go estático)
├─ arranca go-harnessless → /tmp/harnessless.sock
├─ REST BaaS: POST/DELETE /api/vX/browsers
│ HARNESSLESS_CDP_URL=wss://… ──wss──▶ Browser-Use Cloud (navegador remoto)
└── REST ──▶ LLM por API (compatible OpenAI: OpenAI, Gemini, Groq, Together, etc.)
- VPS free tier (≈1 GB RAM). No requiere GPU ni Chromium local.
curlyjqinstalados (el scriptinstall.shlos verifica).- Acceso a
https://api.browser-use.comy al endpoint del LLM elegido. - API key de Browser-Use Cloud (
https://cloud.browser-use.com). - (Opcional) root para instalar binarios en
/usr/local/biny la unit systemd. Sin root, los binarios quedan enbin/local.
-
Clonar el repo
git clone <este-repo> agent-browser-use-cloud cd agent-browser-use-cloud
-
Instalar dependencias y construir binarios
sudo ./scripts/install.sh
install.shes idempotente: instala Go (tarball oficial, noapt), clona PicoClaw (commit fijadobbf6893ca7afad27f1d00a0f5a45982a549c6ed6enmain, es<v1.0; sobreescribible con la envPIN_COMMIT_PICOCLAW) y go-harnessless, aplicascripts/patch-harnessless.sh(adaptaciónHARNESSLESS_CDP_URL), hace build estático (CGO_ENABLED=0), instalapicoclaw/go-harnesslessa/usr/local/bin(obin/local sin root) y recarga systemd. No instala Python ni nada de pip. -
Configurar entorno
cp .env.example .env nano .env # rellenar BROWSER_USE_API_KEY, PROFILE_ID, LLM_*Ver
.env.examplepara el significado de cada variable. -
Habilitar y arrancar el servicio
sudo systemctl enable --now agent-browser-use-cloud sudo systemctl status agent-browser-use-cloudLa unit usa
EnvironmentFile=/opt/agent-browser-use-cloud/.env(copiado porinstall.sh). -
Smoke test
./scripts/smoke-test.sh
Valida
POST /api/v4/browsers(fallback/api/v2/browsers), extraecdpUrl, confirma 200, y opcionalmente arranca go-harnessless para verificar que aparece/tmp/harnessless.sock.
El agente corre 24/7 pero la sesión Free vive ≤15 min. Un watchdog interno (ver config/agent.example.yaml) anticipa el reciclado: DELETE + POST reusando el mismo profileId → nuevo cdpUrl → re-set HARNESSLESS_CDP_URL → reconectar el puente. El estado del perfil (cookies, storage, logins) sobrevive.
PicoClaw usa openai-go, así que el cliente decide es proveedor-agnóstico: apuntas a cualquier endpoint que hable la API de OpenAI. No se envía tráfico de decisión hasta fijar las tres variables en .env:
LLM_BASE_URL= # vacío = OpenAI por defecto. ej. Gemini https://generativelanguage.googleapis.com/v1beta/openai/ | Groq https://api.groq.com/openai/v1 | Together https://api.together.xyz/v1
LLM_API_KEY= # requerido
LLM_MODEL= # ej. gemini-3-flash
LLM_MAX_IMAGES=5 # máximo imágenes por request multimodal (0 = sin imagen)Recomendado: free tier + multimodal (texto+imagen, el flujo depende de entrada visual). Nunca modelo Pro/de pago. No enviar secretos ni PII en prompts. Candidatos válidos (libres y multimodal): Gemini gemini-3-flash, Groq vision, Together, u OpenAI según tu preferencia — ninguno hardcodeado. El config/agent.example.yaml expone lo mismo bajo llm:.
Tras navegación real, revisar billing en cloud.browser-use.com y vigilar créditos/minutos. proxyCountryCode: null mantiene egress $0.
.
├── README.md
├── .gitignore
├── .env.example
├── Makefile
├── config/agent.example.yaml
├── systemd/agent-browser-use-cloud.service
└── scripts/
├── install.sh
├── patch-harnessless.sh
├── smoke-test.sh
├── start.sh
└── stop.sh
make install · make build · make smoke-test · make start · make stop · make clean