- Título:
- Coçando as minhas próprias coceiras
Coçando as minhas próprias coceiras
Ferramentas open source que eu fiz para resolver problemas meus: apps e plugins para o meu desktop Linux, CLIs, automações e ferramental para agentes de IA, boa parte escrita junto com os próprios agentes.
AI Bar
Plugin para o Noctalia Shell que mostra na barra quanto do plano do Claude Code e do Grok já foi usado: a porcentagem da janela mais crítica, o tempo até ela reiniciar e uma barra de progresso. No painel, cada janela aparece com o ritmo de uso, adiantado ou atrasado em relação ao tempo que passou.
- Stack: QML, JavaScript, Noctalia Shell, Vitest
- Markdown: noctalia-aibar.md
Amnesia
Camada de memória persistente e determinística para o Claude Code. Merge, deduplicação e validação saem do modelo e vão para um CLI em Python, então o resultado é o mesmo em toda execução e o agente para de responder com um dado lembrado errado. Uso diário no meu próprio fluxo de trabalho.
- Stack: Python, Claude Code
- Markdown: amnesia-claude-code.md
CoachBot
Coach antimotivacional para o terminal: a cada shell aberto, uma frase sarcástica num balão, dita por um robozinho em pixel art. São mais de cem frases em inglês e outras tantas em português, e instala com uma linha só.
- Stack: Shell, JSON
- Markdown: coachbot-cli.md
Daybar
Plugin para o Noctalia Shell que reúne o dia numa barra: um campo de captura rápida que entende texto livre ("comprar pão amanhã 9h" vira tarefa, "/e reunião sexta 15h-16h" vira evento no Google Calendar), além de checklist de hoje, pomodoro e timer (que também abrem numa janela própria ou fixos num canto da tela), favoritos com prévia da página e notas em Markdown.
- Stack: QML, JavaScript, Noctalia Shell, Google Calendar
- Markdown: noctalia-daybar.md
Desktop Sticky Notes
Plugin para o Noctalia Shell que prende notas adesivas na área de trabalho como widgets: cada nota pode ser arrastada e redimensionada, tem cor de post-it e texto em Markdown, abre um editor ao clique e pode ficar ligada a um arquivo .md no disco, atualizando quando o arquivo muda.
- Stack: QML, JavaScript, Noctalia Shell, Markdown, Vitest
- Markdown: noctalia-desktop-sticky-notes.md
FlipClock
Relógio de flip para o desktop, feito em Go com Fyne, com animação de virada em duas fases, modo tela cheia e um modo protetor de tela que cobre todos os monitores conectados. A fonte vai embutida no binário, então o app roda sem depender de nenhum arquivo externo.
- Stack: Go, Fyne, OpenGL
- Markdown: flipclock-app.md
FlipClock ASCII Screensaver
Protetor de tela para Hyprland que desenha a hora em ASCII grande dentro de um terminal em tela cheia, um por monitor, com transições do Terminal Text Effects a cada minuto. Entra pelo hypridle quando a máquina fica ociosa e sai no primeiro movimento.
- Stack: Python, Shell, Hyprland
- Markdown: flipclock-screensaver-ascii.md
Forja
Cliente desktop que reúne Claude Code, Codex e Gemini numa só interface, para não perder contexto alternando entre três terminais. Feito em Electron, React e TypeScript, com xterm.js para o terminal e uma camada de adaptação por CLI em vez de impor um protocolo comum às três. É o meu cliente principal no dia a dia.
- Stack: Electron, React, TypeScript
- Markdown: forja.md
Forja Plugins
Registro oficial e monorepo de plugins do Forja: relógio, Pomodoro e tarefas em Markdown, sobre um SDK compartilhado com tipos da API de plugins. Cada plugin declara as permissões que usa, e um script gera o registro que o Forja consulta para instalar.
- Stack: TypeScript, Vite, pnpm, Vitest
- Markdown: forja-plugins.md
Gistbar
Plugin para o Noctalia Shell que traz os meus gists do GitHub para a barra: busca por descrição, nome de arquivo, linguagem e conteúdo, cópia pelo teclado, gist novo a partir da área de transferência, prévia e edição, tudo pelo gh CLI.
- Stack: QML, JavaScript, Noctalia Shell, GitHub CLI, Vitest
- Markdown: noctalia-gistbar.md
grab-sh
Script mínimo de screenshot para Wayland e Hyprland que copia direto para a área de transferência, sem salvar arquivo no disco. Dois atalhos de teclado: tela inteira ou uma área escolhida com a mira.
- Stack: Shell, Hyprland, Wayland
- Markdown: grab-sh.md
Hypr Switcher
Alt+Tab visual para o Hyprland, que não traz um alternador de janelas próprio. Em Rust sobre a camada layer-shell do Wayland, para o overlay aparecer acima de tudo sem roubar o foco, e com a latência de abertura como critério principal, porque é ela que decide se a ferramenta é usada ou abandonada.
- Stack: Rust, Wayland, Hyprland
- Markdown: hypr-switcher.md
job-radar
Varre sites de vagas, descarta o que não combina com o seu perfil e publica as compatíveis no Discord, rodando sozinho algumas vezes por dia. Python puro, sem dependências: filtros duros decidem o que passa, uma pontuação de 0 a 100 ordena o resto, e as qualificações saem do próprio currículo em markdown.
- Stack: Python, pytest, Discord, systemd
- Markdown: job-radar.md
rdo-solo
Controlador de sessão solo para Red Dead Online e GTA Online, que bloqueia o tráfego peer-to-peer do jogo no gateway Linux por onde o console passa. Começou como script de iptables e ganhou uma TUI em Rust, com jogadores na sessão e GeoIP, e um painel web para ligar e desligar o modo solo pelo celular.
- Stack: Rust, Ratatui, Shell, iptables, Next.js
- Markdown: rdo-solo.md
Tumodori
Pomodoro de terminal com dígitos grandes, legíveis de longe sem aproximar do monitor. Feito em Rust com Ratatui, para o cronômetro viver no mesmo lugar que o trabalho, e com os dígitos desenhados em bloco, para o tamanho não depender da fonte configurada no terminal de quem usa.
- Stack: Rust, Ratatui
- Markdown: tumodori.md
Outros projetos abertos
- sextafeirachegou.com.br: Site que responde se já é sexta, com contagem regressiva e drama (TypeScript, 2026)
- motivaai: Gerador de frases motivacionais, refeito em Remix (TypeScript, 2019)
- vovo-juju-ipsum: Gerador de falas da vovó Juju, da animação Irmão do Jorel (Vue, 2019)
- app-whatsapp-url: Gera o link de conversa do WhatsApp para qualquer número (Vue, 2018)
- nandomoreira.me-nuxt-theme: Uma versão antiga do meu site pessoal, em Vue com Nuxt (Vue, 2016)
- end2end: Tema Jekyll limpo para blogs (Sass, 2015)
- dotX: Tema Jekyll simples para blogs (CSS, 2015)
- lora: Tema Jekyll gratuito para blogs (CSS, 2015)
Todos os repositórios: https://github.com/nandomoreirame?tab=repositories
---
title: Coçando as minhas próprias coceiras
url: https://nandomoreira.dev/lab
---
# Coçando as minhas próprias coceiras
Ferramentas open source que eu fiz para resolver problemas meus: apps e plugins para o meu desktop Linux, CLIs, automações e ferramental para agentes de IA, boa parte escrita junto com os próprios agentes.
## AI Bar
Plugin para o Noctalia Shell que mostra na barra quanto do plano do Claude Code e do Grok já foi usado: a porcentagem da janela mais crítica, o tempo até ela reiniciar e uma barra de progresso. No painel, cada janela aparece com o ritmo de uso, adiantado ou atrasado em relação ao tempo que passou.
- Stack: QML, JavaScript, Noctalia Shell, Vitest
- Markdown: [noctalia-aibar.md](https://nandomoreira.dev/lab/noctalia-aibar.md)
## Amnesia
Camada de memória persistente e determinística para o Claude Code. Merge, deduplicação e validação saem do modelo e vão para um CLI em Python, então o resultado é o mesmo em toda execução e o agente para de responder com um dado lembrado errado. Uso diário no meu próprio fluxo de trabalho.
- Stack: Python, Claude Code
- Markdown: [amnesia-claude-code.md](https://nandomoreira.dev/lab/amnesia-claude-code.md)
## CoachBot
Coach antimotivacional para o terminal: a cada shell aberto, uma frase sarcástica num balão, dita por um robozinho em pixel art. São mais de cem frases em inglês e outras tantas em português, e instala com uma linha só.
- Stack: Shell, JSON
- Markdown: [coachbot-cli.md](https://nandomoreira.dev/lab/coachbot-cli.md)
## Daybar
Plugin para o Noctalia Shell que reúne o dia numa barra: um campo de captura rápida que entende texto livre ("comprar pão amanhã 9h" vira tarefa, "/e reunião sexta 15h-16h" vira evento no Google Calendar), além de checklist de hoje, pomodoro e timer (que também abrem numa janela própria ou fixos num canto da tela), favoritos com prévia da página e notas em Markdown.
- Stack: QML, JavaScript, Noctalia Shell, Google Calendar
- Markdown: [noctalia-daybar.md](https://nandomoreira.dev/lab/noctalia-daybar.md)
## Desktop Sticky Notes
Plugin para o Noctalia Shell que prende notas adesivas na área de trabalho como widgets: cada nota pode ser arrastada e redimensionada, tem cor de post-it e texto em Markdown, abre um editor ao clique e pode ficar ligada a um arquivo .md no disco, atualizando quando o arquivo muda.
- Stack: QML, JavaScript, Noctalia Shell, Markdown, Vitest
- Markdown: [noctalia-desktop-sticky-notes.md](https://nandomoreira.dev/lab/noctalia-desktop-sticky-notes.md)
## FlipClock
Relógio de flip para o desktop, feito em Go com Fyne, com animação de virada em duas fases, modo tela cheia e um modo protetor de tela que cobre todos os monitores conectados. A fonte vai embutida no binário, então o app roda sem depender de nenhum arquivo externo.
- Stack: Go, Fyne, OpenGL
- Markdown: [flipclock-app.md](https://nandomoreira.dev/lab/flipclock-app.md)
## FlipClock ASCII Screensaver
Protetor de tela para Hyprland que desenha a hora em ASCII grande dentro de um terminal em tela cheia, um por monitor, com transições do Terminal Text Effects a cada minuto. Entra pelo hypridle quando a máquina fica ociosa e sai no primeiro movimento.
- Stack: Python, Shell, Hyprland
- Markdown: [flipclock-screensaver-ascii.md](https://nandomoreira.dev/lab/flipclock-screensaver-ascii.md)
## Forja
Cliente desktop que reúne Claude Code, Codex e Gemini numa só interface, para não perder contexto alternando entre três terminais. Feito em Electron, React e TypeScript, com xterm.js para o terminal e uma camada de adaptação por CLI em vez de impor um protocolo comum às três. É o meu cliente principal no dia a dia.
- Stack: Electron, React, TypeScript
- Markdown: [forja.md](https://nandomoreira.dev/lab/forja.md)
## Forja Plugins
Registro oficial e monorepo de plugins do Forja: relógio, Pomodoro e tarefas em Markdown, sobre um SDK compartilhado com tipos da API de plugins. Cada plugin declara as permissões que usa, e um script gera o registro que o Forja consulta para instalar.
- Stack: TypeScript, Vite, pnpm, Vitest
- Markdown: [forja-plugins.md](https://nandomoreira.dev/lab/forja-plugins.md)
## Gistbar
Plugin para o Noctalia Shell que traz os meus gists do GitHub para a barra: busca por descrição, nome de arquivo, linguagem e conteúdo, cópia pelo teclado, gist novo a partir da área de transferência, prévia e edição, tudo pelo gh CLI.
- Stack: QML, JavaScript, Noctalia Shell, GitHub CLI, Vitest
- Markdown: [noctalia-gistbar.md](https://nandomoreira.dev/lab/noctalia-gistbar.md)
## grab-sh
Script mínimo de screenshot para Wayland e Hyprland que copia direto para a área de transferência, sem salvar arquivo no disco. Dois atalhos de teclado: tela inteira ou uma área escolhida com a mira.
- Stack: Shell, Hyprland, Wayland
- Markdown: [grab-sh.md](https://nandomoreira.dev/lab/grab-sh.md)
## Hypr Switcher
Alt+Tab visual para o Hyprland, que não traz um alternador de janelas próprio. Em Rust sobre a camada layer-shell do Wayland, para o overlay aparecer acima de tudo sem roubar o foco, e com a latência de abertura como critério principal, porque é ela que decide se a ferramenta é usada ou abandonada.
- Stack: Rust, Wayland, Hyprland
- Markdown: [hypr-switcher.md](https://nandomoreira.dev/lab/hypr-switcher.md)
## job-radar
Varre sites de vagas, descarta o que não combina com o seu perfil e publica as compatíveis no Discord, rodando sozinho algumas vezes por dia. Python puro, sem dependências: filtros duros decidem o que passa, uma pontuação de 0 a 100 ordena o resto, e as qualificações saem do próprio currículo em markdown.
- Stack: Python, pytest, Discord, systemd
- Markdown: [job-radar.md](https://nandomoreira.dev/lab/job-radar.md)
## rdo-solo
Controlador de sessão solo para Red Dead Online e GTA Online, que bloqueia o tráfego peer-to-peer do jogo no gateway Linux por onde o console passa. Começou como script de iptables e ganhou uma TUI em Rust, com jogadores na sessão e GeoIP, e um painel web para ligar e desligar o modo solo pelo celular.
- Stack: Rust, Ratatui, Shell, iptables, Next.js
- Markdown: [rdo-solo.md](https://nandomoreira.dev/lab/rdo-solo.md)
## Tumodori
Pomodoro de terminal com dígitos grandes, legíveis de longe sem aproximar do monitor. Feito em Rust com Ratatui, para o cronômetro viver no mesmo lugar que o trabalho, e com os dígitos desenhados em bloco, para o tamanho não depender da fonte configurada no terminal de quem usa.
- Stack: Rust, Ratatui
- Markdown: [tumodori.md](https://nandomoreira.dev/lab/tumodori.md)
## Outros projetos abertos
- [sextafeirachegou.com.br](https://github.com/nandomoreirame/sextafeirachegou.com.br): Site que responde se já é sexta, com contagem regressiva e drama (TypeScript, 2026)
- [motivaai](https://github.com/nandomoreirame/motivaai): Gerador de frases motivacionais, refeito em Remix (TypeScript, 2019)
- [vovo-juju-ipsum](https://github.com/nandomoreirame/vovo-juju-ipsum): Gerador de falas da vovó Juju, da animação Irmão do Jorel (Vue, 2019)
- [app-whatsapp-url](https://github.com/nandomoreirame/app-whatsapp-url): Gera o link de conversa do WhatsApp para qualquer número (Vue, 2018)
- [nandomoreira.me-nuxt-theme](https://github.com/nandomoreirame/nandomoreira.me-nuxt-theme): Uma versão antiga do meu site pessoal, em Vue com Nuxt (Vue, 2016)
- [end2end](https://github.com/nandomoreirame/end2end): Tema Jekyll limpo para blogs (Sass, 2015)
- [dotX](https://github.com/nandomoreirame/dotX): Tema Jekyll simples para blogs (CSS, 2015)
- [lora](https://github.com/nandomoreirame/lora): Tema Jekyll gratuito para blogs (CSS, 2015)
Todos os repositórios: https://github.com/nandomoreirame?tab=repositories