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
Tus agentes de IA actúan como si acabaran de conocerte. Emulo lo soluciona.
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

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 completaTítulos (elige por sub):
Cuerpo:
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:

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.

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:
| Candidato | Nuevo texto fuente | Pasadas planificadas máximas |
|---|---|---|
| 4 × 25K | 100K tokens | 4 workers + 1 reducer |
| 6 × 25K | hasta 150K tokens | hasta 6 workers + 1 reducer |
| 8 × 25K | límite duro de 160K tokens | hasta 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
.jsonlescritos 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:
| Habilidad | Carga |
|---|---|
emulo:work | Perfil de trabajo principal |
emulo:design | Principal + gusto de diseño |
emulo:write | Principal + voz de escritura |
emulo:video | Principal + gusto de video |
emulo:mine | Solo 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
| Superficie | Estado en esta versión |
|---|---|
| Plugin nativo de Codex | Probado localmente con cuatro habilidades con espacios de nombres |
| Bootstrap skills.sh de Codex | Compatible |
| Adaptador skills.sh/directo de Claude Code | Compatible |
| Plugin nativo de Claude | No reclamado; host no disponible durante la validación |
| Adaptadores Cursor / Gemini | Compatibles mediante comandos de instalación explícitos |
| OpenCode | Ambas 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 Antigravity | Minerí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 Agent | Descubrimiento 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.