Última versión · v1.2.2

La capa de web y documentos
para agentes de IA

Entra cualquier URL, documento, correo, archivo comprimido o código fuente: sale Markdown limpio o JSON estructurado. Un único binario en Rust autoalojado, con CLI, API de Firecrawl y Jina Reader, servidor MCP y paquetes para Python, Node.js, Go, Java, C#, Ruby, PHP y más.

★ 250+ stars en GitHub
2,4 ms
PDF a Markdown, por página
20,49 veces más rápido que pypdf (50,0 ms)
0,24 ms
HTML a Markdown, por página
8,12 veces más rápido que Turndown (1,9 ms)
1,0 ms
Contenido principal, por página
7,26 veces más rápido que crw (7,4 ms)
91,7/s
Office y libros electrónicos
3,40 veces más rápido que xberg (27,0/s)
Rendimiento

Medido, no prometido

El resultado más fuerte de cada área, del informe de benchmarks 1.1 publicado: las mismas cifras que el README del proyecto, con métodos y fuentes en el informe completo.

Latencia por página: más bajo es mejor

Un solo hilo · milisegundos por página
PDF → Markdown2,4 vs 50,0 ms20,49×
PageSiftpypdf
HTML → Markdown0,24 vs 1,9 ms8,12×
PageSift · fidelidad F1 1,000Turndown
Main-content extraction1,0 vs 7,4 ms7.26×
PageSift · p50, 597 páginas de Firecrawlcrw
Búsqueda de fecha de publicación0,31 vs 2,0 ms6,45×
PageSifthtmldate (fast)

Rendimiento: más alto es mejor

Archivos por segundo · un solo trabajador salvo indicación
PDF a Markdown (servidor residente)176,5 vs 100,6 archivos/s1,75×
pdf_oxidePageSift
Office y libros electrónicos91,7 vs 27,0 archivos/s3,40×
xbergPageSift · estructura conservada 0,988

Memoria máxima por trabajador: más bajo es mejor

Megabytes, del mismo informe de benchmarks
Procesamiento de PDF32 vs 3.675 MB113,1× menos
PageSiftDocling (CPU)
Contenido principal HTML20 vs 1.200 MB60,8× menos
PageSiftReadability + Turndown
Rastreo, 200 sitios × 100 páginas218 vs 5.500 MB25,2× menos
PageSiftspider

Benchmarks medidos con PageSift 1.1; xberg 1.3.9 medido el 2026-11-04. Métodos completos: docs/benchmarks.md · Cobertura en rastreo real 0,740 frente a Crawl4AI 0,529 (polite, 40 sitios × 60 páginas).

Arquitectura

Una sola canalización, todas las entradas

La canalización de peticiones de la documentación de arquitectura: los puntos de entrada alimentan un único motor, las guardas de política y de red se ejecutan antes de cualquier obtención, una decisión de renderizado elige el camino más barato que añade contenido y todas las fuentes terminan en las mismas salidas.

Entradas URLs · local files CLI · HTTP API MCP · SDKs · C ABI Engine pagesift-engine Policy robots · rate limits identity leases Fetch HTTP · SSRF guards validated tunnels Plan render only when it pays HTML · arena DOM PDF · own reader Office · e-books · email OCR · scans & formulas Syntax · 373 languages Content & Extract main content · metadata selectors · chunking Outputs Markdown · JSON · links · WARC pagesift-store cache · selector memory · records pagesift-itna · opt-in, off by default barrier recovery · one bounded browser fallback Código propio hasta el formato: un analizador HTML5 sin copias, la capa PDF, lectores de Office, inferencia neuronal y un cliente de Chrome DevTools, sin ningún runtime de Python, JVM o Node detrás.
Entradas URLs · files · CLI · API · MCP · SDKs Engine pagesift-engine Policy robots · rate limits · identity leases Fetch HTTP · SSRF guards · validated tunnels Plan render only when it pays PARSERS HTML · arena DOM PDF · own reader Office · e-books · email OCR · scans & formulas Syntax · 373 languages Content & Extract main content · metadata · selectors · chunking Outputs Markdown · JSON · links · WARC pagesift-store cache · selector memory · records pagesift-itna · opt-in barrier recovery · one bounded browser fallback Código Rust propio hasta la capa de formato — sin ningún runtime de Python, JVM o Node detrás.
Capacidades

