🦆 Duckduki - Documentação Completa

Assistente Desktop Inteligente com IA Generativa Multiplataforma

O que é o Duckduki?

O Duckduki é um assistente desktop multiplataforma (Windows, macOS, Linux) que utiliza inteligência artificial generativa para maximizar sua produtividade. Integra-se com múltiplos provedores de IA (Groq, OpenAI, Google Gemini) oferecendo análise de código, automação de tarefas, monitoramento inteligente e muito mais.

🌟 Características Principais

🤖 IA Generativa Avançada

  • Múltiplos Provedores: Groq (LLaMA 3), OpenAI (GPT-4o), Google Gemini
  • Processamento Contextual: Analisa contexto e histórico de conversas
  • Ferramentas Inteligentes: +20 ferramentas integradas para automação

🎯 Automação Inteligente

  • Detecção de Contexto: Monitora aplicativos ativos e oferece sugestões
  • Análise de Código: Integração com VS Code e análise automática
  • Build Automático: Detecção e execução de builds (Node.js, Rust, Java, etc.)

📧 Gestão de Comunicação

  • Resumos de Email: Análise IMAP com resumos inteligentes
  • Integração Google: Calendar, Tasks e Gmail
  • Notificações Contextuais: Alertas personalizados

📦 Instalação Completa

🔧 Requisitos do Sistema

💻 Software Básico

  • Node.js 18+ (recomendado: 20+)
  • npm 8+ ou yarn 1.22+
  • Git 2.20+
  • Electron-compatible OS

🐧 Dependências Linux

# Ubuntu/Debian
sudo apt update
sudo apt install libsecret-1-dev libxss1 libgconf-2-4

# Fedora/RHEL
sudo dnf install libsecret-devel libXScrnSaver GConf2

# Arch Linux
sudo pacman -S libsecret libxss gconf

🚀 Instalação Rápida

# 1. Clonar repositório
git clone https://github.com/seu-usuario/duckduki.git
cd duckduki

# 2. Setup automático (instala deps + configura ambiente)
npm run setup

# 3. Desenvolvimento
npm run dev

# 4. Build para produção
npm run build

# 5. Distribuição
npm run dist

🔑 Configuração de API Keys

Após a instalação, você precisará configurar pelo menos um provedor de IA:

  1. Groq (Recomendado): console.groq.com - Acesso gratuito, velocidade ultra-rápida
  2. OpenAI: platform.openai.com - Modelos GPT-4
  3. Google AI: aistudio.google.com - Gemini models

📦 Scripts Disponíveis

ComandoDescrição
npm run setupConfiguração inicial automática
npm run devModo desenvolvimento
npm run buildBuild para produção
npm run distCriar executáveis
npm run dist:winBuild Windows (.exe)
npm run dist:macBuild macOS (.dmg)
npm run dist:linuxBuild Linux (.AppImage)

⚙️ Configuração Avançada

🤖 Provedores de IA Suportados

🚀 Groq (Recomendado)

Vantagens: Velocidade ultra-rápida, acesso gratuito generoso

Modelos disponíveis:

  • llama3-8b-8192 (padrão) - Balanceado, rápido
  • llama3-70b-8192 - Mais inteligente, qualidade superior
  • mixtral-8x7b-32768 - Excelente para código
  • gemma-7b-it - Otimizado para instruções
# Configuração
1. Acesse: https://console.groq.com
2. Criar conta gratuita
3. Gerar API Key
4. Colar no Duckduki > Configurações > IA > Groq

🧠 OpenAI

Vantagens: Modelos mais avançados, melhor compreensão

Modelos disponíveis:

  • gpt-4o-mini (padrão) - Custo-benefício
  • gpt-4o - Estado da arte
  • gpt-4-turbo - Rápido e potente
  • gpt-3.5-turbo - Econômico

🌟 Google Gemini

Vantagens: Multimodal, análise de contexto longo

Modelos disponíveis:

  • gemini-1.5-flash (padrão) - Rápido e eficiente
  • gemini-1.5-pro - Máxima qualidade
  • gemini-2.5-flash - Nova geração
  • gemini-2.0-pro - Estado da arte do Google

📧 Configuração de Email (IMAP)

Gmail

  1. Ative a verificação em 2 etapas na conta Google
  2. Gere uma "Senha de app" específica para Duckduki
  3. Use essa senha no campo "Senha" do Duckduki
  4. Servidor: imap.gmail.com:993 (SSL)

Outlook/Hotmail

  1. Use suas credenciais normais
  2. Certifique-se que IMAP está habilitado
  3. Servidor: outlook.office365.com:993 (SSL)

🔗 Integração Google Services

