Plugins
Plugins empacotam capacidades reutilizáveis do Jarvis Code CLI em unidades instaláveis — eles podem adicionar Agent Skills, agentes personalizados, carregar automaticamente uma skill no início da sessão, contribuir instruções de system prompt e declarar servidores MCP para fornecer capacidades reais de ferramenta. São ideais para compartilhar fluxos de trabalho com um time, conectar serviços externos ou instalar extensões dos plugins oficiais.
Instalação e gerenciamento
Execute /plugins na TUI para abrir o gerenciador de plugins. Ele é um painel único com quatro abas, alternadas com Tab / Shift-Tab:
- Installed: gerencia os plugins instalados
- Official: plugins de marketplace próprios e capacidades embutidas
- Curated: plugins de terceiros avaliados para o marketplace padrão
- Custom: instala a partir de uma URL
Teclas comuns:
| Tecla | Ação |
|---|---|
Tab / Shift-Tab | Alterna entre as abas Installed / Official / Curated / Custom |
Space | Habilita ou desabilita o plugin instalado selecionado (aba Installed) |
D | Remove o plugin instalado selecionado (aba Installed) |
M | Gerencia os servidores MCP do plugin selecionado (aba Installed) |
R | Recarrega o installed.json e todos os manifestos (aba Installed) |
Enter | Aba Installed: instala a atualização disponível, ou vê os detalhes se estiver atualizado · Abas Official/Curated: instala ou atualiza · Aba Custom: instala |
I | Vê os detalhes do plugin (aba Installed) |
Esc | Volta ou cancela |
Você também pode usar comandos de barra diretamente:
| Comando | Descrição |
|---|---|
/plugins | Abre o gerenciador interativo de plugins |
/plugins list | Lista os plugins instalados |
/plugins install <path-or-url> | Instala a partir de um diretório local, URL de zip ou URL de repositório do GitHub |
/plugins marketplace [source] | Navega no marketplace oficial, ou informa um caminho ou URL de JSON de marketplace personalizado |
/plugins info <id> | Vê os detalhes e diagnósticos do plugin |
/plugins enable <id> | Habilita um plugin |
/plugins disable <id> | Desabilita um plugin |
/plugins remove <id> | Remove um plugin (exige confirmação) |
/plugins reload | Recarrega o installed.json e todos os manifestos de plugin |
/plugins mcp enable <id> <server> | Habilita um servidor MCP declarado por um plugin |
/plugins mcp disable <id> <server> | Desabilita um servidor MCP declarado por um plugin |
Instalar a partir do GitHub
Use /plugins install <url> para instalar direto de um repositório do GitHub. Quatro formas de URL são suportadas:
https://github.com/<owner>/<repo>: instala o release mais recente; recorre ao branch padrão se não houver releasehttps://github.com/<owner>/<repo>/tree/<ref>: instala um branch, tag ou SHA de commit curto específicohttps://github.com/<owner>/<repo>/releases/tag/<tag>: fixa em uma tag específicahttps://github.com/<owner>/<repo>/commit/<sha>: fixa em um commit específico
As requisições de rede passam apenas por redirecionamentos de github.com e downloads de codeload.github.com; a api.github.com não é chamada.
Observações
- Mudanças de plugin valem depois de
/reloadou em novas sessões. Após instalar, habilitar, desabilitar ou remover um plugin, execute/reloadou/new; a sessão atual não é atualizada sozinha. - Instalações locais são copiadas para
$JARVIS_CODE_HOME/plugins/managed/<id>/, e o CLI sempre roda a partir dessa cópia gerenciada. Editar o diretório de origem depois da instalação não tem efeito; é preciso reinstalar. - Remover um plugin apaga apenas o registro de instalação; a cópia gerenciada e os arquivos de origem permanecem em disco.
- Plugins hoje são instalados por usuário e valem para todos os projetos; escopo de instalação por projeto ainda não é suportado.
JSON de marketplace personalizado
Informe um caminho ou URL de JSON de marketplace personalizado em /plugins marketplace <source>, ou defina JARVIS_CODE_PLUGIN_MARKETPLACE_URL para sobrescrever o catálogo padrão. Cada entrada do array plugins precisa de um id e de um source (caminho local, URL de zip ou URL do GitHub):
{
"version": "2",
"plugins": [
{
"id": "my-plugin",
"displayName": "My Plugin",
"source": "./my-plugin"
}
]
}Plugins oficiais
A aba Official lista as entradas próprias do marketplace padrão (plugins/marketplace.json no repositório) mais as capacidades embutidas do produto. O conjunto atual é:
| Entrada | Id | O que faz |
|---|---|---|
| Image Generation | image_generation | Cria imagens a partir de prompts de texto |
| Audio Generation | audio_generation | Gera fala e efeitos sonoros personalizados a partir de texto |
| Jarvis Documents | jarvis-documents | Cria e edita arquivos PDF, XLSX, DOCX e PPT, com validadores e renderizadores nativos embutidos |
| Kimi WebBridge | jarvis-webbridge | Deixa o agente conduzir o seu próprio navegador para resolver tarefas na web |
| Kimi Computer Use | kimi-cu | Deixa o agente operar seus aplicativos de desktop (macOS e Windows) |
O Jarvis Documents vem dentro do pacote do CLI e é instalado dessa cópia local na inicialização, então não precisa de download do marketplace. As demais entradas são instaladas sob demanda pela aba Official.
A aba Curated lista plugins de terceiros que vêm no mesmo marketplace padrão: Superpowers, Vercel Plugin, Modern Web Guidance e Tencent CloudBase.
Instalação e atualização
Todos os plugins oficiais compartilham o mesmo fluxo de instalação e atualização:
- Execute
/pluginse pressioneTabpara selecionar Official - Encontre o plugin desejado e pressione
Enterpara instalar - Concluída a instalação, execute
/reloadou/newpara ativá-lo
Nota
O Kimi WebBridge instala em duas partes: além dos passos acima, você também precisa instalar a extensão de navegador antes de ele funcionar.
Plugins oficiais não se atualizam automaticamente — quando há atualização disponível, você é avisado na próxima vez que usar a versão antiga. Para atualizar, repita os passos de instalação acima.
Kimi WebBridge v1.11.3
O Kimi WebBridge deixa a IA conduzir seu navegador diretamente — não é um emulador nem um crawler, mas o navegador que você usa todo dia, com suas sessões de login e cookies. A IA pode abrir páginas, ler conteúdo, clicar em botões, preencher formulários e tirar capturas de tela como você faria, tirando das suas mãos as operações repetitivas na web.
Instalar a extensão de navegador
Depois de instalar por /plugins, você também precisa da extensão Kimi WebBridge no navegador para a IA poder conduzi-lo. Há duas formas de instalar:
Opção 1: instalar por uma loja (recomendado)
Abra a página da Chrome Web Store ou da Edge Add-ons e clique em adicionar.
Opção 2: instalar manualmente
Use esta opção quando não conseguir acessar as lojas:
Baixe o pacote da extensão e descompacte-o
Digite
chrome://extensions/na barra de endereços para abrir a página de extensões e ative o Modo do desenvolvedor no canto superior direito
Clique em Carregar sem compactação no canto superior esquerdo e selecione a pasta
jarvis-webbridge-extensiondescompactada
Instalada, o ícone do Kimi WebBridge aparece na barra de ferramentas do navegador. Ver o ícone significa que a instalação deu certo, e a IA já pode trabalhar nas páginas web por você.

