Criar um aplicativo desktop open source, local e cross-platform (Windows, macOS, Linux, e futuramente iOS/Android via Tauri 2.0) que funcione como um “Grammarly em português” e futuramente com qualquer idioma, utilizando o Google Gemini CLI como motor de revisão de texto.
- O app será feito em Tauri (Rust + React + Vite + Tailwind).
- O editor de texto principal será o CodeMirror (mesmo do Obsidian).
- O fluxo de revisão será baseado em prompts pré-definidos, enviados ao Gemini CLI pelo backend em Rust.
Ao instalar o aplicativo, o usuário passará por uma checagem inicial de dependências:
-
Verificação de Bun
- O backend em Rust executa
bun --version. - Se não estiver instalado, o app exibe um botão "Instalar Bun".
- Esse botão abre o site oficial do Bun com instruções de instalação.
- O backend em Rust executa
-
Verificação de Node.js (Opcional)
- O backend executa
node -v. - O Node.js é opcional, pois o Bun é o runtime principal.
- Exibido apenas para informação.
- O backend executa
-
Verificação de NPM (Opcional)
- O backend executa
npm -v. - O npm é opcional, pois o Bun substitui sua funcionalidade.
- Exibido apenas para informação.
- O backend executa
-
Verificação do Gemini CLI
- O backend executa
gemini --version(ou o comando equivalente). - Se não estiver instalado, botão "Instalar Gemini CLI" → backend baixa e instala via
bun install -g @google/gemini-cli. - Sistema prioriza Bun, mas pode usar npm se disponível.
- O backend executa
-
Verificação de Login
- O backend executa
gemini auth status. - Se não logado, ele inicia o Gemini CLI em modo
auth login. - O Gemini CLI abrirá o navegador padrão para autenticação via conta Google.
- O backend pode simular o "Enter" na opção padrão 1 (Google).
- O backend executa
👉 O backend em Rust será responsável por executar subprocessos e reportar status ao frontend (React). 👉 Dependências principais: Bun (obrigatório) e Gemini CLI (obrigatório). 👉 Node.js e npm são opcionais e mantidos apenas para compatibilidade.
Depois de configurado:
-
Tela Inicial
- Botão “Novo Documento”.
- Lista de documentos recentes.
-
Editor de Texto
-
Editor com um componente de editor que suporte a formatação em tempo real do Markdown.
-
Barra lateral com botões de ação:
- “Corrigir Gramática”
- “Tornar mais Formal”
- “Tornar mais Informal”
- “Revisar Arquivo” (usando
@arquivodo Gemini CLI)
-
Área de resposta lateral → mostra sugestões, diffs ou substituições propostas.
-
-
Comunicação com Gemini CLI
- O frontend envia para o backend Rust um comando.
- Backend monta o prompt conforme a ação escolhida.
- Backend roda Gemini CLI com subprocesso, envia o prompt via stdin.
- Captura a saída (stdout) e retorna ao frontend.
- Frontend exibe no painel lateral → usuário pode “Aceitar” ou “Ignorar” as sugestões.
-
Frontend (UI):
- React + Vite + TypeScript + Tailwind.
- CodeMirror para edição.
- Componentes:
- Editor principal.
- Barra lateral de ações.
- Painel de resultados (sugestões).
-
Backend (Rust – Tauri):
- Responsável por:
- Verificar dependências (Bun, Gemini CLI, opcionalmente Node/npm).
- Instalar dependências sob comando do usuário.
- Rodar Gemini CLI via subprocessos (
Command). - Tratar stdout/stderr e retornar para o frontend.
- Automatizar login no Gemini (responder opção 1).
- Responsável por:
- 100% local: nenhuma comunicação com servidores externos além do Gemini CLI instalado na máquina do usuário.
- Open source: transparência total do código.
- Privacidade: o texto do usuário nunca sai da máquina.
- Extensível: prompts customizáveis → usuário pode adicionar suas próprias transformações (ex: “reescreva como poesia”).