{
  "markdown": "# QualiLab — leitura do corpus, dentro do seu assistente\n\nAponta o **Claude**, o **ChatGPT**, o **Gemini** ou o **Google Antigravity** que você já usa para o corpus de um projeto\n[QualiLab](https://github.com/LuizPF42/QualiLab): documentos, códigos, trechos codificados e\nmemos. O assistente passa a **pedir** o material em vez de recebê-lo colado numa caixa de texto.\n\n## Antes de instalar, o que isto faz e o que não faz\n\nO seu cliente vai avisar, em vermelho, que extensões de terceiros não são controladas pelo\nfornecedor. O aviso é justo, e a resposta é esta:\n\n- **Só leitura.** Nenhuma das ferramentas escreve. O seu `.qualilab` não é alterado, e nada é\n  gravado nele.\n- **Nenhuma chave de API.** Quem fala com o modelo é o cliente que você já paga. Este pacote não\n  vê chave nenhuma e não faz requisição de rede.\n- **Nenhum servidor no caminho.** O corpus sai do arquivo, na sua máquina, direto para o cliente.\n  Não há nuvem do QualiLab envolvida.\n- **A censura do pesquisador é aplicada no servidor.** Faixas marcadas como sensíveis chegam ao\n  modelo mascaradas com `█`, e a máscara preserva o comprimento do texto — as posições de caractere\n  continuam válidas. **Onde isso é uma fronteira real:** no chat do Claude Desktop (o `.mcpb`), em\n  que o modelo não alcança o disco e o servidor é o único caminho até o corpus. **Onde não é:** em\n  clientes agênticos (Cowork, Claude Code, ChatGPT/Codex, Antigravity) o assistente tem ferramentas de arquivo\n  próprias, e o `.qualilab` é um formato de trabalho que carrega o texto **cru** — se ele abrir o\n  arquivo por fora, lê sem máscara. Ali a censura é convenção respeitada, não tranca. Detalhes em\n  [PRIVACY.md](PRIVACY.md).\n- **Projeto que declara não usar IA não abre aqui.** Desde a 1.4.32, o QualiLab deixa desligar os\n  recursos de IA de um projeto (Projeto → Recursos de IA), e essa decisão viaja dentro do\n  `.qualilab`. Este pacote a respeita: com **um arquivo só**, ele sobe e toda ferramenta responde\n  explicando o motivo; com **uma pasta**, a lista continua completa e quem recusa é a abertura —\n  os outros projetos seguem abrindo. Existe porque este servidor entrega corpus ao modelo a cada\n  turno, que é exatamente o que aquela chave desliga no aplicativo. Como a censura, **não é uma\n  tranca**: quem reativar a IA no próprio QualiLab e exportar de novo, passa.\n- **Só lê os arquivos que você separou.** O acesso é à pasta que você indicar (por padrão\n  `QualiLab`, na sua pasta de usuário), e só a arquivos `.qualilab` dentro dela.\n\n## Requisito, e ele não vale para todos\n\n| Cliente | Instalação | Precisa de Node.js? |\n| :-- | :-- | :-- |\n| **App do Claude** — chat **e** Cowork | arquivo `.mcpb` (Releases) | **não** — o app fornece o runtime |\n| ChatGPT (app) / Codex | marketplace deste repo | **não** — o app provisiona o runtime dele |\n| Claude Code no terminal | marketplace deste repo | **sim**, `node` no PATH |\n| **Gemini CLI** | `gemini extensions install` | **já está lá** — o Gemini CLI é um programa Node |\n| Gemini Code Assist (VS Code / JetBrains) | um bloco em `settings.json` | **sim**, `node` no PATH |\n| **Google Antigravity** (IDE / CLI / 2.0) | copiar a pasta do plugin | **sim**, `node` no PATH |\n| Gemini (app de chat, gemini.google.com) | **não dá** — veja abaixo | — |\n\n**Se você usa o aplicativo do Claude, instale a extensão `.mcpb` e pare por aí.** Ela atende as\nduas superfícies do app — o **chat** e o **Cowork** — e não exige instalar nada: o runtime vem\njunto com o Claude Desktop. (Medido: uma extensão instalada em *Configurações → Extensões* responde\ntambém nas sessões de modo agente.) O marketplace deste repositório **não** dá ferramenta nenhuma\nao chat, então ele não substitui a extensão.\n\nO marketplace serve dois casos: o **ChatGPT/Codex** — onde o app resolve o runtime sozinho, também\nsem instalar nada — e o **Claude Code no terminal**, que é o único caminho em que o `node` precisa\nestar no PATH do sistema. Se for o seu caso e você não tem Node, instale a versão LTS em\n[nodejs.org](https://nodejs.org) e **reinicie o computador** (ou pelo menos saia e entre de novo na\nsua conta).\n\n> Reiniciar só o aplicativo pode não bastar, e o sintoma engana: o plugin aparece instalado,\n> mas o assistente diz que não tem as ferramentas. É que cada programa herda o PATH de quem o\n> abriu, e o Windows não avisa os programas já em execução de que o PATH mudou — inclusive o\n> Explorer, que é quem abre tudo. Depois de reiniciar, confira num terminal novo que `node -v`\n> responde.\n\n**Não quer reiniciar, ou não quer instalar o Node?** O pacote traz um lançador de resgate para\nWindows que procura o Node onde ele costuma estar, em vez de depender do PATH — e que aproveita o\nruntime que o **app do ChatGPT** instala sozinho, se você o tiver. Na pasta do plugin instalado,\ntroque em `mcp-claude.json` (Claude) ou `mcp-codex.json` (Codex):\n\n```json\n\"command\": \"cmd.exe\",\n\"args\": [\"/d\", \"/s\", \"/c\", \"${CLAUDE_PLUGIN_ROOT}\\\\server\\\\run-windows.cmd\"]\n```\n\nNo Codex, use `\".\\\\server\\\\run-windows.cmd\"` (ele não interpola a variável). Depois reinicie o\ncliente. O arquivo é um `.cmd` de vinte linhas: dá para ler antes de confiar.\n\n## Instalar\n\n### Aplicativo do Claude — chat e Cowork (recomendado, sem instalar nada)\n\nBaixe o `qualilab.mcpb` da [última Release](../../releases/latest) e instale em\n**Configurações → Extensões → Configurações avançadas**. Só isso: as ferramentas passam a existir\ntanto no chat quanto no Cowork, e nenhum runtime precisa ser instalado.\n\n> Duplo clique no arquivo e arrastar para a janela **não funcionam** na versão do Claude Desktop\n> distribuída pela Microsoft Store, e não é defeito do pacote — aquele pacote não declara\n> associação de tipo de arquivo. Use o menu.\n\n> **A extensão não se atualiza sozinha.** Um `.mcpb` instalado deste jeito é uma cópia local: nada\n> nele aponta de volta para este repositório, então versão nova não chega. Para atualizar, baixe o\n> `.mcpb` da [última Release](../../releases/latest) e instale por cima — vale a pena conferir de\n> vez em quando. (O plugin do Claude Code/Cowork e do Codex, abaixo, **se atualiza**: lá quem\n> entrega versão nova é o marketplace.)\n\n### Claude Code no terminal\n\nÉ o único caminho que exige `node` no PATH (veja a tabela acima). No aplicativo do Claude, prefira\na extensão.\n\nEm **Adicionar marketplace**, o campo **URL** é `LuizPF42/QualiLab-plugin` — depois\n**Sincronizar**, e instale o plugin `qualilab`. Na linha de comando:\n\n```\n/plugin marketplace add LuizPF42/QualiLab-plugin\n/plugin install qualilab@qualilab\n```\n\nDepois, `/reload-plugins` (ou reinicie a sessão).\n\n### ChatGPT (app) / Codex\n\nEm **Configurações → Modo desenvolvedor → Plugins → Adicionar marketplace de plugins**:\n\n- **Origem**: `LuizPF42/QualiLab-plugin`\n- **Referência do Git**: `main`\n- **Caminhos esparsos**: deixe **vazio** — o marketplace está na raiz do repositório.\n\nDepois, instale o plugin `qualilab`. Na linha de comando:\n\n```\ncodex plugin marketplace add https://github.com/LuizPF42/QualiLab-plugin\ncodex plugin add qualilab@qualilab\n```\n\n**Reinicie o app depois de instalar.** A configuração dos servidores é lida só na inicialização,\ne quase todo sintoma de \"não apareceu ferramenta nenhuma\" é isso.\n\n### Gemini CLI\n\nEste repositório também é uma **extensão do Gemini CLI** — o `gemini-extension.json` está na raiz,\nque é onde o instalador procura. Uma linha:\n\n```\ngemini extensions install https://github.com/LuizPF42/QualiLab-plugin\n```\n\nDepois reinicie o `gemini`. Não há Node a instalar: o Gemini CLI **é** um programa Node, então o\nruntime que este servidor precisa já veio com ele — a seção do PATH acima não vale aqui.\n\nAlém das ferramentas, a extensão traz o vocabulário (o `GEMINI.md`, que é a mesma coisa que a\n*skill* entregue ao Claude Code e ao Codex) e os pontos de partida como comandos de barra:\n`/qualilab` — para quem abre a conversa sem saber o que pedir —, `/explorar_projeto`,\n`/mapear_codebook` e `/evidencias_de_codigo`.\n\nPara servir uma pasta que não seja `~/QualiLab`, edite o `gemini-extension.json` da extensão\ninstalada (a pasta que o instalador criou dentro de `~/.gemini/extensions/`) e acrescente o\ncaminho aos `args`:\n\n```json\n\"args\": [\"${extensionPath}${/}plugins${/}qualilab${/}server${/}main.mjs\", \"C:\\\\Users\\\\voce\\\\Documentos\\\\corpus\"]\n```\n\n### Gemini Code Assist (VS Code / JetBrains)\n\nO Code Assist lê servidores MCP de `~/.gemini/settings.json` — ou de `.gemini/settings.json` na raiz\ndo projeto, que dá para versionar e compartilhar com a equipe. Clone este repositório onde quiser e\naponte para ele:\n\n```json\n{\n  \"mcpServers\": {\n    \"qualilab\": {\n      \"command\": \"node\",\n      \"args\": [\"/caminho/para/QualiLab-plugin/plugins/qualilab/server/main.mjs\"]\n    }\n  }\n}\n```\n\nEste é o único caminho do Gemini em que o `node` precisa estar no PATH do sistema — vale a seção\nsobre reiniciar o computador, mais acima. (O Code Assist compartilha a pasta `~/.gemini` com o\nGemini CLI, então a extensão instalada acima pode acabar valendo para os dois; o bloco em\n`settings.json` é o caminho documentado, e é o que eu recomendo se quiser garantia.)\n\n### Google Antigravity (IDE / CLI / 2.0)\n\nO Antigravity descobre plugins automaticamente na pasta global de configurações ou no diretório\n`.agents/` do seu projeto.\n\n**Instalação global (disponível em todos os projetos):**\n\nClone ou copie a pasta `plugins/qualilab` do repositório para a sua configuração do Antigravity:\n\n- **Windows**: `C:\\Users\\<você>\\.gemini\\config\\plugins\\qualilab`\n- **Linux / macOS**: `~/.gemini/config/plugins/qualilab`\n\n**Instalação no projeto (compartilhada via repositório):**\n\nCopie `plugins/qualilab` para a pasta `.agents/plugins/qualilab` na raiz do seu projeto.\n\nO Antigravity carrega a skill `qualilab` e inicia o servidor MCP via `mcp_config.json`\nautomaticamente. Vale a seção sobre o `node` no PATH, mais acima.\n\n### Gemini no navegador (gemini.google.com) — o que **não** dá\n\nO app de chat do Gemini aceita apps personalizados, mas só pela **URL de um servidor MCP**: um\nendereço na internet, que o Google alcança. Este pacote não tem endereço nenhum — ele é um programa\nque roda na sua máquina e conversa pela entrada e saída padrão, e é justamente por isso que o\ncorpus não sai do seu computador.\n\nPara caber ali, o `.qualilab` teria de ficar atrás de um servidor público, e as três promessas do\ncomeço deste arquivo cairiam juntas: passaria a existir um servidor no caminho, o corpus sairia da\nsua máquina, e a censura do pesquisador dependeria de uma máquina que não é a sua. **Não vamos\nfazer isso**, e é melhor dizer isso do que oferecer um túnel e chamar de compatibilidade.\n\nSe você quer o Gemini lendo o seu corpus hoje, o caminho é o **Gemini CLI**, acima: mesma conta,\nmesmo modelo, e o corpus continua onde está.\n\n## Usar\n\n1. No QualiLab, com o projeto aberto: **exportar ▾ → salvar `.qualilab`**.\n2. Deixe o arquivo na pasta **`QualiLab`** da sua pasta de usuário (`~/QualiLab`, ou\n   `C:\\Users\\<você>\\QualiLab`). Crie a pasta se não existir.\n3. Na conversa, peça para listar os projetos e abrir o que interessa. Com um projeto só na pasta,\n   ele abre sozinho.\n\nCada projeto é lido **uma vez, quando é aberto**: o que o assistente enxerga é o retrato do\nmomento em que você exportou. Mudou o projeto no app? Exporte de novo e peça para abrir outra vez\n— sem reinstalar nada.\n\nSe o assistente responder que **o projeto declara não usar IA**, não é defeito: aquele projeto tem\nos recursos de IA desligados no QualiLab, e o pacote respeita isso (veja a lista acima). Para\nmudar, reative em **Projeto → Recursos de IA** no aplicativo e exporte o `.qualilab` de novo.\n\n### O que o assistente ganha\n\n`list_projects` · `open_project` · `get_project` · `list_documents` · `get_document_content` ·\n`search_corpus` · `list_codes` · `list_codings` · `list_memos`\n\nSão as mesmas ferramentas da tela **MCP/RAG** do QualiLab — literalmente o mesmo código, extraído\ndo app. O que muda é quem paga a conversa: na tela do app, você traz a sua chave de API; aqui,\nquem fala com o modelo é a assinatura que você já tem.\n\nJunto delas vai o **vocabulário**: o pacote ensina ao assistente que código com filhos é família e\nnão recebe trechos direto (por isso as contagens vêm em dois números), que camada individual não é\na final, e que faixa de `█` é censura deliberada — não lacuna do corpus, e não algo a inferir. No\nplugin do Claude Code e do Codex isso é uma *skill*; na extensão do Gemini CLI é o `GEMINI.md`;\nna extensão do Claude Desktop, viaja junto do servidor.\n\nE se você abrir a conversa sem saber o que pedir, há três pontos de partida prontos: **explorar\nprojeto**, **mapear o esquema de códigos** e **reunir evidências de um código** — cada um já na\nordem certa de chamadas. Eles aparecem na interface da extensão do Claude Desktop, e como\ncomandos de barra no Gemini CLI.\n\nElas devolvem **janelas** do corpus, não o corpus inteiro: o assistente lê trechos, e boas\nrespostas dependem de ele dizer de onde tirou o que afirma. As descrições das ferramentas pedem\nisso a ele; vale conferir mesmo assim.\n\n## Licença e origem\n\nMIT. Este repositório é **gerado**: o servidor e os manifestos vêm de um repositório privado, onde\no núcleo é extraído do próprio código do aplicativo QualiLab — as duas portas de leitura rodam\nliteralmente o mesmo código, e a máscara de censura não é reimplementada em lugar nenhum. Cada\nmudança é verificada ali por um cliente MCP real. Não edite os arquivos daqui — a próxima\npublicação sobrescreve.\n",
  "bytes": 13447,
  "sha": "b5a62f796adbc39f534e03519425c18b833346a210a36e53b4af69d438701791",
  "repo_slug": "luizpf42/qualilab-plugin",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_luizpf42_qualilab_plugin_a2120124/readme"
}