Qué puede hacer

Seis verbos cubren toda la superficie de la API: las mismas operaciones en la CLI, las API HTTP y las herramientas MCP.

scrape · Contenido limpio

Detección del contenido principal y Markdown que conserva encabezados, listas, tablas, código y fórmulas. JavaScript solo se renderiza cuando añade contenido.

crawl · Sitios completos

Mapas del sitio, rastreos centrados en una consulta que se detienen cuando las páginas dejan de ayudar, gestión de trampas, robots.txt y límites por host. Salida WARC en cada rastreo.

map · Mapas del sitio

Descubre las URL de un sitio antes de gastar presupuesto en obtenerlas y pasa la lista a crawl, batch o extract.

batch · Muchas URL, un solo trabajo

Extracción por lotes con persistencia de trabajos, webhooks duraderos y aislamiento por propietario. Consulta o cancela trabajos desde la API o MCP.

monitor · Monitorización de cambios

Comprobaciones programadas que separan los cambios reales de fechas, contadores y anuncios, con webhooks cuando algo se mueve de verdad.

agent · Investigaciones

POST /v2/agent responde a una pregunta desde la web con tu propio modelo, y comprueba cada campo de la respuesta contra la página de la que procede.

Documentos y OCR

Lectores propios en Rust para PDF, Office, libros electrónicos, correo, archivos comprimidos y bases de datos, incluidos archivos dañados y fuentes CJK. Las páginas escaneadas pasan por PP-OCRv6 y las fórmulas en bloque por PP-FormulaNet, en CPU o GPU NVIDIA.

Extracción estructurada

JSON mediante selectores CSS que se reubican cuando un sitio cambia, o mediante un esquema que tu modelo escribe una vez y PageSift guarda en caché. Y acciones de navegador (clics, escritura, desplazamiento, sesiones conservadas) cuando una página las necesita.

Seguridad y resultados honestos

Guardas contra redes privadas y DNS rebinding. Una página parcial, un archivo truncado o un escaneo omitido devuelve un código de aviso en lugar de parecer completo.

Entradas

Casi todo puede entrar

Una sola llamada se encarga de todo el montón, sin conectar convertidores por separado.

Páginas web

URL y HTML, renderizado solo cuando añade contenido

PDF

Incluidas las páginas escaneadas, vía OCR

Office

Word, Excel, PowerPoint (actuales y antiguos), además de OpenDocument, RTF y HWP

Libros electrónicos

EPUB, MOBI, FB2

Correo

.eml, .mbox, .msg: los adjuntos se procesan de forma recursiva

Archivos comprimidos

zip, tar, gz, bz2, xz, 7z, y WARC de entrada y salida

Archivos de datos

CSV, SQLite, dBASE, Markdown y formatos de texto

Código fuente

373 lenguajes de código y configuración, divididos por función y clase

Interfaces

Compatible sin cambios, en todas partes

¿Ya tienes código de Firecrawl o Jina Reader? Cambia la URL de la API y sigue. ¿Estás construyendo un agente? El servidor MCP habla las mismas operaciones.

HTTP APIs

Endpoints de Firecrawl v1/v2 y Jina Reader (/r/ y /s/) en el mismo binario autoalojado, además de una API de subida de archivos para documentos locales.

# Firecrawl API
curl localhost:3002/v2/scrape \
  -H 'Authorization: Bearer sk-test' \
  -d '{"url":"https://example.com","formats":["markdown"]}'

# Jina Reader
curl localhost:3002/r/https://example.com
Firecrawl v1/v2Jina Reader API de subidaGateway multiservidor

Servidor MCP: stdio o HTTP