Para usar Calendar e Tasks do Google:

  1. Acesse Google Cloud Console
  2. Crie um projeto ou use existente
  3. Ative APIs: Calendar API, Tasks API
  4. Crie credenciais OAuth 2.0
  5. Configure no Duckduki > Configurações > Google

🎯 Guia Completo de Uso

🚀 Atalhos Globais

AçãoWindows/LinuxmacOS
Abrir DuckdukiCtrl+Shift+SpaceCmd+Shift+Space
Modo ChatCtrl+Shift+ACmd+Shift+A
Fechar InterfaceEscEsc

💬 Comandos de IA e Automação

📧 Gestão de Email

  • resumo dos emails - Análise inteligente da caixa de entrada
  • emails importantes hoje - Filtra emails prioritários
  • responder email sobre [assunto] - Gera rascunho de resposta

👨‍💻 Desenvolvimento

  • analisar código atual - Análise do código aberto
  • executar build - Build automático do projeto
  • executar testes - Roda testes unitários
  • deploy para produção - Deploy automatizado
  • revisar pull request - Análise de code review

📅 Produtividade

  • planejar meu dia - Organização inteligente de agenda
  • criar reunião sobre [assunto] - Agendar no Google Calendar
  • adicionar tarefa: [descrição] - Nova tarefa com IA
  • status das tarefas - Relatório de progresso
  • resumo do dia - Overview de eventos e tarefas

💡 Criatividade e Pesquisa

  • tendências tech - Últimas novidades tecnológicas
  • pesquisar sobre [assunto] - Busca contextual
  • gerar ideias para [projeto] - Brainstorming assistido
  • explicar [conceito] - Explicações detalhadas

🎙️ Comandos por Voz

O Duckduki suporta entrada por voz em português brasileiro:

  1. Clique no ícone do microfone 🎤
  2. Fale seu comando naturalmente
  3. Clique novamente para parar a gravação
  4. O comando será processado automaticamente

🔧 Ferramentas Integradas (AI Tools)

📋 Gestão de Tarefas

  • Análise Inteligente: IA detecta urgência e prioridade
  • Sistema de Prioridades: 🔴 Crítica, 🟠 Alta, 🟡 Média, 🟢 Baixa
  • Filtros Avançados: Por status, prioridade, categoria
  • Sincronização: Google Tasks integration

📅 Calendar Management

  • Criação de Eventos: Linguagem natural → Calendar
  • Análise de Conflitos: Detecção automática de sobreposições
  • Sugestões de Horários: Based em padrões de uso
  • Resumos Inteligentes: Overview diário/semanal

💻 System Monitoring

  • Status de Sistema: CPU, RAM, processos
  • Detecção de Apps: Monitora aplicação ativa
  • Sugestões Contextuais: Based no app em uso
  • Performance Alerts: Avisos de alta utilização

🔧 API Reference & Arquitetura

🏗️ Arquitetura do Sistema

Componentes Principais

  • Main Process (Electron): Gerencia janelas, IPC, e serviços do sistema
  • Renderer Process (React): Interface de usuário e interações
  • AI Manager: Orquestra provedores de IA e ferramentas
  • Security Manager: Gerencia chaves API e armazenamento seguro
  • Knowledge Service: Base de conhecimento e contexto

🤖 AI Tools Framework

Email Tools

getEmailSummary()
  ↳ Conecta via IMAP
  ↳ Analisa emails recentes  
  ↳ Gera resumo inteligente com IA
  ↳ Retorna: { summary, priority_emails, stats }

Task Management Tools

addTask(description)
  ↳ Análise de linguagem natural
  ↳ Extrai: urgência, facilidade, categoria
  ↳ Define prioridade automática
  ↳ Salva no banco local + Google Tasks
  
getTasks(status?, priority?)
  ↳ Filtros opcionais
  ↳ Retorna tarefas formatadas
  ↳ Incluí estatísticas e insights

Google Integration Tools

createCalendarEvent(title, start, end, description?)
  ↳ OAuth2 authentication
  ↳ Conflict detection
  ↳ Calendar integration
  
getGoogleDayOverview()
  ↳ Combina Calendar + Tasks
  ↳ Análise de carga de trabalho
  ↳ Sugestões de otimização

System Monitoring Tools

getSystemStatus()
  ↳ CPU, RAM, active processes
  ↳ Active window detection
  ↳ Performance insights
  
analyzeCurrentCode()
  ↳ Detecta projeto ativo
  ↳ Analisa código no editor
  ↳ Sugestões de melhorias

🔌 Extensibilidade

Criando Novas Ferramentas

// Exemplo: Nova ferramenta customizada
class CustomTool {
  async execute(parameters) {
    // Lógica da ferramenta
    return { success: true, data: result };
  }
  
