Emulo

Carga un perfil personal extraído de tus propios registros locales de Claude Code, Codex y OpenCode, para que tu agente comience sabiendo cómo trabajas en lugar de partir de cero.

Documentación

Emulo

Emulo

Tus agentes de IA actúan como si acabaran de conocerte. Emulo lo soluciona.

stars discord MIT Python, zero dependencies works with claude, codex, cursor, copilot, openclaw, hermes

Tus sesiones reales de agente de codificación ya contienen las reglas que nunca escribiste: qué significa "terminado", qué rechazas a primera vista, cómo depuras, cómo diseñas interfaces y cómo escribes cuando realmente estás trabajando.

Emulo extrae evidencia seleccionada de esas sesiones — registros de Claude Code, Codex, Copilot CLI, OpenCode y Google Antigravity de forma nativa — y la convierte en un perfil de trabajo privado que tu agente lee antes de cada tarea. Capas separadas para trabajo, diseño, escritura y video significan que la parte correcta de ti se carga para la tarea correcta.

El perfil extraído se carga donde tus agentes ya viven: Claude Code y Codex de forma nativa, Cursor, Gemini y OpenCode mediante adaptadores explícitos, y OpenClaw y Hermes Agent como una habilidad estándar (guía).

La metodología Emulo Proof v1 es una metodología no ejecutada hasta que exista una versión de evidencia aprobada por separado.

La capa de video, y de dónde viene

A spec commercial made in Claude Design

Un comercial especulativo, hecho en Claude Design. Sin After Effects ni software de movimiento: todo es una composición renderizada a video.

Es trabajo especulativo. No fue encargado por Vercel ni hecho para ellos. Se eligió una marca para ver hasta dónde podía llegar el movimiento.

Está aquí porque emulo:video se extrae de sesiones como la que lo produjo. Las demás capas funcionan igual: el perfil no es una plantilla, es lo que sobrevivió del trabajo real.

Instalación

Dentro de Claude Code:

/plugin marketplace add ohad6k/emulo
/plugin install emulo@emulo

Dentro de Codex:

codex plugin marketplace add ohad6k/emulo --ref v0.6.2 --json
codex plugin add emulo@emulo --json

Luego ejecuta emulo:mine y apúntalo a tu historial de sesiones. Todo lo siguiente explica qué produce y por qué. Si prefieres la CLI en lugar del plugin, consulta Inicio rápido.

Código abierto y privacidad

Emulo tiene licencia MIT, es gratuito y funciona sin cuenta. No hay nada que comprar ni inicio de sesión.

La extracción de sesiones, la redacción, las cachés, el perfil en sí y los adaptadores de agente permanecen en tu máquina. La única excepción es la minería: si la apuntas a un modelo alojado, la evidencia seleccionada va a ese proveedor. Apúntala a un modelo local y toda la ejecución permanece en tu máquina.

No es memoria

La memoria es lo que le dijiste explícitamente al modelo.

Emulo extrae lo que tu trabajo ya demostró sobre ti: qué rechazas, qué significa "terminado", cuándo pides pruebas, cómo hablas cuando realmente trabajas y los comportamientos del agente que te hacen detener la tarea.

Por eso lee los registros de sesión sin procesar, no tu CLAUDE.md ni tu archivo de reglas.

Una ejecución real

Una línea al mismo agente, dos veces: "ayúdame a publicar emulo en reddit". Una vez en frío, una vez con el perfil de Emulo cargado.

🡒 agente🡒 agente + emulo

Así es como lo haría.

Subreddits: r/ClaudeAI y r/ChatGPTCoding son tu audiencia principal. r/LocalLLaMA encaja con el ángulo local. r/cursor, r/SideProject, r/opensource para alcance. No publiques todo a la vez: publica en uno, ajusta el título, republica durante unos días.

Título: Construí una herramienta local que lee tus registros de codificación de IA y escribe un "you.md" que tus agentes leen antes de cada tarea

respuesta completa

Títulos (elige por sub):

  • Construí una herramienta local que lee tus registros de codificación de IA y escribe un "you.md" que tus agentes leen antes de cada tarea
  • emulo: extrae tu propio historial de Claude Code en un perfil para que tu agente codifique como tú (local, código abierto)

Cuerpo:

