El código, las cadenas de texto entre comillas, las URLs y las variables de plantilla nunca se tocan — por construcción, no por suerte. Cada compresión viene con un checklist que muestra exactamente qué instrucciones sobrevivieron. Funciona con ChatGPT, Claude, Gemini y cualquier LLM.
Tres modos de compresión según lo que necesites
Compresión basada en reglas. Elimina muletillas, frases redundantes y patrones verbosos al instante — sin necesidad de clave de API.
Tu modelo reescribe el prompt, un segundo modelo audita el resultado contra cada restricción, y lo que se pierde se repara automáticamente. Usa tu propia clave.
Un modelo pequeño (TinyBERT, LLMLingua-2) comprime enteramente en tu navegador — sin clave de API, nada sale de tu equipo. Su salida siempre pasa por las mismas regiones protegidas y el mismo libro de restricciones — mira los números reales para entender por qué eso importa.
Ve el conteo exacto de tokens antes y después, y lo que cuesta cada llamada — incluida la propia llamada de compresión, con su precio mostrado antes de ejecutarla.
Tus prompts nunca tocan nuestros servidores — porque no existen. Las claves de API se usan solo en tu sesión de navegador actual y nunca se nos envían.
Ningún porcentaje inventado. Generado por npm run bench sobre 40 prompts
reales en bench/corpus/, antes de cada release.
Generado por npm run bench el 2026-09-05. Tokens contados con el tokenizador real o200k (js-tiktoken) — nunca estimados. El libro de restricciones se aplica en todos los niveles aquí (el valor por defecto del producto solo lo aplica en Aggressive), así que los cambios bloqueados son visibles en los tres.
bench/corpus/phase0 + bench/corpus/phase2 — fixtures de regresión escritos para ser ya cuidadosos. Una reducción casi nula aquí es el resultado esperado: no se inventa nada que recortar.
| Nivel | Reducción media de tokens | Reducción agregada de tokens | Restricciones críticas preservadas | Cambios bloqueados por el libro |
|---|---|---|---|---|
| Light | 0.0% | 0.0% (4,523 → 4,523) | 100.0% (434/434) | 0 |
| Balanced | 1.4% | 0.7% (4,523 → 4,491) | 100.0% (434/434) | 0 |
| Aggressive | 1.6% | 0.9% (4,523 → 4,484) | 100.0% (434/434) | 0 |
bench/corpus/phase6 — peticiones sin diseñar, con los marcos y muletillas que la gente escribe sin pensarlo.
| Nivel | Reducción media de tokens | Reducción agregada de tokens | Restricciones críticas preservadas | Cambios bloqueados por el libro |
|---|---|---|---|---|
| Light | 0.0% | 0.0% (2,426 → 2,426) | 100.0% (60/60) | 0 |
| Balanced | 9.0% | 8.9% (2,426 → 2,209) | 100.0% (60/60) | 0 |
| Aggressive | 12.3% | 12.2% (2,426 → 2,129) | 100.0% (60/60) | 0 |
Modo IA no medido para: Anthropic, OpenAI, Google Gemini. No se publica ningún porcentaje para un proveedor que no fue realmente llamado.
Modo ML local (TinyBERT vía LLMLingua-2, inferencia real en el dispositivo), nivel Balanced, muestra de 3 prompts del corpus cotidiano:
| Restricciones críticas preservadas | Violaciones de regiones protegidas |
|---|---|
| 25.0% (5/20) | 0/8 |
Honestidad como característica, no como descargo de responsabilidad. Cada punto de abajo es una limitación real y actual de este código, tal como está hoy.
Los bloques de código, el código en línea, las cadenas entre comillas, las URLs, las variables de plantilla y los ejemplos few-shot quedan excluidos de cada regla por construcción — no "normalmente se saltan", ni siquiera se le ofrecen a una regla como candidato.
"never", "always", "must", "only", "step by step" y cualquier cosa similar nunca se
eliminan, en ningún nivel. packages/core/src/rules/discarded.ts enumera cada regla
de la app anterior que hacía esto, y por qué se descartó.
El libro de restricciones verifica que ciertas restricciones (prohibiciones, formatos, números, literales citados, variables) sobreviven — no que el prompt comprimido se lea idéntico para una persona. Revisa siempre la salida en modo Aggressive antes de usarla en producción.
No hay backend. El modo rápido comprime en tu pestaña del navegador y nada sale de ella. El modo IA va directo de tu navegador al proveedor que elijas, con tu propia clave — nunca a través de un servidor de PromptTrim, porque no existe ninguno.
La detección de prohibiciones, requisitos y formatos del libro de restricciones es solo en inglés por ahora. Un prompt en español u otro idioma sigue teniendo la protección de regiones protegidas, pero no ese checklist — es una limitación conocida y documentada, no oculta.
El modo lote (varios prompts separados por ---) es solo modo rápido.
Disparar un número ilimitado de llamadas de API pagas desde un solo clic no debería
pasar por accidente.
LLMLingua-2 descarta tokens por importancia estadística, no por significado — nuestro propio benchmark de arriba midió que preserva solo el 25% de las restricciones críticas sin ayuda. Por eso está marcado como experimental: las regiones protegidas y el libro de restricciones por los que siempre pasa son lo que lo hace utilizable, no una afirmación de que el modelo en sí sea confiable.
Comprimir un prompt ahorra 15–30% una vez. Cachear su prefijo estático ahorra cerca de 90% en cada llamada repetida. PromptTrim te dice cuál vale la pena.
Reescribir elimina el relleno y se detiene ahí. Un prompt más corto es más barato en cada llamada, pero el techo es el relleno que tenía el prompt — típicamente 15–30%, y nada de eso sale del código, JSON o ejemplos que PromptTrim se niega a tocar.
Un acierto de caché cuesta 10% del precio de entrada en Anthropic, OpenAI y Gemini por igual. Escribir la caché cuesta 1.25× el precio de entrada para una vida de 5 minutos, o 2× para una hora — así que se paga solo desde la 2ª llamada, o la 3ª para la caché de una hora.
Una caché solo coincide con un prefijo idéntico. La fecha de hoy, un id de petición o una variable de plantilla al inicio de un system prompt cambian esos bytes en cada llamada: sin acierto de caché, sin error, precio completo. PromptTrim los encuentra y ofrece moverlos debajo del punto de corte.
Nada más corto que 512 tokens cachea en Claude Opus 5, 1,024 en Sonnet 5, 4,096 en Haiku 4.5, 1,024 en GPT-5.6 en adelante (2,048 antes) y 2,048 en Gemini 2.5. Por debajo de eso, cachear no hace nada — en silencio.
Precios y reglas de caché verificados el 2026-09-03 contra la documentación oficial de Anthropic, OpenAI y Google.
sessionStorage hasta que cierres la pestaña. Nunca vemos tus
prompts ni tus claves.
npm run bench.
Un system prompt ya cuidado apenas se reduce en modo rápido, y eso es correcto: no queda
nada seguro que recortar. Un prompt verboso y sin editar, lleno de cortesías y marcos de
petición, suele comprimirse notablemente más. El modo IA todavía no tiene benchmark con
proveedores reales (ver la nota sobre las tablas); no se publica ningún porcentaje para
él hasta que lo tenga.