Emulo
Carrega um perfil pessoal extraído dos seus próprios logs locais do Claude Code, Codex e OpenCode, para que seu agente comece sabendo como você trabalha, em vez de começar do zero.
Documentação

Emulo
Seus agentes de IA agem como se tivessem acabado de te conhecer. A Emulo resolve isso.
Suas sessões reais de agente de codificação já contêm as regras que você nunca escreveu: o que "pronto" significa, o que você rejeita de cara, como você depura, como você projeta UI e como você escreve quando está realmente trabalhando.
A Emulo extrai evidências selecionadas dessas sessões — logs do Claude Code, Codex, Copilot CLI, OpenCode e Google Antigravity prontos para uso — em um perfil de trabalho privado que seu agente lê antes de cada tarefa. Camadas separadas para trabalho, design, escrita e vídeo garantem que a parte certa de você seja carregada para a tarefa certa.
O perfil extraído é carregado onde seus agentes já vivem: Claude Code e Codex nativamente, Cursor, Gemini e OpenCode por meio de adaptadores explícitos, e OpenClaw e Hermes Agent como uma skill padrão (guia).
A metodologia Emulo Proof v1 é uma metodologia não executada até que exista uma liberação de evidências aprovada separadamente.
A camada de vídeo e de onde ela vem

Um comercial especulativo, feito no Claude Design. Sem After Effects e sem software de motion: a coisa toda é uma composição renderizada para vídeo.
É trabalho especulativo. Não foi encomendado pela Vercel e não foi feito para eles. Uma marca foi escolhida para ver até onde o motion poderia ir.
Está aqui porque emulo:video é extraído de sessões como a que o
produziu. As outras camadas funcionam da mesma forma: o perfil não é um modelo,
é o que sobreviveu do trabalho real.
Instalação
Dentro do Claude Code:
/plugin marketplace add ohad6k/emulo
/plugin install emulo@emulo
Dentro do Codex:
codex plugin marketplace add ohad6k/emulo --ref v0.6.2 --json
codex plugin add emulo@emulo --json
Depois execute emulo:mine e aponte para o histórico da sua sessão. Tudo abaixo explica o que isso produz e por quê. Se você quiser a CLI em vez do plugin, veja Início rápido.
Código aberto e privacidade
A Emulo é licenciada sob MIT, gratuita e funciona sem conta. Não há nada para comprar e nenhum login.
Extração de sessão, redação, caches, o próprio perfil e os adaptadores de agente permanecem todos na sua máquina. A única exceção é a mineração: se você apontar para um modelo hospedado, as evidências selecionadas vão para esse provedor. Aponte para um modelo local e toda a execução permanece na sua máquina.
Não é memória
Memória é o que você explicitamente disse ao modelo.
A Emulo extrai o que seu trabalho já provou sobre você: o que você rejeita, o que "pronto" significa, quando você pede provas, como você fala quando está realmente trabalhando e os comportamentos do agente que fazem você interromper a tarefa.
É por isso que ela lê logs de sessão brutos, não seu CLAUDE.md ou arquivo de regras.
Uma execução real
Uma linha para o mesmo agente, duas vezes: "me ajuda a postar emulo no reddit." Uma vez frio, uma vez com o perfil da Emulo carregado.
| 🡒 agente | 🡒 agente + emulo |
|---|---|
|
Aqui está como eu jogaria. Subreddits: r/ClaudeAI e r/ChatGPTCoding são seu público principal. r/LocalLLaMA se encaixa no ângulo local. r/cursor, r/SideProject, r/opensource para alcance. Não dispare tudo de uma vez — poste em um, ajuste o título, reposte ao longo de alguns dias. Título: Eu construí uma ferramenta local que lê seus logs de codificação de IA e escreve um "you.md" que seus agentes leem antes de cada tarefa resposta completaTítulos (escolha por sub):
Corpo:
Também: abra com a dor, não com o produto, responda rápido na primeira hora, adicione um gif de demonstração e marque corretamente. Quer que eu escreva variantes ajustadas para cada subreddit? |
a percepção primeiro: o número da mineração é seu post inteiro. "eu li 1.656 das minhas próprias sessões" é uma confissão, não um pitch, e ninguém passa por uma confissão. lidere com o espelho, não com o mecanismo. um sub, não cinco — um sub de skills, onde as pessoas vêm procurando por isso em vez de discutir sobre isso. Título: Eu construí uma skill do Claude a partir de 8 meses das minhas próprias sessões do Claude Code o post completo que ele escreveucorpo: Eu uso claude code e codex todos os dias. 8 meses, solo. toda sessão é registrada e eu nunca realmente olhei para elas de novo. então me atingiu que esses logs são provavelmente o registro mais honesto de como eu realmente trabalho. não meu CLAUDE.md, não meus docs, não as regras que eu lembrei de escrever. as sessões reais. então eu construí emulo. O que eu fiz: puxei toda mensagem que digitei dos meus logs locais do claude/codex. removi saída de ferramentas, erros colados, dumps de arquivos e respostas do assistente. mantive apenas minhas palavras. chegou a cerca de 1.656 sessões e quase 3M de tokens só de mim. então eu dividi em chunks e fiz agentes lerem cada fatia. cada um extraiu padrões como como eu defino pronto, que tipo de código eu rejeito, quando peço provas, o que me faz parar uma tarefa e como eu falo quando estou realmente trabalhando. então eu mesclei os traços repetidos em um you.md. a parte útil é que instala como uma skill do claude. então agora em vez de começar toda tarefa frio, o claude lê meu perfil primeiro e já sabe como eu trabalho. não é memória exatamente. memória é o que você disse ao modelo. isso é mais como extrair o que seu trabalho já provou sobre você. |
Eu postei no r/ClaudeSkills, como escrito:

200 upvotes · 32 comentários · 102K visualizações
de uma conta sem seguidores. O plano frio era razoável. O plano carregado conhecia a voz do seu usuário — e funcionou.
O que ela encontra
O tipo de regras que uma mineração extrai, cada uma apoiada por recibos verbais datados de sessões reais:
pronto significa que roda ao vivo. nunca confie em "pronto" vindo de uma edição de código. mostre funcionando primeiro.
conserte a única coisa. reescrever ou "limpar" código que não é o problema é rejeitado toda vez.
constrói mais rápido do que entende o que construiu — então pede ao agente para explicar o próprio sistema de volta.
fica frustrado por repetir o mesmo pedido até que funcione, não por escalar.
Ninguém escreveu essas regras. Elas saíram do histórico de uma única pessoa, com recibos.
Este é um exemplo. O seu é extraído dos seus logs e não vai se parecer com isso.
O relatório de uso
A mineração responde "quem é essa pessoa". O relatório de uso responde a uma pergunta diferente: onde você está perdendo tempo com o modelo.
python emulo.py --coach # every source it can find
python emulo.py --coach --source claude # Claude Code only
Ele roda antes de qualquer mineração, não faz chamada de modelo e termina em segundos. Conta o que suas próprias mensagens já mostram: pedidos que você enviou três vezes seguidas sem mudá-los, contexto que você reexplicou depois que o agente perdeu, execuções onde você reformulou o mesmo pedido em vez de adicionar a restrição que faltava, e com que frequência você abre um turno corrigindo a última resposta.
Cada descoberta imprime as mensagens datadas por trás dela. Verificações que ficam abaixo do limite também são impressas com suas contagens, para que um resultado limpo leia como um resultado em vez de silêncio.
Ele lê apenas as mensagens que você digitou, que é tudo o que a Emulo mantém. Não pode ver custo, tokens, chamadas de ferramenta ou se o agente estava certo, e nunca pontua isso.
O cartão
Após a mineração, python emulo.py --card renderiza seu perfil como um cartão compartilhável: arquétipo, principais leis classificadas por recibos de sessão de apoio distintos, estatísticas de cobertura e uma verdade afiada.