Cada sesión de agente nueva comienza desde cero: no sabe cómo trabajas, así que te reexplicas cada vez. Todo eso ya está en tus registros de sesión. Así que construí emulo: lee tu historial, extrae cómo decides y hablas, y escribe un you.md que tus agentes leen antes de cada tarea.

  • se ejecuta localmente, tus registros nunca salen de tu máquina
  • redacta secretos antes de procesar
  • código abierto: [enlace]

También: abre con el dolor, no con el producto, responde rápido en la primera hora, añade un gif de demostración y etiquétalo correctamente. ¿Quieres que escriba variantes ajustadas para cada subreddit?

la idea primero: el número de minería es toda tu publicación. "leí 1,656 de mis propias sesiones" es una confesión, no un discurso, y nadie se desplaza más allá de una confesión. lidera con el espejo, no con el mecanismo.

un sub, no cinco: un sub de habilidades, donde la gente viene buscando esto en lugar de discutirlo.

Título: Construí una habilidad de Claude a partir de 8 meses de mis propias sesiones de Claude Code

la publicación completa que escribió

cuerpo: uso claude code y codex todos los días. 8 meses, en solitario. cada sesión se registra y nunca volví a mirarlas.

entonces me di cuenta de que esos registros son probablemente el registro más honesto de cómo trabajo realmente. no mi CLAUDE.md, no mis documentos, no las reglas que recordé escribir. las sesiones reales.

así que construí emulo.

Lo que hice: extraje cada mensaje que escribí de mis registros locales de claude/codex. eliminé la salida de herramientas, errores pegados, volcados de archivos y respuestas del asistente. mantuve solo mis palabras. resultaron alrededor de 1,656 sesiones y casi 3M de tokens solo míos.

luego lo dividí en fragmentos y hice que agentes leyeran cada parte. cada uno extrajo patrones como cómo defino "terminado", qué tipo de código rechazo, cuándo pido pruebas, qué me hace detener una tarea y cómo hablo cuando realmente trabajo.

luego fusioné los rasgos repetidos en un solo you.md.

la parte útil es que se instala como una habilidad de claude. así que ahora, en lugar de comenzar cada tarea en frío, claude lee mi perfil primero y ya sabe cómo trabajo.

no es memoria exactamente. la memoria es lo que le dijiste al modelo. esto es más como extraer lo que tu trabajo ya demostró sobre ti.

Lo publiqué en r/ClaudeSkills, tal como estaba escrito:

The post the Emulo-loaded agent wrote: 200 upvotes, 32 comments, 102K views

200 votos positivos · 32 comentarios · 102K vistas
desde una cuenta sin seguidores. El plan en frío era razonable. El plan cargado conocía la voz de su usuario, y funcionó.

Lo que encuentra

El tipo de reglas que extrae una mina, cada una respaldada por recibos textuales fechados de sesiones reales:

terminado significa que se ejecuta en vivo. nunca confíes en "terminado" solo por una edición de código. muéstralo funcionando primero.

arregla lo único. reescribir o "limpiar" código que no es el problema se rechaza cada vez.

construye más rápido de lo que entiende lo que construyó — luego le pide al agente que explique su propio sistema de vuelta.

se frustra al repetir la misma petición hasta que aterriza, no al escalar.

Nadie escribió esas reglas. Salieron del propio historial de una persona, con recibos.

Esto es un ejemplo. El tuyo se extrae de tus registros y no se parecerá en nada.

El informe de uso

La minería responde "quién es esta persona". El informe de uso responde una pregunta diferente: dónde pierdes tiempo con el modelo.

python emulo.py --coach                   # every source it can find
python emulo.py --coach --source claude   # Claude Code only

Se ejecuta antes de cualquier minería, no hace ninguna llamada al modelo y termina en segundos. Cuenta lo que tus propios mensajes ya muestran: peticiones que enviaste tres veces seguidas sin cambiarlas, contexto que reexplicaste después de que el agente lo perdiera, ejecuciones donde reformulaste la misma solicitud en lugar de añadir la restricción faltante, y con qué frecuencia abres un turno corrigiendo la última respuesta.

Cada hallazgo imprime los mensajes fechados detrás de él. Las comprobaciones que quedan por debajo de su umbral también se imprimen con sus recuentos, para que un resultado limpio se lea como un resultado en lugar de como silencio.

Lee solo los mensajes que escribiste, que es todo lo que Emulo conserva. No puede ver costos, tokens, llamadas a herramientas ni si el agente tenía razón, y nunca los puntúa.

La tarjeta

Después de la minería, python emulo.py --card renderiza tu perfil como una tarjeta compartible: arquetipo, leyes principales clasificadas por recibos de sesión de apoyo distintos, estadísticas de cobertura y una verdad contundente.