Diez herramientas para agentes: las ocho operaciones cotidianas, más la pareja de agente cuando hay un modelo configurado. Se conecta con un solo comando:

claude mcp add pagesift -- pagesift mcp
pagesift_scrapepagesift_batch_scrape pagesift_crawlpagesift_poll_job pagesift_cancel_jobpagesift_map pagesift_interactpagesift_interact_stop pagesift_agentpagesift_agent_status

Paquetes y enlaces

Paquetes nativos para los tres grandes, un crate de Rust y una C ABI que lleva el motor a una docena de lenguajes más. Integraciones de LangChain y LlamaIndex incluidas.

PythonNode.js / TypeScriptRust GoJavaKotlinC# RubyPHPLuaPerl DartSwiftZig LangChainLlamaIndex

Plataformas y ejecución

Linux x86_64 / aarch64 (glibc ≥ 2.28 y musl), macOS arm64, Windows x86_64 y una imagen Docker. Nada que instalar para HTTP, PDF y Office; un navegador para las páginas JavaScript, una GPU NVIDIA para OCR y tu propio modelo para /v2/agent se localizan en tiempo de ejecución.

18–377 MB por trabajadorun trabajador por núcleo capacidad dimensionada por cgroupmétricas y registro de auditoría
Para agentes y herramientas

Hecho para que los agentes lo encuentren — y lo conduzcan

Si eres un agente de IA o un indexador de herramientas: esta página ofrece resúmenes legibles por máquina en /llms.txt y /llms-full.txt, y el producto en sí es un servidor MCP que tu agente puede llamar hoy mismo.

Servidor MCP: arráncalo, conéctalo, llama a las herramientas

Ejecútalo para un solo agente por stdio, o como un servicio local compartido al que se conectan todos los agentes de la máquina:

pagesift mcp                    # stdio, para un agente
pagesift mcp http --port 3003   # servicio local compartido

# conectar desde Claude Code
claude mcp add pagesift -- pagesift mcp
claude mcp add --scope user --transport http \
  pagesift http://127.0.0.1:3003/mcp
  • pagesift_scrapeuna URL o un archivo → Markdown limpio o JSON estructurado
  • pagesift_crawlrastrea un sitio completo como un trabajo
  • pagesift_mapdescubre las URL de un sitio antes de obtenerlas
  • pagesift_batch_scrapemuchas URL, un solo trabajo persistente
  • pagesift_poll_jobconsulta un trabajo de rastreo o por lotes para ver su estado y resultados
  • pagesift_cancel_jobcancela un trabajo en curso
  • pagesift_interactconduce una sesión de navegador conservada: clic, escritura, desplazamiento
  • pagesift_interact_stoptermina una sesión de navegador

Con un modelo configurado aparecen dos más: pagesift_agent y pagesift_agent_status : investigaciones que responden a una pregunta desde la web y comprueban cada campo contra su página de origen.

Compatibilidad HTTP sin cambios

El código existente de Firecrawl v1/v2 funciona cambiando la URL de la API; las rutas de Jina Reader /r/ y /s/ las sirve el mismo binario. Sin tarifas por página y sin que los datos salgan de tu máquina.

curl localhost:3002/v2/scrape \
  -H 'Authorization: Bearer sk-test' \
  -d '{"url":"https://example.com","formats":["markdown"]}'
curl localhost:3002/r/https://example.com

Documentación legible por máquina

API alojada: en preparación

Una API alojada de PageSift está en preparación y el endpoint api.pagesift.tech está reservado para ella, pero aún no está en línea. Hoy PageSift es autoalojado: las API de Firecrawl y Jina Reader anteriores se ejecutan en tu propia máquina; consulta las opciones de instalación más abajo.

Artículos

Del cuaderno del autor

Artículos de lanzamiento y análisis de ingeniería en dev.to, Zenn y Qiita: el razonamiento de diseño que no cabe en las notas de la versión.

dev.to · Lanzamiento

