Tap
La IA forja automatización del navegador como programas deterministas .tap.js. Más de 140 habilidades comunitarias, 3 entornos de ejecución. Los programas se ejecutan para siempre a $0.
Documentación
Taprun
La capa de acción que tu agente maneja en tu propio navegador con sesión iniciada — para el último 20% lleno de excepciones y crítico para el cumplimiento normativo que las APIs limpias no pueden alcanzar. Compilado una vez, reproducido para siempre con cero tokens de LLM.
Página principal | Blog | Afirmaciones verificadas | 📬 Alertas de desviación | 中文
La capa de acción de bucle cerrado de tu agente para el navegador — el último 20% detrás de inicios de sesión, lleno de excepciones y crítico para el cumplimiento normativo que las APIs limpias y los agentes en la nube no pueden alcanzar. Manejado en tu propio Chrome, capturado una vez, reproducido para siempre con cero tokens de LLM.
A medida que las APIs se cercan y se miden, el trabajo que sobrevive vive detrás de inicios de sesión, muros de OTP y barreras de gestos humanos — las excepciones, aprobaciones y pasos de cumplimiento que un agente en la nube arquitectónicamente no puede tocar. Taprun es la capa de acción para exactamente eso: tu agente maneja tu Chrome real, ya con sesión iniciada, cierra el bucle (actuar → verificar el efecto → re-ejecutar ante desviaciones) y te entrega una reproducción determinista que posees.
Cualquier otro agente de navegador re-ejecuta un LLM en vivo — y vuelve a quemar tokens — en cada ejecución. El agente de IA de Taprun inspecciona la página una vez y emite un programa determinista .flow.json; cada reproducción posterior es puro envío de datos — mismo resultado en cada llamada, $0 en tokens, sin agente en el bucle. Se ejecuta en tu Chrome real, por lo que las cookies y las sesiones de inicio de sesión permanecen en tu máquina por arquitectura. tap verify detecta fallos antes de que tus datos se vuelvan obsoletos.
Funciona con Claude Code, CodeBuddy, Cursor, Cline, Windsurf y cualquier host MCP — instala directamente desde la ventana de chat. Forja un tap desde cualquier URL bajo demanda — sin necesidad de catálogo.
Capture: AI inspects the site → compiles a .flow.json program (one-time cost)
Run: The program executes instantly, same result every time ($0, zero AI)
Verify: tap verify checks the snapshot equivalence predicate (catches drift)
Repair: re-run capture against the same site/name; the next (only when needed)
verify rebaselines after human review
Cómo se compara Taprun
| Taprun | Agentes de navegador con IA | Scrapers tradicionales | |
|---|---|---|---|
| Costo de IA por ejecución | $0 (compilar una vez) | Tokens en cada ejecución | Gratis |
| Precisión | Determinista | Varía en cada ejecución | Determinista |
| Detección de fallos silenciosos | Predicado CEL snapshot_equivalent por tap + veredicto de 4 brazos | Ninguna | Ninguna |
| Diagnóstico de fallos | tap verify — diff exacto de lo que cambió | Ninguno | Comprobaciones manuales puntuales |
| Riesgo de detección | Bajo (sesiones de navegador reales) | Alto | Alto |
| Tiempos de ejecución | 2 (extensión de Chrome + Playwright) | 1 | 1 |
| Código inspeccionable | .flow.json — JSON puro, vocabulario cerrado de 18 operaciones, git diff | Caja negra / efímero | Scripts frágiles |
| MCP nativo | Sí (solo capa de autoría — la ejecución es de cero tokens) | No | No |
Comenzar
1. Conecta a tu agente — desde la ventana de chat
Claude Code / CodeBuddy — pega dos líneas en el chat, nada más:
/plugin marketplace add LeonTing1010/taprun
/plugin install tap@taprun
Eso instala el servidor MCP de Taprun más las habilidades que enseñan a tu agente cuándo usarlo y el hook que enruta las búsquedas cercadas a Taprun — sin terminal, sin archivo de configuración. (CodeBuddy conecta los servidores MCP de plugins solo al inicio, así que reinícialo completamente una vez después de instalar; Claude Code los recoge con /reload-plugins.)
Cualquier otro host MCP (Cursor · VS Code · Claude Desktop) — un comando escribe la configuración por ti:
npx -y @taprun/cli embed cursor # or: vscode | claude-desktop | claude-code | codebuddy | qwen
El binario se auto-copia a ~/.tap/bin y se escribe la configuración MCP de tu agente. Vuelve a verificar en cualquier momento con tap embed --verify.
¿Usas un agente de codificación que no está en esa lista? Los objetivos de
tap embedson datos, no código: agrega una fila a~/.tap/embed-targets.jsony el nuevo agente funciona de inmediato — sin lanzamiento del motor. Cada fila nombra uno de cuatro tipos de instalación (cc-pluginpara hosts con plugin de Claude-Code,cli-mcp-addpara CLIs con un<cli> mcp add,ide-deeplink,desktop-bundle), p. ej.[{"id":"kode","kind":"cc-plugin","display":"Kode CLI","tier":1,"cli":"kode"}]. Misma doctrina que el resto de Taprun — el motor permanece cerrado y mecánico; lo extiendes en datos locales.
Ahora elige tu tiempo de ejecución — la extensión solo se necesita para reutilizar tu Chrome vivo con sesión iniciada:
- Páginas públicas / APIs abiertas / CI — nada más que instalar. El servidor MCP se ejecuta sobre
npx; ya terminaste. Agrega--no-extensionpara un tiempo de ejecución de Playwright completamente dentro del chat con su propio perfil aislado (sin gesto de navegador, sin clic). - Sitios con inicio de sesión (tu banco / panel interno / Xiaohongshu / Zhihu) — solo dile a tu agente "configura tap para sitios con inicio de sesión" directamente en el chat. La habilidad tap-setup maneja todo el puente desde el chat: materializa el binario estable (del motor
npxya descargado — sin segunda descarga) y registra el manifiesto de mensajería nativa, luego abre la página de la extensión. El único clic en Agregar a Chrome es el único paso que no es una acción de chat — es la puerta de confianza que permite a Taprun reutilizar tu inicio de sesión existente, y la llamada en curso se reanuda automáticamente una vez que aterriza. - Claude Desktop: descarga
tap.mcpby haz doble clic.
Otras rutas de instalación (brew · curl · MCP JSON manual · binarios sin procesar)
brew install LeonTing1010/tap/taprun # Homebrew (macOS / Linux)
curl -fsSL https://taprun.dev/install.sh | sh # permanent binary
npx -y @taprun/cli --version # zero-install (any Node host)
Configuración MCP manual, si prefieres escribirla tú mismo:
{ "mcpServers": { "tap": { "command": "npx", "args": ["-y", "@taprun/cli", "mcp", "stdio"] } } }
| Plataforma | Descarga |
|---|---|
| macOS (Apple Silicon) | tap-macos-arm64 |
| macOS (Intel) | tap-macos-x64 |
| Linux | tap-linux-x64 |
| Windows | tap-windows-x64.exe |
2. Demuestra que funciona (~2 minutos, sin inicio de sesión)
Ejecuta la primera entrada del registro de afirmaciones — la verificación exacta que su CI nocturno ejecuta:
mkdir -p ~/.tap/flows/github
curl -fsSL https://raw.githubusercontent.com/LeonTing1010/tap-skills/main/claims/2026-07-11-github-trending-has-no-api/plan.json \
-o ~/.tap/flows/github/trending-no-api.flow.json
tap github/trending-no-api
"state": "committed" más los repositorios de tendencias de hoy a cero tokens = tu instalación funciona y la afirmación se cumple.
3. Forja el tuyo propio
tap capture https://news.ycombinator.com hn/front --intent "front-page stories with points"
tap hn/front # replay forever, $0
O simplemente pregúntale a tu agente de IA:
You: What's trending on GitHub today?
Agent: Here are today's top repos — React compiler hit 734 stars...
You: Capture a tap for Douban top 250 movies
Agent: Done. Run `tap douban/top250` anytime — $0 per run.
Opcional: Maneja el binario desde tu propio código (TypeScript / Python)
Omite MCP — llama al binario tap desde tu propio bucle:
tap capture <url> hackernews/top --intent "front-page top stories"
tap hackernews/top --args '{}' # JSON-on-stdout, exit 0 on success
tap verify hackernews/top # 3-arm verdict (live / drifted / unreachable)
El CLI emite sobres ToolResult<T> como JSON — la misma forma que devuelve la superficie MCP — por lo que cualquier lenguaje con una biblioteca de subprocesos puede manejarlo. Consulta tap --help para la lista completa de verbos.
¿Tienes un script existente de Playwright / Puppeteer / Stagehand?
No lo reescribas. Convierte con uno de los adaptadores de código abierto — agrega tu fuente existente, obtén un plan .flow.json compatible con Taprun:
# Existing Playwright script (47M weekly npm downloads — most likely the one you have)
npm install @taprun/from-playwright @taprun/spec
node -e "import('@taprun/from-playwright').then(m => console.log(m.playwrightToTap(require('fs').readFileSync('tests/login.spec.ts','utf8'), {site:'example', name:'login'})))"
# Or scaffold a new starter from scratch
npx create-tap-script github/trending https://github.com/trending
| Adaptador | Formato de origen | Cobertura |
|---|---|---|
@taprun/from-playwright | Pruebas de Playwright .ts/.js | 8 APIs de page.* (goto/click/fill/type/press/waitForSelector/waitForTimeout/screenshot) |
@taprun/from-puppeteer | Scripts de Puppeteer .ts/.js | 7 APIs de page.* + page.keyboard.press |
@taprun/from-stagehand | Scripts de Stagehand .ts/.js | Híbrido: page.* determinista mapeado a operaciones de plan; NL act/extract/observe marcado para veredictos de verificación honestos |
create-tap-script | (ninguno — generador de andamios) | Genera un sobre .flow.json inicial desde <site>/<name> <url> |
El formato en sí está documentado en @taprun/spec — el paquete de superficie de protocolo público: tipos de TypeScript para el Plan v2 (unión cerrada de 18 operaciones + unión discriminada de Plan de lectura/escritura) + JSON Schema 2020-12 con $id resoluble en taprun.dev/spec/plan-v1/schema.json, protegido bidireccionalmente contra desviaciones con los tipos de TS. Las herramientas de terceros (autocompletado de IDE $schema, validadores equivalentes a ajv en Python/Ruby/Go, capas de gobernanza, tiempos de ejecución alternativos, hosts MCP con alcance de permisos consciente del plan) se construyen contra este paquete sin depender del motor propietario de Taprun. Referencia del Plan-v1: taprun.dev/spec/plan-v1. Fuente para los cinco paquetes: packages/ (consulta packages/README.md para la descripción general del espacio de trabajo).
¿Qué puedes hacer?
Leer — Extrae datos de cualquier sitio web
tap reddit/hot # Reddit front page
tap bilibili/trending # Bilibili trending
tap arxiv/search --keyword "LLM" # arXiv papers
Escribir — Opera cualquier sitio web
tap xiaohongshu/publish --title "My Note" --images photo.jpg
tap zhihu/publish --title "My Article" --content "..."
Observar — Monitorea cambios
tap verify github/trending # spot drift; schedule via cron / launchd
Componer — Encadena como tuberías de Unix
tap github/trending | tap filter --field stars --gt 500 | tap table
Forjar — Crea nuevas automatizaciones con IA
tap capture https://news.ycombinator.com hackernews/hot --intent "top stories" # API detected — compiled without AI
tap capture https://example.com mysite/home --intent "..." # BYOK Claude / GPT for the long tail
Trae tu propio modelo — funciona con Claude, OpenAI, DeepSeek o cualquier punto final compatible con OpenAI, incluidos Ollama / LM Studio locales para forja completamente sin conexión:
tap config set ai.baseUrl http://localhost:11434/v1
tap config set ai.key ollama
tap config set ai.model llama3.1
tap capture https://arxiv.org/list/cs.AI/recent arxiv/recent --intent "recent papers" # 0 bytes leave your machine
Cómo funciona
┌─ Chrome extension (your real browser sessions)
You → AI → Taprun ──────┤
capture └─ Playwright (headless, server, CI/CD)
- Tú describes lo que quieres (URL × intención en lenguaje natural)
- La IA lo compila en un programa
.flow.json— JSON puro, vocabulario cerrado de 18 operaciones, controlado por versiones - Taprun ejecuta el programa en cualquiera de los dos tiempos de ejecución — para siempre, a $0
Cada compilación exitosa hace que la siguiente sea más rápida. ¿Necesitas un tap para un sitio nuevo? Tu agente forja uno bajo demanda con capture — sin necesidad de catálogo.
Afirmaciones verificadas
tap-skills ya no es un catálogo de habilidades — es un registro de afirmaciones: afirmaciones fechadas y falsables sobre la web en vivo, cada una con su propio plan determinista, re-verificadas nocturnamente por CI a cero tokens de LLM. Una afirmación que se desvía cambia a 🟡 públicamente, esa misma noche.
Verifica la primera afirmación tú mismo (~2 minutos, sin inicio de sesión, sin navegador):
mkdir -p ~/.tap/flows/github
curl -fsSL https://raw.githubusercontent.com/LeonTing1010/tap-skills/main/claims/2026-07-11-github-trending-has-no-api/plan.json \
-o ~/.tap/flows/github/trending-no-api.flow.json
npx -y @taprun/cli github/trending-no-api
Obtienes la verificación exacta que obtiene el CI nocturno — reproducción determinista, mismo resultado. El catálogo v1 de 140 habilidades se conserva intacto en la rama v1-archive; los catálogos pre-construidos solo se deterioran, por lo que los planes se forjan bajo demanda con capture en su lugar.
tap verify <site>/<name> # Snapshot equivalence — catches silent failures before your data goes stale
tap list # See everything available
tap show <site>/<name> # Print the saved tap's plan as JSON
Local-primero por arquitectura
La reproducción de cero tokens es el titular; local-primero es la garantía debajo. Taprun se ejecuta en tu navegador — la extensión de Chrome reutiliza tus sesiones de inicio de sesión en vivo, por lo que las cookies, los tokens de autenticación y las credenciales nunca salen de tu máquina. Una elección estructural, no una afirmación de marketing:
| Preocupación | SDKs de navegador en la nube | Taprun (local-primero) |
|---|---|---|
| ¿Dónde viven las cookies con inicio de sesión? | En los servidores del proveedor de la nube | Solo en tu navegador local |
| ¿Qué ve la IA? | La sesión completa + tus datos | Solo el DOM de la página durante el tiempo de forja |
Cumplimiento con noindex / robots.txt / TOS | El proveedor firma el ToS por ti | Tu cuenta, tus términos |
| Sitios internos / intranet | Necesitan túnel VPN | Solo abre la página |
| Riesgo de desmantelamiento | El proveedor cae → tus scrapers se detienen | El código local sigue ejecutándose |
| Capa | Protección |
|---|---|
| Sandbox | Los programas se ejecutan con cero permisos — sin acceso a archivos, red o sistema |
| Análisis estático | El CI bloquea patrones peligrosos antes de que lleguen a los usuarios |
| Solo local | Tus datos, sesiones y claves de API nunca salen de tu máquina — arquitectónicamente |
Consulta SECURITY.md para el modelo de amenazas completo.
Contribuir
La forma más fácil de contribuir: forja un nuevo tap. Un archivo .flow.json es todo lo que se necesita.
Consulta CONTRIBUTING.md para más detalles.
Hoja de ruta
- Catálogo de habilidades comunitarias — retirado en 2026-07 en favor del registro de reclamaciones (catálogo v1 archivado)
- 2 entornos de ejecución — extensión de Chrome + Playwright (headless / CI)
- Tuberías Unix —
tap A | tap B - Modo de vigilancia — monitorear cambios a lo largo del tiempo
- Verificar —
tap verifyverificación de equivalencia de instantáneas con un veredicto de deriva de 4 brazos (equivalente / desviado / primera_instantánea / inalcanzable) - Servidor MCP de un solo comando —
tap mcp stdio(otap mcp http) para cualquier host MCP - Entorno de ejecución Android
- Entorno de ejecución iOS
- Control de concurrencia — coordinación determinista para que M agentes operen cuentas compartidas en paralelo
Soporte
- Debates de GitHub — preguntas y respuestas, ideas, mostrar y contar
- support@taprun.dev — licencias, comentarios privados, consultoría
- Problemas — informes de errores
Privacidad
Taprun es local-primero por arquitectura. Impulsa tu propio navegador en tu propia máquina — las credenciales, cookies y datos de página nunca salen de ella. El motor no envía telemetría y no realiza llamadas de red salientes excepto las que tus propias taps guardadas dirigen explícitamente (op:fetch). Las taps guardadas, secretos y trazas viven bajo ~/.tap/ solo en tu máquina.
Política completa: taprun.dev/privacy.
Licencia
Extensión de Chrome y documentación: MIT. Registro de reclamaciones: MIT.