felipe-focus-timer
v1.1.0
Published
Uma CLI para bloquear distrações e manter o foco
Readme
Focus CLI
Versão: 1.0.0
Autor: Felipe (@felipe0762)
Repositório Público: https://github.com/felipe0762/focus-cli
Focus CLI é um assistente de hiperfoco em linha de comando (CLI) desenvolvido em Node.js. Ele funciona como um cronômetro estilo Pomodoro que, durante o seu tempo de foco, bloqueia ativamente sites que causam distração (como redes sociais) e gera um relatório semanal de horas líquidas de concentração.
Ideal para estudantes e profissionais, especialmente para pessoas com TDAH, que precisam blindar o ambiente digital.
📸 Exemplo de Uso

🚀 Recursos Principais
- ⏱️ Cronômetro Pomodoro: Acompanhe o tempo de foco diretamente do seu terminal.
- 🚫 Bloqueio Ativo: Altera seu arquivo
hostsdo Windows para impedir momentaneamente o acesso a sites como Facebook, Twitter, Instagram e YouTube durante a sua sessão. - 📊 Relatórios: Registra e calcula automaticamente quantas "horas líquidas" você conseguiu se concentrar na semana.
- ⚡ Zero Dependências: O código foi construído 100% com recursos nativos do Node.js puro, resultando em um script muito leve.
🛠️ Como Usar
⚠️ IMPORTANTE: Como o sistema modifica a nível de rede o arquivo
hostsdo Windows (C:\Windows\System32\drivers\etc\hosts), você deve rodar o terminal (Command Prompt ou PowerShell) como Administrador.
1. Selecionar a Pasta do Projeto
Antes de executar qualquer comando, você deve dizer ao terminal onde os arquivos do programa estão salvos usando o comando cd (Change Directory).
No seu terminal como Administrador, navegue até a pasta do aplicativo colando o caminho correto. Exemplo:
cd C:\Users\teste\Área de trabalho\focus_cli(Certifique-se de usar o caminho real onde você baixou/clonou este repositório).
2. Iniciar uma Sessão de Foco (Caminho Feliz - Happy Path)
node focus.js start 25Inicia uma sessão de 25 minutos bloqueando os sites e mostrando uma contagem regressiva. O fluxo normal e ideal é você completar a sessão.
Comportamento Inválido
Se você acidentalmente executar sem parâmetros ou tempo negativo:
node focus.js start abc
# Retornará erro: "Please specify valid minutes"Cenário Limite (Edge Case)
Se você precisar parar o timer na metade de forma abrupta por uma emergência:
Você aperta Ctrl + C. O programa detectará, registrará seus minutos concluídos apenas se houver minutos inteiros superados, e desbloqueará a sua rede perfeitamente antes de sair.
Ver Relatório Semanal
node focus.js reportGerenciar Lista de Distrações
node focus.js list
node focus.js block netflix.com
node focus.js unblock facebook.comTestes Automatizados
O projeto conta com testes de integridade que validam o Caminho Feliz, Tratamento de Entradas Inválidas e Casos Limite. Execute com:
npm testConsulte nossos arquivos CONTRIBUTING.md e CHANGELOG.md para saber mais.
