# Filtra el AI slop de X con Jev

> Configura un filtro que desenfoca posts genéricos en tu feed y te deja mostrarlos cuando quieras.


Jev puede desenfocar los posts de X que parezcan genéricos o repetitivos. Tú decides cuáles mostrar.

Descarga el kit, pídele a tu asistente que lo prepare y actívalo en Chrome. También puedes seguir la opción manual.

## Antes de empezar

Necesitas **Chrome en un computador** y una **API key de [TypeSafe](https://typesafe.ai/)**. Crea la clave desde la sección de API keys de tu cuenta. Si eliges la opción asistida, usa **Codex o Claude Code** con acceso a una carpeta local.

Mientras esté activo, el filtro enviará el texto de los posts a TypeSafe y puede consumir saldo de tu cuenta. Jev puede equivocarse: no demuestra autoría por IA ni analiza imágenes o videos.

## 1. Descarga el kit

[**Descargar el filtro de Jev para X (.zip)**](/guides/jev-x/jev-x-filter.zip)

Extrae el ZIP y guarda la carpeta  donde quieras conservarla. La extensión seguirá usando esa ubicación, así que evita moverla después.

- : el programa que conecta el filtro con Jev. `.mjs` indica que contiene código JavaScript. Lo ejecutarás con Node.js.
- : la plantilla que copiarás para crear  y guardar tu API key.
- : las instrucciones del kit. Puedes abrirlas con tu editor de texto; `.md` es un formato de texto llamado Markdown.
- : la carpeta que cargarás en Chrome para aplicar el blur.

## 2. Prepara el filtro

<div slot="assistant">

Abre  como proyecto en **Codex o Claude Code**, con acceso a sus archivos y a la terminal. Copia esta instrucción:

#### Ver y copiar la instrucción

```text
Configura el kit de Jev para X en la carpeta que tengo abierta.

1. Comprueba que contiene server.mjs, .env.example y extension/manifest.json. Si no es la carpeta correcta, pídeme que abra jev-x-filter.
2. Comprueba que tengo Node.js 22 o posterior. Si falta, guíame para instalarlo desde nodejs.org.
3. Si falta .env, créalo desde .env.example. Si ya existe, consérvalo. Dime cómo abrirlo para guardar yo mi API key de TypeSafe. No me pidas pegarla en el chat ni muestres el contenido del archivo.
4. Cuando te confirme que guardé la clave, ejecuta node --env-file=.env server.mjs desde esta carpeta. Si el puerto 3333 está ocupado, indícame cómo cerrar la instancia anterior; no detengas otros procesos por tu cuenta.
5. Comprueba que http://127.0.0.1:3333/health responde con ok: true. Esto solo confirma que el servidor local está encendido; no hagas consultas a TypeSafe para probarlo.
6. Dime la ruta exacta de la subcarpeta extension para cargarla en Chrome. Si no puedes mantener el servidor activo, dame el comando y la carpeta para iniciarlo en mi terminal.

Usa los archivos del kit. Al terminar, dime qué preparaste y recuérdame que debo cargar la extensión en Chrome y activar el filtro desde la consola de X.
```

Cuando el asistente te lo indique, abre , reemplaza `replace_with_your_key` por tu clave y guarda. Avísale que ya está para que inicie el servidor.

Cuando aparezca **Jev ready / listo**, sigue al paso 3. Mantén abierto el proceso del servidor mientras uses Jev.

</div>
<div slot="manual">

Instala **[Node.js 22 o posterior](https://nodejs.org/en/download)** si todavía no lo tienes. Después sigue estos pasos:

### Guarda tu API key

Abre la carpeta extraída con un editor de texto, como VS Code. Duplica , nombra la copia  y reemplaza el texto de ejemplo por tu clave:

**.env**

```dotenv
TYPESAFE_API_KEY=pega_aqui_tu_clave
```

Guarda el archivo como texto plano. Su nombre debe ser . Algunos editores agregan `.txt`, la terminación de los archivos de texto: si queda como , quita ese `.txt` del nombre para que el filtro lo encuentre. Si los archivos que empiezan por punto no aparecen en Finder, pulsa **Command + Shift + .**. No compartas tu  ni pegues la clave en X.

### Enciende el filtro en tu computador

Abre una terminal **dentro de la carpeta** , donde está . En Windows puedes hacer clic derecho en la carpeta y elegir **Abrir en Terminal**. En VS Code, abre esa carpeta y selecciona **Terminal → Nueva terminal**.

**Terminal del computador**

```sh
node --env-file=.env server.mjs
```

Debe aparecer **Jev ready / listo**. Deja la terminal abierta mientras uses el filtro. No necesitas instalar paquetes ni abrir una segunda ventana de Chrome.

</div>

## 3. Actívalo en Chrome

Estos pasos son iguales para ambas opciones. Hazlos en el Chrome donde usas X.

### Carga la extensión en Chrome

Escribe `chrome://extensions` en la barra de direcciones. Activa **Modo de desarrollador**, pulsa **Cargar descomprimida** y elige la subcarpeta  del kit.

Verás **Jev · X blur** entre tus extensiones. Luego abre [x.com/home](https://x.com/home) y recarga la página. Si tenías otra versión del filtro, desactívala primero para evitar que ambas procesen los mismos posts.

### Actívalo desde la consola de X

Con X abierto, pulsa **Ctrl + Shift + J** en Windows o **Command + Option + J** en Mac. Selecciona la pestaña **Console / Consola** de las herramientas de desarrollo. Pega esto y pulsa Enter:

**Consola de X · activar**

```js
window.postMessage({ type: "JEV_START" }, location.origin);
```

Chrome puede mostrar una advertencia al pegar código. Lee el comando y sigue la indicación que aparezca si decides permitir el pegado. Este comando avisa a la extensión instalada que empiece a filtrar.

Cuando aparezca **[Jev] Filtro activo**, puedes cerrar las herramientas de desarrollo y recorrer el feed. La configuración del kit desenfoca un post cuando la puntuación de Jev alcanza **0,8**. Esa puntuación expresa el criterio del filtro; no es una prueba de autoría por IA.

## Úsalo mientras recorres el feed

Pulsa **Mostrar post** para leer cualquier publicación desenfocada. **Volver a desenfocar** restaura el blur. El filtro conserva el tamaño del post.

Cada activación permite hasta **100 consultas nuevas en esa pestaña**. Al alcanzar el límite, deja de analizar y avisa en la consola. Pega de nuevo el comando de activar si quieres continuar. Los resultados recientes se reutilizan en memoria; cerrar o recargar puede provocar nuevas consultas.

Para detenerlo y quitar todos los desenfoques, pega:

**Consola de X · detener**

```js
window.postMessage({ type: "JEV_STOP" }, location.origin);
```

Una consulta que ya se haya enviado puede terminar y consumir saldo. Para cerrar el servidor local, vuelve a su terminal y pulsa **Ctrl + C**.

**La próxima vez:** inicia el servidor, abre X y pega el comando de activar. También debes activarlo después de recargar X o abrir otra pestaña. El kit se detiene al entrar a mensajes y no procesa posts con menos de 20 o más de 12.000 caracteres.

| Lo que ves | Qué hacer |
| --- | --- |
| `node` no se reconoce | Instala Node.js 22 o posterior y abre una terminal nueva. |
| No encuentra  o  | Abre la terminal en la carpeta extraída. Revisa que el archivo de configuración se llame , sin `.txt` al final. |
| Puerto 3333 ocupado | Cierra con Ctrl + C el servidor anterior. Inicia el del kit. |
| Pegas el comando y solo aparece `undefined` | Ese resultado es normal, pero debe aparecer también el mensaje de Jev. Si falta, comprueba que la extensión esté activada, recarga X y vuelve a pegar el comando. |
| Error de conexión local | Mantén abierta la terminal con **Jev ready / listo**. Comprueba que `http://127.0.0.1:3333/health` muestre `{"ok":true}`. |
| `TypeSafe HTTP 401` o `403` | Revisa tu clave y el acceso de tu cuenta. Después de editar , reinicia el servidor. |
| `TypeSafe HTTP 429` | Revisa saldo y límites de tu cuenta. Espera antes de volver a activar el filtro. |
| Está activo, pero no hay blur | Puede que los textos no superen el umbral. Revisa la consola por errores o el límite de 100 consultas. Las publicaciones solo con imagen no se evalúan. |
| Actualizaste la extensión y sigue igual | Pulsa recargar en su tarjeta de `chrome://extensions`, recarga X y activa el filtro otra vez. |

Si X cambia la estructura de sus publicaciones, el kit puede necesitar una actualización. Puedes detenerlo en cualquier momento y seguir leyendo el feed.

El ZIP incluye todo el código del filtro.  contiene el criterio que consulta a Jev; , dentro de , aplica el blur y fija el umbral. Puedes revisar ambos antes de ejecutarlos.

Consulta la [API de TypeSafe](https://docs.typesafe.ai/api), la [puntuación noul](https://docs.typesafe.ai/primitives/noul) y las [instrucciones de Chrome para cargar extensiones locales](https://developer.chrome.com/docs/extensions/get-started/tutorial/hello-world).

## Recursos para desarrolladores y agentes

- [Documentación MCP de HeyMark](https://heymark.ai/es/mcp/)
- [llms.txt](https://heymark.ai/llms.txt)
- [Contenido completo del sitio para modelos de lenguaje](https://heymark.ai/llms-full.txt)
- Endpoint del protocolo MCP: `POST https://mcp.heymark.ai`
- Metadatos OAuth del recurso protegido: [/.well-known/oauth-protected-resource](https://mcp.heymark.ai/.well-known/oauth-protected-resource)
- MCP server card: [/server-card](https://mcp.heymark.ai/server-card)