Compartilhe o cartão ou um traço curto, nunca seu perfil completo.
Início rápido
Instale o bootstrap entre agentes — roda no Claude Code e no Codex, e instala perfis para Cursor e Gemini por meio dos adaptadores explícitos:
npx skills add ohad6k/emulo@emulo
Então diga ao seu agente:
run emulo
Isso instala o bootstrap e cria um plano de mineração de histórico completo somente leitura. Seu agente deve mostrar o custo e aguardar aprovação antes do trabalho do modelo.
Uma vez que seu perfil exista, o bootstrap oferece o plugin nativo para que você também tenha roteamento emulo: com namespace. Ele pergunta primeiro e aceita um não. No Codex, ele pode executar a instalação sozinho; no Claude Code, /plugin é digitado por você, então ele entrega as duas linhas exatas para colar.
Instale a CLI
Se você preferir executar a Emulo você mesmo em vez de através de um agente:
pip install emulo
Isso coloca emulo no seu caminho. emulo executa o minerador, emulo --dry-run imprime o plano somente leitura primeiro, e emulo mcp executa o servidor MCP abaixo. uv tool install emulo funciona da mesma forma, e uvx emulo executa sem instalar.
emulo escreve RUN_ME.md ao lado dos seus chunks. É autocontido, então o passo restante inteiro é uma linha para seu agente:
read emulo-out/RUN_ME.md and follow it
Seu agente faz uma passada por chunk, mescla-os, escreve you.md e imprime o comando de instalação. Nada para colar e nada mais para baixar.
Verifique os recibos
Um perfil só vale a pena carregar se sua evidência for real. A falha que importa não é uma regra ausente, é uma regra confiante citando algo que você nunca disse:
emulo verify you.md
Ele puxa toda citação do perfil e busca nas sessões mineradas por ela. Citações que não podem ser encontradas são relatadas e o comando sai com código não zero, porque um recibo que não pode ser rastreado foi inventado. Citações apoiadas em uma única sessão são sinalizadas separadamente: uma sessão é contexto, não uma regra. Adicione --json para saída legível por máquina, incluindo quais ids de sessão suportam cada citação.
Isso verifica o que é mecanicamente verificável. Se uma regra é vaga, genérica ou verdadeira para todo desenvolvedor vivo ainda é um julgamento, e ainda é seu.
Plugin nativo do Codex
O plugin nativo adiciona emulo:mine, emulo:work, emulo:design, emulo:write e emulo:video:
codex plugin marketplace add ohad6k/emulo --ref v0.6.2 --json
codex plugin add emulo@emulo --json
O próprio comando de instalação do plugin não escaneia logs, não escreve estado de perfil privado e agenda zero chamadas de modelo de mineração. Pedir a um agente para instalar, executar ou atualizar a Emulo ainda consome essa interação do host mais sua sobrecarga normal de sistema e ferramenta.
Plugin nativo do Claude Code
O plugin do Claude Code expõe as mesmas cinco skills. Instale-o de dentro do Claude Code:
/plugin marketplace add ohad6k/emulo
/plugin install emulo@emulo
Servidor MCP
A Emulo também inclui um servidor Model Context Protocol (MCP), para que qualquer cliente MCP — Claude Desktop, Cursor e outros agentes — possa carregar seu perfil antes de uma tarefa. O servidor implementa MCP sobre stdio e expõe uma ferramenta, load_emulo_profile, que retorna seu perfil minerado de trabalho, design ou escrita sobre o Model Context Protocol.
Execute-o do pacote publicado com uvx emulo mcp, ou de um checkout com python emulo.py mcp, e aponte um cliente MCP para ele:
{
"mcpServers": {
"emulo": { "command": "uvx", "args": ["emulo", "mcp"] }
}
}
O servidor MCP é apenas stdlib e serve o perfil que você já minerou localmente; ele não faz chamadas de rede próprias.
O que acontece quando você executa
A Emulo primeiro imprime um plano somente leitura:
{
"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": "--"
}
O padrão de qualidade de histórico completo lê todo o histórico elegível. O Emulo mostra o plano exato primeiro e aguarda aprovação antes que qualquer worker ou reducer seja executado. Relatórios em cache são reutilizados, então o custo restante exibido pode cair ao longo do tempo.
Se você quiser explicitamente uma primeira análise mais barata, peça run emulo quick preview ou use --preview:
python emulo.py plugin preflight --preview
A pré-visualização rápida cria um perfil inicial a partir do histórico selecionado, não o perfil completo.
A escada de pré-visualização rápida é:
| Candidato | Novo texto-fonte | Passagens planejadas máximas |
|---|---|---|
| 4 × 25K | 100K tokens | 4 workers + 1 reducer |
| 6 × 25K | até 150K tokens | até 6 workers + 1 reducer |
| 8 × 25K | limite rígido de 160K tokens | até 8 workers + 1 reducer |
A calibração congelada recuperou apenas 5 de 22 traços exigidos no candidato limitado mais amplo. A pré-visualização rápida, portanto, não pode ser descrita como o padrão de qualidade, a menos que uma execução futura passe todos os 22 requisitos congelados. A linha de base permanente não privada está em tests/fixtures/bounded-calibration-baseline.json.
A primeira mineração real de lançamento de histórico completo recuperou 12 dos mesmos 22 requisitos congelados: trabalho 5/10, design 5/5 e escrita 2/7. O histórico completo continua sendo o padrão de qualidade porque melhora materialmente a recuperação em relação à pré-visualização, não porque garante um modelo pessoal completo. O pacote validado mantém apenas regras suportadas; traços ausentes exigem melhorias futuras na mineração, em vez de uma pontuação suavizada.
Na atualização, hashes de segmentos e evidências inalterados são reutilizados. Uma atualização idêntica planeja zero passagens adicionais de mineração do Emulo. Novo histórico planeja apenas o trabalho de histórico completo afetado, mais um reducer.
Estes são tokens de origem selecionados e passagens planejadas de worker/reducer, não eventos de cobrança do provedor. O Emulo não pode medir prompts de sistema do provedor, tráfego de ferramentas, sobrecarga de orquestração ou uma porcentagem de uma permissão de assinatura proprietária.
Recuperação adaptativa experimental
O pipeline de saliência de recibos e scout permanece disponível para desenvolvedores por meio de --stage A explícito, mas é experimental e não é usado pelo lançamento do Plugin, configuração padrão de qualidade, atualizações ou calibração.
O que torna o resultado confiável
- Apenas mensagens reais de
.jsonlcriadas pelo usuário são mineradas.AGENTS.md,CLAUDE.md, arquivos de memória e autodescrições digitadas são rejeitados como evidência de origem. - Cada worker limitado cobre trabalho, design, escrita e vídeo em um relatório validado.
- Citações devem ser curtas, datadas, recibos verbatim de IDs de sessão conhecidos.
- Regras inferidas exigem pelo menos duas sessões distintas e, quando disponíveis, duas camadas de origem/tempo.
- Uma instrução explícita não contradita pode sobreviver como evidência de baixa frequência.
- Preenchimento genérico, citações inventadas, contradições não resolvidas, pacotes de perfil parciais e caches corrompidos falham de forma segura.
Os loaders nativos são deliberadamente separados:
| Habilidade | Carrega |
|---|---|
emulo:work | Perfil de trabalho principal |
emulo:design | Principal + gosto de design |
emulo:write | Principal + voz de escrita |
emulo:video | Principal + gosto de vídeo |
emulo:mine | Apenas solicitações explícitas de configuração, atualização ou aprofundamento |
Privacidade
O extrator, a redação, os caches e os perfis gerados do Emulo permanecem locais. Texto selecionado e redigido é processado pelo provedor de modelo que você escolher. Com um modelo local, todo o fluxo de mineração pode permanecer local.
emulo.py em si é um único arquivo apenas stdlib e não faz chamadas de rede. O comando skills.sh baixa o bootstrap selecionado. Fora de um checkout de repositório, esse bootstrap baixa apenas emulo.py e MINING_PROMPT.md da tag de lançamento exata após verificação SHA-256. Esses downloads acontecem antes da descoberta de logs e não leem dados de sessão.
A redação é de melhor esforço e ocorre antes que o texto selecionado seja gravado nos caches do Emulo. Inspecione a saída privada antes de compartilhá-la. Compartilhe o cartão ou um traço curto, nunca seu perfil completo ou apêndice de recibos.
Consulte SECURITY.md para o limite exato.
CLI bruto de arquivo único
O extrator legado permanece disponível e compatível com versões anteriores:
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
Adaptadores manuais permanecem disponíveis:
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 suporte
| Superfície | Status neste lançamento |
|---|---|
| Plugin nativo Codex | Comprovado localmente com quatro habilidades namespaced |
| Bootstrap skills.sh do Codex | Suportado |
| Adaptador skills.sh/direto do Claude Code | Suportado |
| Plugin nativo Claude | Não reivindicado; host indisponível durante a validação |
| Adaptadores Cursor / Gemini | Suportados por meio de comandos de instalação explícitos |
| OpenCode | Ambas as direções verificadas ao vivo: sessões mineradas de seu armazenamento SQLite e layout JSON legado (--source opencode), perfil instalado em suas regras globais (--target opencode) |
| Google Antigravity | Mineração verificada ao vivo contra uma instalação local real (--source antigravity): prompts digitados extraídos de transcrições ~/.gemini/antigravity/brain, envelopes de harness removidos. O Antigravity só grava transcrições quando o registro de interação está habilitado em suas configurações de privacidade |
| OpenClaw / Hermes Agent | Descoberta de habilidades de perfil verificada localmente; guia |
Atualizações e notificações
Execute update emulo para reutilizar caches estáveis e planejar apenas o trabalho alterado.
Uma estrela no GitHub marca o repositório como favorito, mas não o inscreve em lançamentos. Para receber notificações de lançamento, escolha Watch → Custom → Releases no GitHub.
Limites
- O Emulo modela como você trabalha, projeta, escreve e faz vídeos. Ele não torna o modelo subjacente mais inteligente.
- Históricos esparsos ou repetitivos podem deixar design ou escrita inativos. O Emulo relata a instrução exata de aprofundamento direcionado em vez de inventar uma persona.
- A contabilidade de tokens do provedor permanece fora da medição exata do Emulo.
- Benchmarks, resultados de leaderboard e vídeos de prova são um lançamento separado posterior.
FAQ
As três coisas sobre as quais as pessoas questionam, respondidas uma vez.
"Por que não simplesmente pedir ao Claude para resumir meus logs?"
Uma passagem não é suficiente. Meu histórico tem 1.656 sessões, cerca de 3M tokens após a extração, e os logs brutos são principalmente saída de ferramentas, despejos de arquivos e erros colados. Uma única chamada de resumo queima a janela nesse ruído. O Emulo mantém apenas as palavras que você digitou, dá a cada segmento validado sua própria passagem de evidência e exige sessões de suporte distintas antes que uma regra inferida possa sobreviver. O perfil resultante mantém recibos de sessão em vez de uma pontuação obsoleta de contagem de workers.
"O Claude já tem memória. Por que preciso disso?"
Use ambos. Memória é o que você disse ao modelo: notas selecionadas, CLAUDE.md, e fica dentro de uma ferramenta. O Emulo lê sessões brutas suportadas do Codex, Claude Code, Copilot CLI, OpenCode e Google Antigravity e extrai o que você nunca escreveu: o que você rejeita, o que "pronto" significa para você e quando você exige prova. A saída são arquivos simples que você possui e pode carregar por meio de agentes suportados.
"O Claude só mantém 30 dias de logs. De onde vieram 9 meses?"
A retenção do Claude Code é uma configuração (cleanupPeriodDays, 30 por padrão), e meu histórico mais longo combina sessões do Claude Code, Codex e Copilot CLI, além de arquivos. Se você mantiver a retenção padrão, sessões mais antigas do Claude podem sair antes que o Emulo as veja. Aumente a retenção e depois minere o que restou.
Roadmap
Consulte ROADMAP.md para o que está intencionalmente adiado.
Comunidade
Licença
MIT. Feito por @ohad6k.