  getDefinition() {
    return {
      name: 'custom_tool',
      description: 'Descrição da ferramenta',
      parameters: {
        // Schema Zod para validação
      }
    };
  }
}

Registrando Ferramentas

// Em AIToolsService
this.tools.set('custom_tool', new CustomTool());

// Schema para IA
tools: {
  custom_tool: {
    description: 'Executa função customizada',
    parameters: z.object({
      input: z.string()
    })
  }
}

📊 Storage & Data

Electron Store (Configurações)

  • Configurações de UI e preferências
  • Estado da aplicação
  • Cache de dados não sensíveis

Keychain/Keytar (Chaves Seguras)

  • API keys dos provedores de IA
  • Credenciais de email
  • Tokens OAuth

Knowledge Base (SQLite)

  • Histórico de conversas
  • Notas e documentação
  • Cache de contexto

🔧 Troubleshooting Avançado

🚨 Problemas Críticos

❌ Aplicativo não Inicia

Sintomas: Aplicativo fecha imediatamente ou tela branca

Soluções:

# 1. Limpar cache e dependências
rm -rf node_modules package-lock.json
npm install

# 2. Rebuild nativo modules
npm run rebuild

# 3. Verificar compatibilidade Electron
npm ls electron

🔑 API Keys não Salvam

Sintomas: Chaves desaparecem após reiniciar

Soluções por Plataforma:

🐧 Linux

# Instalar libsecret
sudo apt install libsecret-1-dev  # Ubuntu/Debian
sudo dnf install libsecret-devel  # Fedora
sudo pacman -S libsecret          # Arch

# Verificar keyring
gnome-keyring-daemon --version

🍎 macOS

# Verificar Keychain Access
security find-generic-password -a "duckduki"

# Reset keychain se necessário
security delete-generic-password -a "duckduki"

🪟 Windows

# Verificar Windows Credential Manager
cmdkey /list | findstr "duckduki"

# Executar como administrador se necessário

⚠️ Problemas de Conectividade

🌐 Erro de API Groq/OpenAI

Mensagens típicas: "API key invalid", "Rate limit exceeded"

Diagnóstico:

# Testar chave Groq
curl -H "Authorization: Bearer SEU_KEY" \
     https://api.groq.com/openai/v1/models

# Testar chave OpenAI
curl -H "Authorization: Bearer SEU_KEY" \
     https://api.openai.com/v1/models

Soluções:

  • Verificar validade da chave na console do provedor
  • Verificar limites de uso/billing
  • Tentar provedor alternativo
  • Verificar firewall/proxy corporativo

📧 Problemas de Email IMAP

Gmail:

  • Ativar 2FA na conta Google
  • Gerar senha específica para app
  • Verificar se IMAP está habilitado

Outlook:

  • Usar credenciais normais (não senha de app)
  • Verificar configurações IMAP no Outlook.com
  • Tentar OAuth se disponível

🐛 Problemas de Performance

💻 Alto Uso de CPU/RAM

Diagnóstico:

# Monitorar processos Electron
ps aux | grep -i electron
top -p $(pgrep -f duckduki)

# Windows
tasklist | findstr electron

Otimizações:

  • Reduzir frequência de monitoramento de sistema
  • Limpar cache de conhecimento antigo
  • Desabilitar recursos não utilizados
  • Ajustar configurações de IA (modelos menores)

🔄 Interface Travando

Soluções:

  • Abrir DevTools: Ctrl+Shift+I
  • Verificar erros no console
  • Reiniciar processo renderer
  • Limpar cache da aplicação

🔧 Ferramentas de Debug

📊 Logs do Sistema

# Localização dos logs
# Linux: ~/.config/duckduki/logs/
# macOS: ~/Library/Logs/duckduki/
# Windows: %APPDATA%/duckduki/logs/

# Executar com debug verbose
DEBUG=* npm run dev

# Logs específicos
DEBUG=duckduki:* npm run dev

🔍 Modo Debug Avançado

# Habilitar DevTools por padrão
export ELECTRON_ENABLE_DEVTOOLS=1

# Desabilitar segurança para debug
export ELECTRON_DISABLE_SECURITY_WARNINGS=1

# Debug específico de módulos
export DEBUG=ai-tools,email-service,groq-client

📞 Suporte

Se os problemas persistirem:

  • 📁 Coletar logs: Anexar arquivos de log relevantes
  • 💻 Info do sistema: OS, versão Node.js, versão Electron
  • 📝 Passos para reproduzir: Detalhar o que estava fazendo
  • 🐛 Abrir issue: GitHub repository com todas as informações

👨‍💻 Guia de Desenvolvimento

🏗️ Estrutura do Projeto

duckduki/
├── src/
│   ├── main/                     # Processo principal (Electron)
│   │   ├── index.ts              # Entry point e configuração IPC
│   │   ├── aiManager.ts          # Orquestrador de IA
│   │   ├── aiProviders/          # Clientes de IA (Groq, OpenAI, Google)
│   │   ├── aiTools/              # Ferramentas integradas
│   │   ├── aiToolsService.ts     # Coordenador de ferramentas
│   │   ├── securityManager.ts    # Gestão segura de chaves
│   │   ├── knowledgeService.ts   # Base de conhecimento
│   │   ├── emailService.ts       # Integração IMAP
│   │   ├── processMonitor.ts     # Monitoramento de sistema
│   │   └── deployService.ts      # Automação de builds
│   ├── renderer/                 # Interface React
│   │   ├── App.tsx               # Componente principal
│   │   ├── components/           # Componentes UI
│   │   ├── contexts/             # Context providers
│   │   ├── settings/             # Painel de configurações
│   │   └── widgets/              # Widgets especializados
│   └── preload.ts                # Bridge segura IPC
├── assets/                       # Recursos estáticos
├── docs/                         # Documentação
└── release/                      # Builds de distribuição

🔧 Setup de Desenvolvimento

# 1. Fork e clone
git clone https://github.com/seu-usuario/duckduki.git
cd duckduki

# 2. Instalar dependências
npm install

# 3. Setup ambiente de desenvolvimento
npm run setup

# 4. Executar em modo dev (hot reload)
npm run dev

# 5. Build para teste
npm run build

# 6. Rodar testes
npm test

🎯 Contribuindo

🐛 Reportando Bugs

  1. Verificar issues existentes
  2. Usar template de bug report
  3. Incluir logs e informações do sistema
  4. Passos claros para reproduzir

✨ Novos Recursos

  1. Abrir discussion para feedback
  2. Implementar com testes
  3. Documentar na docs/
  4. Seguir padrões de código existentes

🔧 Adicionando Novas AI Tools

// 1. Criar nova tool em src/main/aiTools/
export class NovaFerramenta {
  async execute(params: any) {
    // Lógica da ferramenta
    return { success: true, data: resultado };
  }
  
  getDefinition() {
    return {
      name: 'nova_ferramenta',
      description: 'Descrição da ferramenta',
      parameters: {
        type: 'object',
        properties: {
          input: { type: 'string' }
        }
      }
    };
  }
}

// 2. Registrar em AIToolsService
import { NovaFerramenta } from './aiTools/novaFerramenta';

// Em constructor:
this.novaFerramenta = new NovaFerramenta();

// Em processWithToolsStream:
nova_ferramenta: {
  description: 'Executa nova funcionalidade',
  parameters: z.object({
    input: z.string()
  }),
  execute: async ({ input }) => {
    const result = await this.novaFerramenta.execute({ input });
    return result.success ? `✅ ${result.data}` : `❌ Erro`;
  }
}

🧪 Testing

# Testes unitários
npm run test:unit

# Testes de integração
npm run test:integration

# Test coverage
npm run test:coverage

# Testar build em todas as plataformas
npm run test:build

📋 Changelog

v2.1.0 (Current)

🆕 Novos Recursos

  • Suporte completo para Google Gemini (multiple models)
  • Sistema de ferramentas de IA expandido (20+ tools)
  • Integração avançada com Google Calendar e Tasks
  • Monitoramento inteligente de sistema
  • Interface aprimorada com modo tela cheia

🔧 Melhorias

  • Performance de streaming de IA otimizada
  • Gestão de contexto e histórico melhorada
  • Sistema de prioridades de tarefas refinado
  • Segurança de armazenamento de chaves fortalecida

🐛 Correções

  • Problemas de conectividade IMAP resolvidos
  • Vazamentos de memória em monitoramento corrigidos
  • Compatibilidade com Linux Wayland melhorada

v2.0.0

🚀 Grandes Mudanças

  • Arquitetura de múltiplos provedores de IA
  • Sistema de ferramentas de IA (AI Tools)
  • Interface React completamente redesenhada
  • Base de conhecimento integrada

💥 Breaking Changes

  • Configuração de API keys redesenhada
  • Comandos de voz reestruturados
  • Migração automática de configurações v1.x

v1.5.0

🆕 Recursos

  • Suporte inicial para OpenAI GPT-4
  • Quadro de ideias (tech feeds)
  • Atalhos globais multiplataforma
  • Integração com VS Code

v1.0.0

🎉 Lançamento Inicial

  • Assistente desktop com Groq LLaMA
  • Resumos inteligentes de email
  • Análise básica de código
  • Automação de builds
  • Interface desktop flutuante