Patricia
oficialO Patricia conecta seu cliente de IA a um workspace do Patricia. Leia a memória e os arquivos do workspace, inspecione integrações conectadas e delegue trabalho ao Patricia com controles de aprovação humana.
O que você pode fazer com Patricia MCP?
- Instale e configure o plugin — Peça à sua IA para instalar o plugin
patriciavia marketplace e faça login com OAuth ou um token pessoal. - Integre projetos automaticamente — O hook
SessionStartcumprimenta você e oferece a skill de integração uma vez por projeto quando um token está configurado. - Recupere memória relevante — O hook
UserPromptSubmitadiciona memória relevante a prompts elegíveis viasearch_memory, enviando até 300 caracteres. - Verifique integrações antes de executar ferramentas — O hook
PreToolUseverifica localmente a entrada deWebFetch,WebSearcheBashcontra um catálogo de provedores conhecido, sem chamadas de rede. - Proponha envios de memória — Após gravações locais de memória, o hook
PostToolUsesugereremembercom um escopo explícito, e o hookStoplembra você após sessões substanciais. - Gerencie configurações e arquivos — Use
get_settings,update_settings,list_fileseget_brand_kitpara ler ou alterar a configuração do workspace e os ativos da marca.
Documentação
[!NOTE] Este repositório é gerado a partir de
bettergroupinc/patricia-monorepoemplugins/patricia/. A automação sincroniza este espelho público. Commit de origem:147037702592109a4944cdbfb94bdcabb33f490f. Abra pull requests e issues no monorepo.
Plugin Claude Code patricia
Instale isto uma vez e um agente usará o servidor MCP da Patricia corretamente sem precisar ser instruído novamente.
Ele carrega três coisas.
- Orientação. Cinco habilidades cobrem os fundamentos da Patricia, integração, trabalho delegado, integrações e a ponte de memória.
- Uma conexão MCP. A instalação configura o servidor Streamable HTTP da Patricia para login via OAuth.
- Cinco hooks locais. Eles integram projetos, recuperam memória, verificam integrações primeiro e propõem envios de memória. Eles nunca gravam na Patricia.
Este é um plugin Claude Code distribuível. Uma pessoa o instala em sua própria máquina, e ele roda na sessão Claude Code dessa pessoa. Não é o catálogo de habilidades do produto Patricia, e nada nele roda dentro da Patricia.
Instalação
claude plugin marketplace add patricia-app/patricia-plugin
claude plugin install patricia@patricia
Em seguida, inicie uma nova sessão ou execute /reload-plugins.
Esse marketplace é https://github.com/patricia-app/patricia-plugin.. A automação gera cada arquivo nele a partir do monorepo da Patricia.
Nota para contribuidores: o monorepo é privado. Um contribuidor com acesso pode adicionar o próprio monorepo como marketplace, porque sua raiz .claude-plugin/marketplace.json aponta o plugin patricia para ./plugins/patricia.
Instale-o. Não o carregue com --plugin-dir. Um plugin carregado por diretório recebe suas habilidades, mas não seus hooks, então a orientação funcionaria e a ponte de memória nunca dispararia. Isso foi medido, não presumido: um hook de sondagem carregado via --plugin-dir nunca rodou, enquanto o mesmo hook declarado nas configurações do projeto rodou na mesma gravação no mesmo modo headless. O Claude Code registra o hooks/hooks.json de um plugin apenas para um plugin instalado e habilitado.
claude plugin details patricia relata o que foi aplicado:
Component inventory
Skills (5) delegating-work, integrations, memory-bridge, onboard, using-patricia
MCP servers (1) patricia
Hooks (5) SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop
Entrar no servidor MCP
O plugin configura o servidor MCP sem um cabeçalho armazenado. No primeiro uso, execute /mcp e selecione Patricia. Você também pode iniciar o fluxo OAuth a partir de um terminal:
claude mcp login plugin:patricia:patricia
O login OAuth do MCP e o token pessoal pat_mcp_ dos hooks são credenciais separadas. O OAuth sozinho não ativa os hooks que dependem de token.
Use um token como alternativa quando o OAuth não for adequado:
claude mcp add --transport http patricia https://api.patricia.app/v1/mcp \
--header "Authorization: Bearer $PATRICIA_MCP_TOKEN"
Um token pessoal pat_mcp_ identifica a pessoa responsável e pode gravar. Uma chave de API de locatário pat_live_ não identifica ninguém, então ela só lê, e não pode responder a list_skills ou list_integrations.
Dar um token pessoal aos hooks locais
O Python 3 deve estar disponível através do comando python3 para os hooks locais.
Crie uma chave pessoal pat_mcp_ na Patricia em Configurações > Desenvolvedor > Chaves pessoais. Em seguida, escolha uma configuração:
export PATRICIA_MCP_TOKEN="pat_mcp_..."
Ou escreva este arquivo em ~/.claude/patricia.json:
{
"token": "pat_mcp_..."
}
PATRICIA_MCP_TOKEN tem precedência sobre o arquivo. Um PATRICIA_MCP_TOKEN vazio desativa o fallback do arquivo. Esse comportamento é intencional. Ele permite que uma pessoa suspenda hooks autenticados sem mover o arquivo.
Hooks locais
Todos os cinco hooks estão ativados por padrão. Um arquivo de configuração ausente ou uma chave de hook ausente os mantém ativados. Uma configuração malformada ou ilegível os desativa. Defina a chave listada de um hook para o valor literal false em ~/.claude/patricia-plugin.json para desativar apenas esse hook.
Integração
- Quando e ação:
SessionStartroda para uma sessão nova ou retomada. Ele cumprimenta a pessoa conectada e oferece a habilidade de integração uma vez por projeto. - Custo: Com um token, ele faz uma chamada
whoami. O timeout de rede é de 3 segundos, e o timeout do hook é de 10 segundos. - Interruptor:
hooks.onboarding.enableddefinido comofalse. - Privacidade: Com um token, apenas a solicitação autenticada
whoamisai da máquina. Nenhum prompt, transcrição ou conteúdo do projeto sai através deste hook.
Recuperação
- Quando e ação:
UserPromptSubmitroda antes de cada prompt enviado. Ele ignora comandos, respostas curtas, confirmações e entrada somente de código. Ele adiciona memória relevante a prompts elegíveis. - Custo: Com um token e um prompt elegível, ele faz uma chamada
search_memory. O timeout de rede é de 3 segundos, e o timeout do hook é de 8 segundos. - Interruptor:
hooks.recall.enableddefinido comofalse. - Privacidade: Ele envia até 300 caracteres do prompt recolhido para a Patricia. Ele envia esse texto apenas quando um token está configurado.
Integrações primeiro
- Quando e ação:
UserPromptSubmitverifica um prompt.PreToolUseverifica a entrada deWebFetch,WebSearcheBashantes de a ferramenta rodar. Um catálogo local identifica provedores conhecidos. - Custo: Ele não faz chamadas MCP ou de rede e não precisa de token. O timeout do hook é de 8 segundos para um prompt e 5 segundos antes de uma chamada de ferramenta.
- Interruptor:
hooks.integrations_first.enableddefinido comofalse. - Privacidade: Nada sai da máquina. O hook verifica o prompt ou a entrada da ferramenta localmente.
Ponte de memória
- Quando e ação:
PostToolUseroda apósWrite,EditouMultiEdit. Ele percebe uma nota de memória local salva e propõeremembercom um escopo explícito. - Custo: Ele não faz chamadas MCP ou de rede. O timeout do hook é de 5 segundos.
- Interruptor:
hooks.memory_bridge.enableddefinido comofalse. O arquivo legado~/.claude/patricia-memory-bridge.jsontambém pode definirenabledcomofalse. - Privacidade: O script lê a nota salva localmente e não envia nada pela rede. Ele retorna o caminho da nota e o texto do lembrete ao Claude Code, sem o conteúdo da nota.
Lembrete de envio
- Quando e ação:
Stoproda quando o agente termina. Ele propõerememberapós uma gravação de memória local ou uma sessão substancial com uso de ferramentas sem uma gravação de memória na Patricia. - Custo: Ele não faz chamadas MCP ou de rede. O timeout do hook é de 8 segundos.
- Interruptor:
hooks.push_reminder.enableddefinido comofalse. - Privacidade: Ele lê no máximo 5 MB da transcrição local e não envia nada. Ele só roda quando um token está configurado, para que a chamada de memória proposta possa ter sucesso após a pessoa concordar.
Rede e credenciais
Este plugin se conecta a https://api.patricia.app/v1/mcp via Streamable HTTP.
A Patricia usa OAuth 2.1 com PKCE S256. Um fluxo OAuth concluído dá ao cliente um token de portador pessoal pat_mcp_.
O manifesto do plugin não contém credencial. O cliente envia o token de portador para api.patricia.app após o login.
Outros marketplaces
- O Cursor lê
plugin.jsonemcp.jsondeste pacote. - O OpenAI Codex e o ChatGPT leem
.codex-plugin/plugin.json. - Uma entrada de fonte remota não precisa de manifesto. O xAI lê
.claude-plugin/plugin.jsonquando presente.
Todos os pacotes de marketplace apontam para a única árvore skills/ neste pacote.
assets/icon.png é um ativo de marca de primeira parte da Patricia.
A ponte de memória propõe; ela nunca grava
Um hook é um comando de shell. Ele não contém um cliente MCP, não tem consentimento de ninguém e não pode ler uma nota e distinguir um fato de equipe de um privado. Um hook que enviasse cada nota local para um espaço de trabalho compartilhado colocaria notas específicas da máquina, descartáveis e privadas diante de toda a equipe, silenciosamente. Esse é o modo de falha que a ponte foi construída para evitar, não um recurso que ela adiou.
Então o hook faz uma coisa: ele injeta hookSpecificOutput.additionalContext dizendo ao agente que a nota é apenas local e que remember precisa de um scope. O agente decide o escopo, pergunta à sua pessoa e faz a chamada. O julgamento e a gravação permanecem no mesmo lugar.
Quatro portões o mantêm silencioso:
| Portão | Efeito |
|---|---|
Qualquer configuração suportada define o valor enabled da ponte como false | Silencioso. Sem esse valor, a ponte está ativada. |
| O caminho gravado está fora de um diretório de memória | Silencioso. |
| A gravação não ocorreu, ou o arquivo está vazio | Silencioso. |
O front matter da nota carrega patricia: skip | Silencioso. |
Ele também oferece uma determinada nota no máximo uma vez por sessão, então um Write seguido por uma execução de chamadas Edit produz um lembrete em vez de quatro. Esse registro vive em ~/.claude/patricia-memory-bridge-state/, um arquivo por sessão, podado após sete dias.
Ele não usa CLAUDE_PLUGIN_DATA para isso. Essa variável está presente no ambiente de um hook, mas não é confiavelmente o diretório do próprio plugin em execução: um hook de nível de projeto nesta máquina a viu definida como ~/.claude/plugins/data/codex-openai-codex, um diretório de dados de um plugin não relacionado.
Qual ferramenta uma gravação de memória realmente usa
O Claude Code 2.1.238 declara ferramentas chamadas memory_list, memory_read e memory_write. Nas máquinas contra as quais isso foi construído, notas de memória não são gravadas com elas: uma varredura das 120 transcrições de sessão mais recentes encontrou 49 chamadas Write e 35 Edit para ~/.claude/projects/*/memory/, e zero chamadas memory_write.
O matcher é, portanto, Write|Edit|MultiEdit. memory_write é deixado de fora de propósito. Adicionar um matcher para uma ferramenta cuja forma de payload não foi verificada compra um hook que silenciosamente nunca dispara e parece exatamente um que funciona. Adicione-o quando um payload real de memory_write tiver sido lido.
A orientação e a regra permanente do servidor são uma cópia, não duas
start_onboarding_import pode retornar um standing_rule_to_offer carregando ask_first, instruction e um bloco markdown dimensionado para caber no CLAUDE.md de outra pessoa. A habilidade não reformula esse bloco. Ela diz ao agente para chamar a ferramenta e usar o que vier de volta, para que o servidor permaneça o único dono dessa redação.
Buscá-lo no momento da instalação era a alternativa, e não funciona. O SKILL.md de um plugin é texto estático em um cache endereçado por conteúdo, não há etapa de instalação que possa reescrevê-lo, e um plugin cujo trabalho inclui configurar a Patricia não pode depender de uma conexão Patricia autenticada e funcional para renderizar suas próprias instruções. Ler a ferramenta no momento do uso dá a mesma cópia única sem nada disso.
Cada nome de ferramenta aqui é uma ferramenta real
Cada identificador de ferramenta entre crases neste plugin é verificado contra o registro de ferramentas do próprio servidor, a lista que o servidor constrói tools/list. A mesma verificação afirma que encontrou um conjunto não vazio de identificadores, então um extrator quebrado não pode passar ao não encontrar nada.
Nota para contribuidores: essa verificação é backend/api/tests/test_patricia_claude_plugin.py no monorepo da Patricia, e ela roda em cada mudança neste plugin.
Configurações e descoberta de arquivos
| Ferramenta | Uso |
|---|---|
get_settings | Listar configurações, ou ler chaves ou grupos selecionados com significados, valores e permissões. Qualquer credencial pode ler grupos do espaço de trabalho. |
update_settings | Alterar um grupo permitido através da operação do painel. Um token pessoal é necessário. |
list_files | Listar arquivos. A primeira página inclui pastas e contagens filtradas por visibilidade. |
get_brand_kit | Ler cores de marca, tipografia e logotipos. |
Use get_settings(keys=["company_profile"]) para o perfil da empresa.
As ferramentas de configurações compartilham o catálogo e as operações que a Patricia usa no chat.
Alterações de configurações no chat exigem um clique da pessoa solicitante.
Uma mudança de política de aprovação afeta execuções de console; ações críticas e exigidas pelo provedor mantêm seu piso de aprovação, e o público e o piso somente de clique mantêm os seus em qualquer ação sobre a qual a Patricia já pergunta.
Leituras de integração aguardam enquanto outra tarefa roda para a mesma pessoa.
Pesquise essa tarefa com get_task_status, ou aguarde ela terminar.
Após uma aprovação direta de integração, siga a frase next retornada por decide_approval.
Ela nomeia a ferramenta a ser chamada novamente com o mesmo tool_ref e argumentos.