Wenlan
Wenlan is a source-backed AI knowledge base and LLM wiki for AI work: organize documents and decisions into pages you can find, inspect, and review.
Suas notas e o que a IA aprende com você, no mesmo lugar.
Translation pending
ProductivityGitHub @JonathanSantosAvailability not checked yetOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Memória local para IAs de código, em arquivos seus. App nativo em Rust para macOS, com MCP e hooks para Claude Code e GitHub Copilot.
Translation pending
Loading the full README.
Read the full README ↗Toda sessão de IA começa do zero. Você repete o gerenciador de pacotes, o formato do commit e aquela decisão de duas semanas atrás. O Omnimind fica entre a IA e uma pasta sua: entrega o que importa no início da sessão, registra o que você corrige e mostra tudo o que foi gravado, com desfazer.
| Palavra | O que é |
|---|---|
| Nota | O que você escreve, em Markdown |
| Memória | O que a IA aprende, com data, origem e autoridade |
| Cofre | A pasta que guarda as duas. Um arquivo comum, sem conta e sem nuvem |
| Projeto | O que uma nota declara, com grupo e pasta. A memória de um projeto não vaza para outro |
Três ideias sustentam o produto:
Conectar escreve a integração dentro do projeto. Nada vai para ~/.claude sem --global, e suas configurações continuam lá.
O servidor MCP nasce com a sessão e morre com ela. Com o app fechado, nada fica rodando.
Se a IA não fizer nada, a frase literal entra no próximo resumo do mesmo jeito.
Uma lição de um projeto ajuda em outro, com a origem citada, e a regra de um não vaza para o outro.
Desligar tira do projeto só o que o Omnimind colocou. O cofre não muda, e o estado vem dos arquivos do projeto, então a tela não mostra uma conexão que não existe.
/sonharO disco é a verdade. Não há banco de dados nem processo em segundo plano. Cada processo mantém um índice em memória, e o instantâneo é descartável. Se você editar um arquivo por fora, o Omnimind percebe.
~/Omnimind/
├── brain.toml nome e regras do cofre
├── notes/ suas notas em Markdown
├── memories/
│ ├── decision/ o que foi decidido
│ ├── preference/ como você gosta de trabalhar
│ ├── procedure/ como se faz
│ ├── concept/ o que algo significa
│ └── episode/ o que aconteceu
└── .omnimind/ privado e descartável, salvo o diário
├── journal/ diário só de anexar, por sessão
├── connections.json projetos ligados a este cofre
├── live/ sessão atual de cada cliente
└── snapshot.bin índice pronto para abrir rápido
| Ferramenta | Para quê |
|---|---|
memory_search | Buscar em notas e memórias, com origem, estado e cobertura |
memory_read | Abrir o texto inteiro. Segredos saem redigidos |
memory_write | Gravar, editar, substituir, arquivar |
memory_agenda | Listar o trabalho de consolidação pendente |
App, CLI, MCP e hooks passam por um único Brain::apply:
A autoridade vem do transporte e do diário, nunca de um campo da requisição. Uma memória marcada à mão como sua perde esse status se o arquivo não tiver vindo de uma escrita do produto.
| Etapa | Como |
|---|---|
| Índice | Invertido em memória, com BM25F. Título e aliases pesam mais que o corpo |
| Idioma | Stemming em português e inglês, com dobra de acentos |
| Reformulações | De 1 a 3 consultas, fundidas por RRF |
| Sinônimos | A IA grava aliases em português e inglês |
| Erro de digitação | Correção só quando nada voltou |
| Honestidade | ok, weak, no_match ou incomplete, com a cobertura |
crates/graph é geometria pura: recebe itens e ligações e devolve fitas de triângulos. O GraphView desenha com wgpu numa textura fora da tela e só redesenha quando algo muda.
| Forma | Técnica | Referência |
|---|---|---|
| Feixes | Ligações agrupadas por tema | Hierarchical edge bundling, Holten 2006 |
| Raízes | Cada tema cresce do centro | Space colonization, Runions 2007 |
Medidos num MacBook Air M2, com cofre fictício de 5.000 notas e 800 memórias.
| Medida | Limite | Medido |
|---|---|---|
| App instalado | 100 MB | 12 MB |
| Primeiro quadro | 2 s | 0,59 s |
| Memória do app | 500 MB | 143 MB |
| Servidor da IA em repouso | 150 MB | 102,6 MB |
| Busca, p95 | 100 ms | 32,8 ms |
| Janela real, 300 quadros, p99 | 60 fps | 17,05 ms |
| Quadros em repouso | 0 | 0 |
| Teste | Com Omnimind | Sem memória |
|---|---|---|
| Correções lembradas sem repetir | 5 de 5 | 0 de 4 |
| 32 projetos, auditoria manual | 9 de 9 | 2 de 9, mais 3 parciais |
| Layout: cores do sistema | 46 de 46 | 0 de 45 |
A amostra é pequena, os cenários foram escritos por nós e o grupo sem memória não podia ler o repositório. Os resultados mostram que o mecanismo funciona, não quanto ele vai render no seu dia a dia. Detalhes em docs/qa/ai-sessions.md.
Os pacotes prontos de macOS, Windows e Linux saem do GitHub Actions a cada tag v* e ficam na página de releases. O macOS é a plataforma de referência. Os pacotes de Windows e Linux compilam e linkam, mas ainda não foram abertos numa máquina real.
Para gerar a partir do código, no macOS: um Mac com Apple Silicon, Rust estável e o Claude Code ou o GitHub Copilot. No Windows e no Linux, scripts/package.sh monta a pasta com os dois binários.
1. Gerar o app.
./scripts/bundle.sh
2. Copiar para Aplicativos. Apague a cópia anterior antes: copiar por cima invalida a assinatura.
rm -rf /Applications/Omnimind.app && ditto dist/Omnimind.app /Applications/Omnimind.app
This is the beginning of the README. Read the rest at the original. Read the full README ↗