Chat de IA para o desktop msbos (Fedora + niri + Noctalia), exibido em um painel flutuante do Noctalia e conectado ao OpenCode local. O agente msbos-chat segue a skill msbos para propor mudanças no sistema, pedir confirmação, aplicar, validar e registrar o resultado.
Status: implementação local
0.2.0, testada em Fedora 44, niri, Noctalia 5.3.0 (plugin API 34) e OpenCode 2.1.4. OMAPEAMENTO.mdregistra o levantamento inicial. A documentação emdocs/reflete o código atual.
- Interface/host: Noctalia 5.3 (Luau, plugin API 34)
- Motor: OpenCode 2.x (API v2 local, HTTP + SSE, Basic auth)
- Desktop: Fedora + niri
- Persistência: JSON e Markdown em
~/.msbos-ai-chat
- Fedora com niri e Noctalia 5.3 ou superior.
- OpenCode 2.x instalado, com
opencodenoPATH. - Uma conta de IA conectada ao OpenCode (
opencode auth login). Sem isso o painel abre, mas não tem modelos para conversar. - Skill
msbosinstalada em~/.agents/skills/msbos/para o agente especialista. - Helper privilegiado em
/usr/local/libexec/msbos-priv(allowlist das ações de root). Oinstall.shinstala a cópia deplugin/scripts/msbos-privquando ele não existe. alacritty(fluxos interativos de pareamento e login) epkexec(janela de senha do polkit).bashe utilitários básicos (cp,chmod,cmp).
O plugin não instala o OpenCode, o Noctalia nem a skill msbos; ele usa o que já está no sistema. O servidor local do OpenCode é iniciado pelo próprio plugin (opencode service start) quando necessário — não é preciso abrir o app desktop nem um terminal.
No diretório do projeto:
cd /caminho/para/msbos-ai-chat
./install.shAntes de copiar qualquer coisa, o instalador verifica OpenCode, conta de IA, Noctalia, skill msbos, helper privilegiado, alacritty e pkexec, e mostra em português o que falta e como resolver. Nada aborta a instalação: o que faltar aparece no fim como Pendências (o chat funciona, mas os recursos que dependem daquilo não). Para pular a verificação, use MSBOS_AI_CHAT_CHECKS=0 ./install.sh.
Depois disso, o instalador:
- copia o plugin para
~/.local/share/noctalia/plugins/msbos-ai-chat/; - copia o agente para
~/.config/opencode/agents/msbos-chat.md(com backup do anterior); - cria
~/.msbos-ai-chat/{state,sessions}com permissões restritas; - roda o lint do plugin e tenta habilitá-lo no Noctalia;
- instala o helper privilegiado (se ausente) e a regra de polkit que bloqueia
pkexecpara shells.
Se houver um checkout do agents-config ao lado do repositório (ou em ~/.local/share/agents-config), o instalador também avisa quando a cópia versionada de msbos-chat.md estiver ausente ou diferente do arquivo deste repo. O sync.sh do agents-config substitui ~/.config/opencode/agents/ inteiro; sem essa cópia, o próximo sync apagaria o agente instalado.
Se você já tinha o plugin antigo instalado, ./install.sh:
- move
~/.omyfedora-ai-chatpara~/.msbos-ai-chat(sem perder sessões); - arquiva o plugin e o agente antigos;
- troca o ID
omyfedora/ai-chatpormsbos/ai-chatno~/.local/state/noctalia/settings.toml(com backup).
Depois da instalação:
- Adicione o widget na barra em Settings → Bar → Widgets →
msbos/ai-chat:bar. - Abra o painel:
noctalia msg panel-toggle msbos/ai-chat:panel- No painel, clique em Conectar agora. Se não conectar, abra Avançado e cole o link exibido por
opencode pair. - Em Settings → Plugins → msbos AI Chat, ajuste o tamanho da janela, o diretório, o agente e as demais opções.
- Clique no ícone da barra para abrir ou fechar o painel.
- + cria uma nova conversa herdando o modelo e a variante atuais.
- Modelos e sessões (ícone de relógio) abre o seletor de modelo, raciocínio e sessões, com busca e agrupamento por data. Por padrão lista só as conversas criadas pelo painel; sessões de outros clientes do OpenCode ficam ocultas (
only_own_sessions). - Alterações no sistema (no rodapé do seletor) lista o que o assistente mudou, com Pedir para desfazer e o comando de reversão registrado.
- − minimiza/fecha o painel; o serviço continua rodando e a resposta não é perdida.
- Pedidos de mudança no sistema seguem o ritual da skill
msbos: descrição, confirmação, backup, aplicação, validação e diff. - O painel não envia anexos de arquivo/imagem nesta versão.
- As conversas ficam em
~/.msbos-ai-chat(workspace com permissão0700); o painel avisa isso no rodapé do seletor.
Importante:
shelleeditparam no cartão de permissão do painel (Permitir uma vez / Permitir sempre / Recusar). O ajustepermission_modealterna entre Perguntar (padrão) e Permitir sempre (autoaprova).webfetché negado no agente. Veja Segurança.
msbos-ai-chat/
├── README.md
├── MAPEAMENTO.md # levantamento inicial (histórico)
├── install.sh
├── uninstall.sh
├── opencode/agents/ # agente msbos-chat
├── plugin/ # plugin do Noctalia (Luau)
│ ├── plugin.toml
│ ├── bar.luau
│ ├── panel.luau
│ ├── engine.luau
│ ├── lib/
│ └── translations/
└── docs/ # documentação técnica atual
- AGENTS.md — comandos, arquitetura e convenções para agentes.
- Índice da documentação
- Arquitetura
- Conexão com o OpenCode
- API do OpenCode usada
- Eventos SSE
- Segurança
./uninstall.shO comando desabilita e remove o plugin, move o agente para um backup e preserva o workspace ~/.msbos-ai-chat. Para apagar também sessões e pareamento:
./uninstall.sh --purgeDistribuído sob a licença MIT. Veja LICENSE.