An Emulo profile card: archetype, laws with receipts, session stats, and the one uncomfortable truth

Comparte la tarjeta o un rasgo corto, nunca tu perfil completo.

Inicio rápido

Instala el bootstrap entre agentes: se ejecuta en Claude Code y Codex, e instala perfiles para Cursor y Gemini mediante los adaptadores explícitos:

npx skills add ohad6k/emulo@emulo

Luego dile a tu agente:

run emulo

Eso instala el bootstrap y crea un plan de minería de historial completo de solo lectura. Tu agente debe mostrar el costo y esperar aprobación antes del trabajo del modelo.

Una vez que tu perfil exista, el bootstrap ofrece el plugin nativo para que también tengas emulo: de enrutamiento con espacios de nombres. Pregunta primero y acepta un no. En Codex puede ejecutar la instalación por sí mismo; en Claude Code /plugin lo escribes tú, así que te entrega las dos líneas exactas para pegar.

Instalar la CLI

Si prefieres ejecutar Emulo tú mismo en lugar de a través de un agente:

pip install emulo

Eso pone emulo en tu ruta. emulo ejecuta el minero, emulo --dry-run imprime el plan de solo lectura primero, y emulo mcp ejecuta el servidor MCP a continuación. uv tool install emulo funciona igual, y uvx emulo lo ejecuta sin instalar.

emulo escribe RUN_ME.md junto a tus fragmentos. Es autocontenido, así que el paso restante completo es una línea para tu agente:

read emulo-out/RUN_ME.md and follow it

Tu agente hace una pasada por fragmento, los fusiona, escribe you.md e imprime el comando de instalación. Nada que pegar y nada más que descargar.

Verificar los recibos

Un perfil solo vale la pena cargarlo si su evidencia es real. El fallo que importa no es una regla faltante, es una regla segura que cita algo que nunca dijiste:

emulo verify you.md

Extrae cada cita del perfil y busca en las sesiones extraídas. Las citas que no puede encontrar se informan y el comando sale con código distinto de cero, porque un recibo que no se puede rastrear fue inventado. Las citas que descansan en una sola sesión se marcan por separado: una sesión es contexto, no una regla. Añade --json para salida legible por máquina, incluidos los IDs de sesión que respaldan cada cita.

Esto verifica lo que es mecánicamente verificable. Si una regla es vaga, genérica o cierta para todo desarrollador vivo sigue siendo un juicio, y sigue siendo tuyo.

Plugin nativo de Codex

El plugin nativo añade emulo:mine, emulo:work, emulo:design, emulo:write y emulo:video:

codex plugin marketplace add ohad6k/emulo --ref v0.6.2 --json
codex plugin add emulo@emulo --json

El comando de instalación del plugin en sí no escanea registros, no escribe estado de perfil privado y programa cero llamadas de modelo de minería. Pedirle a un agente que instale, ejecute o actualice Emulo aún consume esa interacción del host más su sobrecarga normal de sistema y herramientas.

Plugin nativo de Claude Code

El plugin de Claude Code expone las mismas cinco habilidades. Instálalo desde dentro de Claude Code:

/plugin marketplace add ohad6k/emulo
/plugin install emulo@emulo

Servidor MCP

Emulo también incluye un servidor de Protocolo de Contexto de Modelo (MCP), para que cualquier cliente MCP — Claude Desktop, Cursor y otros agentes — pueda cargar tu perfil antes de una tarea. El servidor implementa MCP sobre stdio y expone una herramienta, load_emulo_profile, que devuelve tu perfil extraído de trabajo, diseño o escritura a través del Protocolo de Contexto de Modelo.

Ejecútalo desde el paquete publicado con uvx emulo mcp, o desde un checkout con python emulo.py mcp, y apunta un cliente MCP hacia él:

{
  "mcpServers": {
    "emulo": { "command": "uvx", "args": ["emulo", "mcp"] }
  }
}

El servidor MCP es solo stdlib y sirve el perfil que ya extrajiste localmente; no hace llamadas de red propias.

Qué sucede cuando lo ejecutas

Emulo primero imprime un plan de solo lectura:

{
  "valid_sessions": "--",
  "post_dedupe_source_tokens": "--",
  "mode": "full",
  "profile_scope": "full_profile",
  "quality_default": true,
  "candidate_index": null,
  "selected_source_tokens": "--",
  "planned_worker_calls": "--",
  "planned_reducer_calls": "--"
}

