Sobre o projeto
Bolo é um aplicativo de ditado push-to-talk para macOS que transcreve fala e cola o texto resultante em qualquer campo de texto ativo, incluindo Slack, Notion, Gmail, VS Code, terminais e navegadores. O nome vem do hindi, onde "bolo" significa "fale". Ele é compatível com macOS 12+ e Rust 1.88+ e é lançado sob a licença MIT, com um site de projeto listado no README.
Configuração e permissões: o script install.sh cria um ambiente Python privado em ~/.bolo/venv, constrói o binário Rust, procura uma chave de API da Telnyx existente em ~/.codex/.env ou no ambiente (solicitando e salvando em ~/.bolo/env quando não encontrada), registra Bolo como um item de login e o inicia. Na primeira execução, uma caixa de diálogo de onboarding pergunta qual tecla segurar para ditado, oferecendo opções como Right Option, Right Control, F19 e Caps Lock; a escolha é armazenada em ~/.bolo/env. Bolo então precisa das permissões de Microfone e Acessibilidade do macOS, esta última concedida ao interpretador Python gerenciado em ~/.bolo/venv/bin/python3 que realiza a inserção de cola. O README também fornece um prompt que pode ser passado a um agente de codificação para orientar a instalação e a concessão de permissões.
Fluxo de ditado: segure a tecla de atalho configurada, fale e solte. O texto é inserido no cursor usando a área de transferência, e o conteúdo anterior da área de transferência é restaurado por padrão. Um ícone na barra de menus expõe as transcrições recentes para cópia manual, além de comandos como Limpar Histórico de Transcrições, Executar Verificação de Saúde, Reescrever Texto Selecionado, Adicionar Termo de Vocabulário, Adicionar Alias de Vocabulário, Adicionar Regra de Correção e Verificar Atualizações.
Configuração: as configurações são lidas do ambiente ou de ~/.bolo/env. As opções incluem TELNYX_API_KEY; BOLO_HOTKEY para a tecla push-to-talk (right_option, right_control, right_shift, fn, f1 a f19, caps_lock); BOLO_PASTE_LAST_HOTKEY para colar novamente a última transcrição; BOLO_MICROPHONE; BOLO_MAX_RECORDING_SECONDS, com um watchdog padrão de 30 segundos que libera automaticamente gravações longas; BOLO_STT_MODEL e BOLO_STT_FALLBACK_MODEL; BOLO_STT_LANGUAGE para dicas de idioma ou sotaque, com um fallback para inglês (EUA) se uma dica não-EUA for lenta; BOLO_STT_FALLBACKS para uma cadeia de provedores separada por vírgula que pode incluir telnyx:model, xai e assemblyai; BOLO_STT_STREAMING, que controla o streaming Deepgram Nova-3 versus a transcrição em lote; BOLO_PRESERVE_CLIPBOARD; BOLO_LLM_CLEANUP; BOLO_AUTO_UPDATE; e BOLO_LOG_TRANSCRIPTS, desativado por padrão para que o texto ditado seja redigido de /tmp/bolo.log.
Limpeza, vocabulário e correções: a limpeza por LLM é padrão para automático, ignorando ditados curtos e limpos e acionando para ditados mais longos ou desordenados; o README observa Telnyx Qwen/Qwen3-235B-A22B com pensamento desativado, ou Kimi-K2.5 quando o LiteLLM está configurado, e afirma que o MiniMax não é usado intencionalmente para limpeza. A limpeza pode ler o aplicativo em primeiro plano e o texto próximo ao cursor por meio da Acessibilidade para espaçamento e capitalização. Os comandos de voz incluem "scratch that", "actually ...", "polish that" e "prompt that", protegidos para agir apenas quando o ditado anterior ainda está imediatamente antes do cursor e corresponde exatamente. O vocabulário pessoal fica em ~/.bolo_vocabulary.json e suporta objetos de alias para erros de audição comuns; as regras de substituição determinísticas ficam em ~/.bolo/replacements.json; os estilos de limpeza por aplicativo são armazenados em ~/.bolo/prompt_bindings.json com os perfis default, email, chat e notes.
Privacidade e histórico: o áudio é enviado para as APIs da Telnyx para transcrição e processado apenas na memória, de acordo com o README, e as transcrições não são usadas para treinamento. As dez transcrições mais recentes são armazenadas localmente em ~/.bolo/transcripts.json, mantendo as variantes brutas e limpas quando a limpeza altera o texto, e podem ser excluídas da barra de menus.
Limitações e manutenção: Bolo requer uma conexão com a internet, o ditado curto funciona bem hoje enquanto o ditado mais longo e a latência ainda estão sendo melhorados, e a limpeza é intencionalmente conservadora para preservar o significado literal. As atualizações são verificadas na inicialização ou sob demanda e são ignoradas quando os arquivos locais têm alterações não comprometidas, o GitHub está inacessível, o Rust está ausente ou o checkout não pode ser avançado rapidamente. Um pequeno conjunto de avaliação baseado em frases (eval_dictation.py com comandos prompt, init e score) está incluído, e a solução de problemas se concentra em /tmp/bolo.log, a presença da chave de API, as permissões para o interpretador gerenciado e o restart.sh.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.