O que dá para fazer
- Automação web: basta dizer o que você precisa — a IA percorre as páginas, preenche formulários, lê conteúdo e tira capturas de tela por você
- Pesquisa de tendências sociais: percorre automaticamente os assuntos em alta, abre os posts mais curtidos um a um para capturar a tela e extrair os pontos-chave, e organiza tudo em uma biblioteca de pesquisa com sugestões de tema
- Coleta de vagas: filtra posições em sites de recrutamento por palavra-chave, cidade e tipo de vaga, e organiza títulos, links, empresas, salários e formas de candidatura em uma tabela
- Análise competitiva: questiona vários produtos de IA em lote e reúne as respostas para montar relatórios comparativos
- Comparação de preços de voos: consulta o mesmo itinerário em várias plataformas de viagem, registra companhias, horários de partida e chegada e links ordenados por preço, e sugere as melhores opções
Kimi Computer Use v0.5.4
O Kimi Computer Use deixa a IA operar seus aplicativos de desktop diretamente, clicando, arrastando, rolando e digitando. A versão macOS trabalha silenciosamente em segundo plano sem tomar seu mouse (algumas ações de popup ainda podem trazer um aplicativo para a frente); veja as observações abaixo para saber como a versão Windows difere.
Autorização (macOS)
Na primeira vez que você usa o Kimi Computer Use depois de instalar, ele mostra uma janela de autorização — basta seguir os avisos:
- Clique em Authorize ao lado de Accessibility e Screen Recording e habilite as duas permissões nas Configurações do Sistema — a primeira permite executar cliques, digitação e rolagem; a segunda permite ler o conteúdo da tela e localizar elementos de interface
- Ative a chave Jarvis Code em "Connect local agents" e reinicie o Jarvis Code para valer