El valor predeterminado de calidad de historial completo lee todo el historial elegible. Emulo muestra el plan exacto primero y espera aprobación antes de que se ejecute cualquier worker o reducer. Los informes en caché se reutilizan, por lo que el costo restante mostrado puede disminuir con el tiempo.

Si explícitamente deseas una primera vista más económica, solicita run emulo quick preview o usa --preview:

python emulo.py plugin preflight --preview

La vista previa rápida crea un perfil inicial a partir del historial seleccionado, no el perfil completo.

La escalera de vista previa rápida es:

CandidatoNuevo texto fuentePasadas planificadas máximas
4 × 25K100K tokens4 workers + 1 reducer
6 × 25Khasta 150K tokenshasta 6 workers + 1 reducer
8 × 25Klímite duro de 160K tokenshasta 8 workers + 1 reducer

La calibración congelada recuperó solo 5 de 22 rasgos requeridos en el candidato acotado más amplio. Por lo tanto, la vista previa rápida no puede describirse como el valor predeterminado de calidad a menos que una ejecución futura pase los 22 requisitos congelados. La línea base permanente no privada está en tests/fixtures/bounded-calibration-baseline.json.

La primera versión real de historial completo recuperó 12 de los mismos 22 requisitos congelados: trabajo 5/10, diseño 5/5 y escritura 2/7. El historial completo sigue siendo el valor predeterminado de calidad porque mejora materialmente la recuperación sobre la vista previa, no porque garantice un modelo personal completo. El paquete validado mantiene solo reglas compatibles; los rasgos faltantes requieren futuras mejoras de minería en lugar de una puntuación suavizada.

Al actualizar, los hashes de segmentos y evidencia sin cambios se reutilizan. Una actualización idéntica planifica cero pasadas adicionales de minería de Emulo. El historial nuevo planifica solo el trabajo de historial completo afectado más un reducer.

Estos son tokens fuente seleccionados y pasadas planificadas de worker/reducer, no eventos de facturación del proveedor. Emulo no puede medir los prompts del sistema del proveedor, el tráfico de herramientas, la sobrecarga de orquestación o un porcentaje de una asignación de suscripción propietaria.

Recuerdo adaptativo experimental

La canalización de recepción-saliencia y scout sigue disponible para desarrolladores mediante --stage A explícito, pero es experimental y no se usa en la versión Plugin, la configuración predeterminada de calidad, las actualizaciones ni la calibración.

Qué hace que el resultado sea confiable

  • Solo se extraen mensajes reales de .jsonl escritos por el usuario. AGENTS.md, CLAUDE.md, archivos de memoria y autodescripciones escritas se rechazan como evidencia fuente.
  • Cada worker acotado cubre trabajo, diseño, escritura y video en un informe validado.
  • Las citas deben ser recibos cortos, fechados, verbatim de IDs de sesión conocidos.
  • Las reglas inferidas requieren al menos dos sesiones distintas y, cuando estén disponibles, dos estratos de fuente/tiempo.
  • Una instrucción explícita sin contradicciones puede sobrevivir como evidencia de baja frecuencia.
  • Relleno genérico, citas inventadas, contradicciones no resueltas, paquetes de perfil parciales y cachés corruptos fallan de forma cerrada.

Los cargadores nativos están deliberadamente separados:

HabilidadCarga
emulo:workPerfil de trabajo principal
emulo:designPrincipal + gusto de diseño
emulo:writePrincipal + voz de escritura
emulo:videoPrincipal + gusto de video
emulo:mineSolo solicitudes explícitas de configuración, actualización o profundización

Privacidad

El extractor, la redacción, los cachés y los perfiles generados de Emulo permanecen locales. El texto redactado seleccionado se procesa con el proveedor de modelo que elijas. Con un modelo local, todo el flujo de minería puede permanecer local.

emulo.py en sí es un solo archivo solo-stdlib y no realiza llamadas de red. El comando skills.sh descarga el bootstrap seleccionado. Fuera de un checkout de repositorio, ese bootstrap descarga solo emulo.py y MINING_PROMPT.md desde la etiqueta de versión exacta después de la verificación SHA-256. Esas descargas ocurren antes del descubrimiento de registros y no leen datos de sesión.

La redacción es de mejor esfuerzo y se ejecuta antes de que el texto seleccionado se escriba en los cachés de Emulo. Inspecciona la salida privada antes de compartirla. Comparte la tarjeta o un rasgo corto, nunca tu perfil completo o apéndice de recibos.