PageSift 1.2: ITNA, an access-barrier recovery engine — plus the 1.1 roundup

El artículo de la versión 1.2: la recuperación de barreras itna y el repaso de la serie 1.1, que nunca tuvo su propio artículo.

Zenn · En profundidad

壁にぶつかったら、まず分類する —— PageSift 1.2 のアクセス障壁リカバリ「itna」の設計

Cómo clasifica itna una barrera antes de gastar un intento de navegador: el diseño detrás de 1.2.

Zenn · Lanzamiento

PageSift 1.2:アクセス障壁リカバリ「ITNA」と、1.1 のまとめ

El artículo de la versión 1.2 en japonés, con el repaso de la serie 1.1.

Qiita · Lanzamiento

PageSift 1.2:アクセス障壁リカバリ「ITNA」と、1.1 のまとめ

El artículo de la versión 1.2 en japonés, en Qiita.

dev.to · Lanzamiento

PageSift 1.0: the Rust web content engine is feature-complete

El artículo de la versión 1.0: funciones completas (OCR, memoria de selectores, monitorización y la API de agente).

Instalación

En marcha en un minuto

Elige tu superficie: todas ejecutan el mismo motor.

SuperficieInstalaciónPrimera llamada
CLIcargo install pagesift --lockedpagesift scrape https://example.com
Pythonpip install pagesiftpagesift.scrape("https://example.com").markdown
Node.jsnpm install @pagesift/node(await new Scraper().scrape("https://example.com")).markdown
Servidordocker run -p 3002:3002 ghcr.io/yolow92/pagesift:1.2.2curl localhost:3002/r/https://example.com
MCP—claude mcp add pagesift -- pagesift mcp
Nuevo en 1.2 · itna

Recuperación de barreras de acceso, opcional

  • Desactivada por defecto. Se activa con [itna] enabled : no cambia nada hasta que lo pides.
  • Primero se clasifica; luego se acota. Las barreras se clasifican primero; una página bloqueada o con desafío recibe como máximo un fallback acotado al navegador, compartiendo un único presupuesto de red entre redirecciones y subpeticiones.
  • Nunca escala los casos equivocados. Los límites de velocidad (429) y los muros de inicio de sesión nunca activan la ruta del navegador.
  • Sesiones aisladas. Las sesiones se alquilan por propietario, origen, salida y huella; las cookies HTTP solo llegan al navegador mediante una entrega restringida al origen exacto.
  • La persona sigue en el bucle. Los CAPTCHA interactivos se informan como tareas que necesitan una persona: nunca se resuelven.
Registro de cambios

Novedades de la 1.2.2

  • Los trabajos de crawl, batch y extract quedan restringidos a su propietario.
  • Los intentos de página de search y extract ahora cuentan contra la cuota diaria.
  • Las páginas en caché se comprueban contra robots.txt antes de reutilizarse.
  • Las opciones no compatibles de snapshot e imágenes base64 ahora se rechazan en lugar de ignorarse en silencio.

Todas las versiones → · CHANGELOG

Buen encaje — y cuándo elegir otra cosa

Alimentar un LLM, un índice RAG o un agente con páginas y documentos; autoalojar un servicio estilo Firecrawl sin tarifas por página; entradas mixtas en máquinas pequeñas. Elige otra cosa para archivos de imagen independientes, un servicio en la nube gestionado, o si la AGPL no te sirve y una licencia comercial no es una opción.

Licencia y contacto

Código abierto, con licencia comercial

Autoalojado gratuito bajo AGPL, con una vía comercial y una persona a la que escribir para despliegues propietarios.

AGPL-3.0: gratuito

Usa, modifica y autoaloja PageSift bajo la GNU AGPL v3. El código completo está en GitHub y el autoalojamiento no tiene tarifas por página.

Leer la licencia →

Licencia comercial

Para enlaces propietarios o despliegues privados sin las obligaciones de la AGPL, hay una licencia comercial disponible. Escribe directamente al mantenedor:

Contactar para la licencia

Condiciones comerciales →