Observações sobre a versão Windows
A versão Windows (WinCU) instala de forma diferente da macOS: execute /plugins install https://cdn.kimi.com/kimi-computer-use-windows/latest/kimi-cu-win-plugin.zip no Jarvis Code e reinicie depois da instalação. Algumas coisas a saber antes de usar:
- Ela pode tomar seu mouse e teclado por instantes: diferente da versão macOS, a versão Windows não consegue injetar entrada em segundo plano de forma confiável; ela pode ativar brevemente a janela alvo e usar seu mouse e teclado reais durante as ações
- Requisitos de sistema: Windows 10 versão 1903 (Build 18362) ou posterior, ou Windows 11, x64; é necessária uma sessão de desktop interativa real, e o Windows Server precisa da Desktop Experience
- Sem permissões extras: o Windows não exige as concessões de Accessibility e Screen Recording que o macOS exige
- Mesmo nível de privilégio: se o aplicativo alvo roda como administrador, o KimiCU precisa rodar no mesmo nível de privilégio
O que dá para fazer
- Organizar e inserir informação: peça à IA para reunir informação espalhada em notas, planilhas ou no seu aplicativo de anotações, em vez de digitar tudo à mão
- Percorrer fluxos de site e de aplicativo: depois de mudar uma página, deixe a IA percorrer os fluxos principais e capturar a tela em cada passo para confirmar que renderização e navegação funcionam
- Lidar com operações repetitivas: abrir, copiar, colar e conferir repetidamente pode rodar silenciosamente em segundo plano, sem tomar seu mouse
- Executar tarefas de passos fixos: para fluxos com passos claros, descreva-os e a IA segue; por exemplo, peça para abrir um player de música e tocar uma faixa específica
- Lidar com software sem API: muitas ferramentas profissionais e sistemas internos não têm CLI nem API; o que antes exigia seu clique agora pode ser entregue à IA, como cortar os três primeiros segundos de um clipe em um editor de vídeo e exportá-lo
Nota
Não entregue nada que envolva dinheiro, contas ou publicação, como pagamentos e transferências, apagar arquivos importantes, trocar senhas ou publicar conteúdo. Para julgar se uma tarefa é adequada, verifique três coisas: o resultado é verificável, a ação é reversível e o risco de errar é baixo.
Manifesto de plugin
Um plugin é um diretório ou arquivo zip contendo um manifesto. O manifesto pode ficar em um destes dois lugares:
<plugin_root>/jarvis.plugin.json
<plugin_root>/.kimi-plugin/plugin.jsonQuando os dois arquivos existem, o jarvis.plugin.json tem precedência e o arquivo sombreado é reportado como diagnóstico. Nenhum outro nome de arquivo é reconhecido: um plugin sem um desses dois manifestos falha ao carregar.
Exemplo:
{
"name": "acme-finance",
"version": "1.0.0",
"description": "Fluxos de dados e análise financeira para o Jarvis Code CLI",
"skills": "./skills/",
"systemPromptPath": "./SYSTEM.md",
"sessionStart": {
"skill": "using-finance"
},
"interface": {
"displayName": "Acme Finance",
"shortDescription": "Dados de mercado e fluxos de análise financeira"
}
}Campos suportados:
| Campo | Descrição |
|---|---|
name | Obrigatório; serve como id do plugin. Precisa casar com [a-z0-9][a-z0-9_-]{0,63} |
version, description, keywords, author, homepage, license | Metadados de exibição |
interface | Campos mostrados em /plugins: displayName, shortDescription, longDescription, developerName, websiteURL |
skills | Um ou mais caminhos ./; precisam estar dentro da raiz do plugin. Quando omitido, o SKILL.md do diretório raiz é tratado como uma raiz de skill única |
agents | Um ou mais caminhos ./; precisam estar dentro da raiz do plugin e apontar para diretórios com arquivos de agente. Quando omitido, o diretório agents/ na raiz do plugin (se existir) é usado automaticamente |
sessionStart.skill | Carrega a skill de plugin informada no agente principal quando uma sessão nova ou retomada começa |
skillInstructions | Instruções adicionais anexadas sempre que uma skill deste plugin é carregada |
systemPrompt | Instruções inline contribuídas ao system prompt do agente enquanto o plugin está habilitado |
systemPromptPath | Um caminho ./ para um arquivo de texto UTF-8 com instruções de system prompt; combinado depois de systemPrompt quando ambos existem |
mcpServers | Declarações de servidor MCP; habilitadas por padrão, podem ser desabilitadas em /plugins |
hooks | Regras de hook executadas em eventos de ciclo de vida enquanto o plugin está habilitado; veja Hooks em plugins |
commands | Um ou mais caminhos ./ apontando para um diretório ou arquivo .md; registra os arquivos Markdown como comandos de barra. Veja Comandos de barra de plugin |
Campos de execução não suportados, como tools, apps, inject e configFile, aparecem como diagnósticos e são ignorados.
Instruções de system prompt
Use systemPrompt para uma instrução inline curta, ou systemPromptPath para manter instruções mais longas em um arquivo dentro da raiz do plugin. Se os dois campos existirem, o texto inline aparece primeiro, seguido do conteúdo do arquivo. O conteúdo do arquivo é lido quando o plugin é instalado ou recarregado, então edições só valem depois de /plugins reload. Por exemplo:
{
"name": "code-review",
"systemPromptPath": "./SYSTEM.md"
}Contribuições de system prompt valem nos dois engines de agente. A TUI interativa e o jarvis -p usam o engine v2 por padrão; definir JARVIS_CODE_LEGACY_FLAG=1 roteia as superfícies locais do CLI para o engine legado.
Cada campo — o systemPrompt inline e o arquivo de systemPromptPath — é limitado a 32 KB (bytes UTF-8): conteúdo acima disso é ignorado e reportado nos diagnósticos do plugin. Entre todos os plugins habilitados, uma construção de prompt injeta no máximo 64 KB de instruções; contribuições além do orçamento são puladas com um aviso, inclusive quando um único plugin ultrapassa esse orçamento somando texto inline e arquivo.
Sessões novas e agentes recém-criados leem as contribuições dos plugins habilitados no momento. Uma requisição em andamento mantém o system prompt existente. O /plugins reload atualiza a lista de skills de plugin e pede reconstrução de prompt para os agentes ativos; use-o quando precisar que a mudança convirja deliberadamente antes do próximo turno. No engine v2, instalar, habilitar, desabilitar ou remover um plugin atualiza o catálogo imediatamente, e uma reconstrução de prompt posterior — por exemplo após uma compactação ou uma mudança de política de ferramentas — pode incorporar as novas seções. O engine legado mantém o instantâneo de plugins de cada sessão ativa até /plugins reload ou uma nova sessão. Uma sessão retomada parte do prompt persistido, e reconstruções posteriores seguem o comportamento específico de cada engine.
O prompt embutido do agente inclui automaticamente as instruções dos plugins habilitados. Um SYSTEM.md ou arquivo de agente personalizado é dono do próprio template, então inclua ${plugin_sections} onde as instruções contribuídas por plugins devem aparecer. Se o template personalizado inclui ${base_prompt} e esse padrão efetivo já contém o bloco de plugins, não adicione ${plugin_sections} de novo. Veja Agentes personalizados e SYSTEM.md para a tabela completa de variáveis.
Comandos de barra de plugin
Comandos de barra salvam um prompt que você usa com frequência como um /comando, para você acioná-lo digitando o comando em vez de reescrever tudo.
Veja um exemplo mínimo de ponta a ponta. A estrutura de diretórios do plugin:
acme-finance/
jarvis.plugin.json
commands/
report.mdNo manifesto (jarvis.plugin.json), o campo commands aponta para onde ficam os arquivos de comando:
{
"name": "acme-finance",
"version": "1.0.0",
"commands": "./commands/"
}O arquivo de comando commands/report.md. O bloco entre as duas linhas --- no topo é o frontmatter (metadados que descrevem o comando); tudo abaixo é o prompt enviado ao agente:
---
description: Busca e resume os últimos números financeiros de uma ação
---
Busque os últimos números financeiros de $ARGUMENTS e resuma receita, lucro e riscos principais.Depois de instalar e habilitar o plugin, digite isto no chat:
/acme-finance:report TSLAO Jarvis Code substitui $ARGUMENTS no corpo por TSLA e então executa o prompt. Os três detalhes abaixo cobrem cada etapa.
Declarar comandos (o campo commands)
O commands aceita um único caminho ./ ou um array de caminhos, cada um apontando para um diretório ou arquivo .md dentro da raiz do plugin:
- Apontando para um diretório: coleta todo arquivo
.mdsob ele recursivamente; cada um vira um comando. - Apontando para um único arquivo
.md: registra apenas aquele. - Apontando para um arquivo que não seja
.mdou para um caminho inexistente: aparece como diagnóstico (mostrado no painel/plugins) e é ignorado.
Escrever um arquivo de comando
Um arquivo de comando tem duas partes: um frontmatter opcional (os metadados entre as duas linhas --- no topo, onde você define name e description) e o corpo (o prompt depois do ---). Quando um campo é omitido, ele recorre ao seguinte:
name(o nome do comando): derivado do caminho do arquivo relativo ao caminho declarado emcommands(sem.md, usando/como separador), por exemplocommands/frontend/component.md→frontend/component. Umnamedefinido no frontmatter tem precedência.description(mostrada na lista de comandos): a primeira linha não vazia do corpo (truncada além de 240 caracteres); se o corpo também estiver vazio,No description provided.é exibido.
Executar comandos e passar argumentos
Comandos recebem como prefixo o id do plugin (o namespace deles) e são registrados como <plugin>:<command>, então o comando acima é na verdade /acme-finance:report — isso evita colisão entre comandos de mesmo nome de plugins diferentes.
O que você digita depois do comando substitui $ARGUMENTS no corpo (acima, TSLA substitui $ARGUMENTS). Se o corpo não tem $ARGUMENTS mas você passa argumentos mesmo assim, eles não são descartados — são acrescentados ao fim do corpo como ARGUMENTS: <o que você digitou>.
Skills e início de sessão
Skills de plugin usam o mesmo formato SKILL.md das Agent Skills comuns. Uma estrutura típica de diretórios:
my-plugin/
jarvis.plugin.json
skills/
using-my-plugin/
SKILL.md
another-workflow/
SKILL.mdO sessionStart.skill carrega uma skill de plugin no agente principal no início da sessão, o que o torna adequado para instruções de inicialização, regras de fluxo de trabalho ou mapeamento de terminologia de outras ferramentas para o Jarvis Code CLI. Ele apenas injeta texto; não executa código.
Independentemente de como uma skill é carregada (sessionStart.skill, /skill:<name> ou invocação automática pelo modelo), o skillInstructions aparece junto da skill daquele plugin.
Agentes de plugin
Um plugin pode trazer agentes personalizados: declare um ou mais diretórios ./ no campo agents do manifesto (ou simplesmente coloque um diretório agents/ na raiz do plugin). Os arquivos de agente ali usam o mesmo formato dos agentes personalizados e, enquanto o plugin está habilitado, são descobertos automaticamente e podem receber delegação do agente principal como subagentes.
my-plugin/
jarvis.plugin.json
agents/
reviewer.mdAgentes de plugin ficam abaixo de todas as outras origens de arquivo: em caso de colisão de nome, agentes de nível de usuário, extras, de projeto e de --agent-file vencem o fornecido pelo plugin, e substituir um agente embutido ainda exige um override: true explícito no frontmatter. Depois de instalar, habilitar, desabilitar ou remover um plugin, a lista de agentes é atualizada em uma nova sessão (ou com /reload); no engine v2 a sessão ativa também é atualizada depois de /plugins reload.
Servidores MCP em plugins
Quando um plugin precisa de capacidades reais de ferramenta, ele pode declarar mcpServers no manifesto, reutilizando o esquema do MCP.
Servidor stdio (comando local):
{
"mcpServers": {
"finance": {
"command": "uvx",
"args": ["acme-finance-mcp"]
}
}
}Servidor HTTP (serviço remoto):
{
"mcpServers": {
"docs": {
"url": "https://example.com/mcp"
}
}
}Em servidores stdio, o command pode ser um comando no PATH ou um caminho iniciado por ./ dentro da raiz do plugin. O cwd também precisa começar com ./ e estar dentro da raiz do plugin; caso contrário, o servidor é ignorado.
Servidores MCP de plugin iniciam depois de /reload ou em novas sessões. Para habilitar ou desabilitar um servidor:
/plugins mcp disable acme-finance finance
/reload
/plugins mcp enable acme-finance finance
/reloadHooks em plugins
Um plugin pode declarar regras de hook no manifesto, executadas em eventos de ciclo de vida enquanto o plugin está habilitado. Cada entrada usa os mesmos campos de uma regra [[hooks]] no config.toml (event, matcher, command, timeout):
{
"hooks": [
{
"event": "PreToolUse",
"matcher": "Bash",
"command": "node ./hooks/check-bash.mjs",
"timeout": 5
}
]
}Hooks de plugin reutilizam o mesmo mecanismo dos hooks globais — veja Hooks para a lista de eventos, o payload JSON no stdin e como códigos de saída e valores de retorno afetam o fluxo principal. As diferenças são:
- Os hooks de um plugin ficam ativos apenas enquanto o plugin está habilitado; desabilitar o plugin interrompe seus hooks.
- Cada hook roda com o diretório de trabalho na raiz do plugin, então o
commandpode usar caminhos./dentro do plugin. - O processo de hook recebe duas variáveis de ambiente extras:
JARVIS_CODE_HOMEeJARVIS_PLUGIN_ROOT(o diretório raiz do plugin).
Instalar um plugin nunca executa seus hooks por si só — eles só disparam quando o evento correspondente ocorre com o plugin habilitado.
Modelo de segurança
Plugins têm um escopo de carregamento limitado. As operações a seguir não ocorrem durante a instalação nem no início da sessão:
- Ferramentas de plugin do tipo comando e runtimes de ferramenta legados não são executados
- Todos os caminhos precisam permanecer dentro da raiz do plugin após a resolução de links simbólicos
- Servidores MCP de plugins habilitados iniciam depois de
/reloadou em novas sessões e podem ser desabilitados a qualquer momento em/plugins - Manifestos quebrados ou caminhos inseguros aparecem nos diagnósticos de
/plugins info <id>e não afetam outras sessões
Próximos passos
- Agent Skills — o formato
SKILL.mdusado pelas skills de plugin - Agentes e subagentes — o formato dos arquivos de agente que um plugin pode trazer
- MCP — o esquema reutilizado por
mcpServers - Hooks — a lista de eventos e o contrato de execução dos hooks