Consulta SECURITY.md para el límite exacto.

CLI crudo de un solo archivo

El extractor heredado sigue disponible y es retrocompatible:

curl -O https://raw.githubusercontent.com/ohad6k/emulo/v0.6.2/emulo.py
python emulo.py --dry-run
python emulo.py --chunks 4 --out emulo-out

Los adaptadores manuales siguen disponibles:

python emulo.py --install you.md --target codex
python emulo.py --install you.md --target claude
python emulo.py --install you.md --target cursor --repo .
python emulo.py --install you.md --target agents --repo .
python emulo.py --install you.md --target gemini --repo .
python emulo.py --install you.md --target opencode

Matriz de soporte

SuperficieEstado en esta versión
Plugin nativo de CodexProbado localmente con cuatro habilidades con espacios de nombres
Bootstrap skills.sh de CodexCompatible
Adaptador skills.sh/directo de Claude CodeCompatible
Plugin nativo de ClaudeNo reclamado; host no disponible durante la validación
Adaptadores Cursor / GeminiCompatibles mediante comandos de instalación explícitos
OpenCodeAmbas direcciones verificadas en vivo: sesiones extraídas de su almacén SQLite y diseño JSON heredado (--source opencode), perfil instalado en sus reglas globales (--target opencode)
Google AntigravityMinería verificada en vivo contra una instalación local real (--source antigravity): prompts escritos extraídos de transcripciones ~/.gemini/antigravity/brain, sobres de arnés eliminados. Antigravity solo escribe transcripciones cuando el registro de interacción está habilitado en su configuración de privacidad
OpenClaw / Hermes AgentDescubrimiento de habilidades de perfil verificado localmente; guía

Actualización y notificaciones

Ejecuta update emulo para reutilizar cachés estables y planificar solo el trabajo cambiado.

Una estrella de GitHub marca el repositorio como favorito pero no te suscribe a versiones. Para recibir notificaciones de versiones, elige Watch → Custom → Releases en GitHub.

Límites

  • Emulo modela cómo trabajas, diseñas, escribes y haces videos. No hace que el modelo subyacente sea más inteligente.
  • Los historiales dispersos o repetitivos pueden dejar inactivos el diseño o la escritura. Emulo informa la instrucción exacta de profundización dirigida en lugar de inventar una persona.
  • La contabilidad de tokens del proveedor permanece fuera de la medición exacta de Emulo.
  • Los benchmarks, resultados de tablas de clasificación y videos de demostración son una versión posterior separada.

Preguntas frecuentes

Las tres cosas que la gente cuestiona, respondidas una vez.

"¿Por qué no simplemente pedirle a Claude que resuma mis registros?"

Una pasada no puede hacerlo. Mi historial es de 1,656 sesiones, alrededor de 3M tokens después de la extracción, y los registros crudos son en su mayoría salida de herramientas, volcados de archivos y errores pegados. Una sola llamada de resumen quema la ventana en ese ruido. Emulo mantiene solo las palabras que escribiste, da a cada segmento validado su propia pasada de evidencia y requiere sesiones de soporte distintas antes de que una regla inferida pueda sobrevivir. El perfil resultante mantiene recibos de sesión en lugar de una puntuación obsoleta de recuento de workers.

"Claude ya tiene memoria. ¿Por qué necesito esto?"

Usa ambos. La memoria es lo que le dijiste al modelo: notas curadas, CLAUDE.md, y permanece dentro de una herramienta. Emulo lee sesiones crudas compatibles de Codex, Claude Code, Copilot CLI, OpenCode y Google Antigravity y extrae lo que nunca escribiste: qué rechazas, qué significa "hecho" para ti y cuándo exiges prueba. La salida son archivos simples que posees y puedes cargar mediante agentes compatibles.

"Claude solo mantiene 30 días de registros. ¿De dónde salieron 9 meses?"

La retención de Claude Code es una configuración (cleanupPeriodDays, 30 por defecto), y mi historial más largo combina sesiones de Claude Code, Codex y Copilot CLI más archivos. Si mantienes la retención predeterminada, las sesiones más antiguas de Claude pueden caducar antes de que Emulo las vea. Aumenta la retención y luego extrae lo que quede.

Hoja de ruta

Consulta ROADMAP.md para lo que se difiere intencionalmente.

Comunidad

Licencia

MIT. Hecho por @ohad6k.