Skip to content

Repository files navigation

Pomodoro Brain.fm

Extensão Firefox (Manifest V3) que junta um timer Pomodoro configurável com o Brain.fm. No trabalho toca Focus → Deep Work; no descanso, Relax → Unwind. A troca é automática: você não precisa clicar no site a cada fase.

Não há API pública oficial do Brain.fm. A extensão reusa a aba em que você já está logado (incluindo login com Google), lê a sessão no navegador e fala só com my.brain.fm e api.brain.fm.

Popup da extensão Pomodoro Brain.fm: timer 30:00, fase Trabalho com Focus → Deep Work, botões Iniciar / Pausar / Pular / Reset e tempos configuráveis

Popup da extensão (renderizado a partir do HTML/CSS reais).

O que ela faz

Fase do Pomodoro No Brain.fm
Trabalho Focus → Deep Work
Descanso (curto ou longo) Relax → Unwind

O Pomodoro nativo do Brain.fm não troca Focus ↔ Relax sozinho. Esta extensão existe para isso: o relógio fica no popup; a música segue a fase.

Recursos

  • Tempos configuráveis: trabalho, descanso, descanso longo e quantos ciclos até o longo (padrão 30 / 5 / 15 min, 4 ciclos)
  • Iniciar, Pausar, Pular fase e Reset
  • No fim de cada fase: notificação do Firefox e troca Deep Work ↔ Unwind
  • Alerta de voz opcional (arquivos MP3 na extensão — não usa speechSynthesis, que pausava o áudio do Brain.fm)
  • Play/pause no player da aba, no mesmo <audio> sempre que possível, para o Firefox não bloquear autoplay
  • Status honesto no popup: só diz “tocando” se o chip do site, o botão pause e o relógio do áudio baterem
  • Sem analytics, sem telemetria, sem dados enviados ao autor (data_collection_permissions: none)

Requisitos

  • Firefox 142 ou mais recente (desktop; Android também declarado no manifesto)
  • Conta Brain.fm logada em https://my.brain.fm/
  • Um play manual no player do site na sessão (política de autoplay do Firefox). Depois disso, o Pomodoro controla sozinho

Instalação

O Firefox só mantém extensões assinadas pela Mozilla. O load temporário some ao fechar o navegador.

Uso permanente (recomendado)

  1. Gere o pacote:

    ./build.sh

    Isso cria dist/pomodoro-brainfm.zip.

  2. Entre em addons.mozilla.org/developers e abra Submit a New Add-on.

  3. Em How to Distribute this Extension, escolha On your own (não lista na loja; só você usa o arquivo assinado).

  4. Envie o ZIP. Textos prontos para o formulário estão em AMO_SUBMISSION.md.

  5. Baixe o .xpi assinado.

  6. No Firefox: about:addons → ⚙️ → Install Add-on From File… → escolha o .xpi.

  7. Abra https://my.brain.fm/ logado e clique no ícone da extensão.

Para atualizar: aumente "version" em manifest.json, rode ./build.sh, envie a nova versão no mesmo add-on da AMO e instale o .xpi novo por cima.

Desenvolvimento (temporário)

Some ao fechar o Firefox:

  1. about:debugging#/runtime/this-firefox
  2. Load Temporary Add-on… → selecione manifest.json
  3. F5 na aba do Brain.fm depois de recarregar a extensão (senão o content script fica morto)
  4. Dê play uma vez no player e use o popup

Como usar

  1. Deixe my.brain.fm aberto e logado.
  2. No popup, ajuste os minutos e Salvar tempos se quiser sair do padrão.
  3. Iniciar — começa o trabalho e pede Deep Work no Brain.fm.
  4. No fim do trabalho: notifica, (opcional) toca o alerta de voz e muda para Unwind.
  5. No fim do descanso: volta para Deep Work.
  6. Pausar para o timer e o áudio. Pular troca a fase na hora. Reset volta ao trabalho, no tempo cheio.

Marque Alerta de voz nas trocas se quiser o aviso falado em cada mudança de fase.

Como controla o Brain.fm

  1. O content script na aba my.brain.fm lê o token da sessão (localStorage persist:auth).
  2. O background resolve os IDs das atividades Deep Work e Unwind na API (api.brain.fm) e guarda em cache.
  3. Na troca de fase tenta, nesta ordem:
    • clicar o chip do site (Deep Work ▾ / Unwind ▾) e o item do menu (incluindo portal);
    • navegação SPA para /player/{activityId};
    • criar sessão na API e trocar audio.src no mesmo elemento <audio> (mantém o unlock de autoplay);
    • recarregar a URL do player só se o modo ainda não mudou (último recurso; pode exigir play manual de novo).
  4. Play e pause preferem o elemento de áudio; o botão da UI do site entra para o React ficar alinhado (chip + pause).

O status no popup só fica verde “tocando” quando o modo no site, o botão pause e o áudio de fato avançando coincidem. Se algo falhar, a mensagem descreve o problema em vez de fingir sucesso.

Estrutura

manifest.json          # MV3, id pomodoro-brainfm@personal, Firefox 142+
background.js          # timer (alarms), fases, notificações, orquestra Brain.fm
content/brainfm.js     # sessão, API, chip/menu, play/pause
popup/                 # HTML / CSS / JS do popup
icons/                 # 48, 96, 128
sounds/                # work_to_break.mp3, break_to_work.mp3
docs/popup.png         # captura da interface
build.sh               # gera dist/pomodoro-brainfm.zip
AMO_SUBMISSION.md      # textos para assinatura não listada na AMO

Permissões: alarms, notifications, scripting, storage, tabs.
Hosts: https://my.brain.fm/*, https://api.brain.fm/*.

Limitações

  • Só Firefox (não é extensão Chrome/Edge)
  • Precisa da aba do Brain.fm logada; não substitui o app nem faz login por você
  • O primeiro play da sessão ainda depende de um gesto seu (autoplay)
  • Recarregar a página do player pode perder esse unlock
  • .xpi não assinado não instala de forma permanente no Firefox normal
  • Conta ligada ao Google funciona porque a sessão já está no navegador; não há OAuth próprio

Licença e privacidade

Copyright (C) 2026 Melker Halberd Pereira Alves

Este programa é software livre: você pode redistribuí-lo e/ou modificá-lo sob os termos da GNU General Public License versão 3 (ou, por opção, qualquer versão posterior), publicada pela Free Software Foundation.

Este programa é distribuído na esperança de que seja útil, mas SEM NENHUMA GARANTIA; sem mesmo a garantia implícita de COMERCIABILIDADE ou ADEQUAÇÃO A UM DETERMINADO FIM. Veja a GNU GPL no arquivo LICENSE para mais detalhes.

A extensão não coleta dados para o desenvolvedor: só usa a sessão Brain.fm que você já abriu, para tocar Deep Work e Unwind no ritmo do Pomodoro.

About

Extensão Firefox: Pomodoro que toca Deep Work no trabalho e Unwind no descanso no Brain.fm

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages