Voltar às atualizações
New releaseAug 3, 2026

nmlinux v1.7.11

Toolkit de rede unificado para Linux — Python 3 + PySide6

Compartilhar

NMLinux · v1.7.12

Version Python License: GPL-2.0 Platform Languages Donate Bitcoin

Um kit de ferramentas de rede unificado para Linux e macOS — inspecione, conecte, diagnostique.

O NMLinux é uma GUI única e unificada que reúne 29 módulos de rede em uma única janela: monitoramento de interfaces, Wi-Fi, DNS, terminal SSH, visualizador de firewall, mapa de topologia, traceroute e muito mais. Construído do zero em Python e PySide6 (Qt 6), com 8 idiomas de interface e sem dependências externas além das ferramentas padrão do sistema.

[!NOTE] O NMLinux não está relacionado ao daemon do sistema Linux /usr/bin/NetworkManager (NetworkManager da Red Hat/GNOME). O NMLinux é um projeto independente construído do zero em Python e PySide6.

Construído com Claude Code (Anthropic) e a contribuição do seu autor.


Processo de desenvolvimento

O NMLinux é construído com assistência de IA — Claude Code, especificamente — e isso não está escondido em nenhum lugar deste repositório. Quase todo projeto de software sério hoje usa IA em algum lugar do seu pipeline, quer diga ou não. Portanto, "a IA esteve envolvida" não é a pergunta interessante. A pergunta interessante é: existe algo que detecte quando a IA erra?

Aqui está o que faz isso, se preferir verificar em vez de aceitar minha palavra:

  • 162 testes — pytest tests/ -v. Lógica pura mais um punhado de testes reais de widgets Qt (menus, tabelas), sem simular as partes interessantes.
  • docs/Decisions-Techniques.md — cada decisão técnica não óbvia, as alternativas que foram rejeitadas e os bugs (incluindo os introduzidos por IA) que foram encontrados e corrigidos, com o raciocínio documentado.
  • docs/Architecture.md e docs/Carte-des-Modules.md — a estrutura real do código, mantida em sincronia com o que é distribuído.
  • Uma verificação de consistência i18n executada antes de cada lançamento para detectar chaves de tradução ausentes nos 8 idiomas suportados.

Nada disso existe porque a IA não pode ser confiável. Existe porque nada deveria ser lançado sem um processo que o verifique — código escrito à mão incluído. Julgue o resultado e como ele é verificado, não a ferramenta que ajudou a escrevê-lo.

Encontrou um bug mesmo assim? Isso é útil, não embaraçoso — abra uma issue.


Comunidade

GitHub Discussions estão abertos — compartilhe feedback, relate ideias, faça perguntas ou apenas diga olá. O autor tem mais de 30 anos em infraestrutura e operações, e construiu esta ferramenta porque software bom, gratuito e simples também deveria existir para Linux.


Capturas de tela

Capturas de tela do Linux da v1.2.7 — capturas de tela do macOS da v1.3.5. O aplicativo agora tem 29 módulos e 8 idiomas de interface (FR/EN/ES/DE/IT/PT/JA/ZH).

Linux (KDE)

DashboardTopologia
DashboardTopologia
TracerouteWi-Fi
TracerouteWi-Fi

macOS

DashboardTraceroute
Dashboard macOSTraceroute macOS

Registro de alterações

v1.7.12 — 2026-08-12

  • Traceroute — correção: sob Flatpak (v1.7.11, veja abaixo — agora removido), traceroute sempre resolvia no PATH via o shim do host mesmo quando o host não tinha um binário real de traceroute instalado, então o worker nunca recorria ao tracepath e o trace terminava instantaneamente sem hops e sem erro exibido. Agora ele recorre ao tracepath sempre que traceroute não produz nenhuma saída analisável, independentemente do motivo da falha.
  • Terminal SSH — correção do askpass: quando DISPLAY/WAYLAND_DISPLAY estão definidos (qualquer sessão GUI) e o ssh não tem um tty limpo, ele pode tentar $SSH_ASKPASS para o prompt de senha em vez do terminal embutido — falhando silenciosamente na autenticação se nenhum helper askpass estiver instalado. SSH_ASKPASS_REQUIRE=never agora força os prompts de senha a sempre passarem pelo próprio terminal.
  • Empacotamento Flatpak removido: o manifesto local para KDE Linux distribuído na v1.7.11 foi descontinuado. A investigação do bug do prompt de senha SSH acima revelou uma limitação em nível de kernel: um processo retransmitido via flatpak-spawn --host nunca pode se tornar o proprietário do terminal de controle do pty encaminhado (TIOCSCTTY recusado com EPERM — uma sessão diferente e não relacionada já o possui; isso é um limite de segurança intencional do kernel, não um bug). A única alternativa viável (script, alocando um pty novo) corrige o prompt de senha, mas quebra a propagação de redimensionamento do terminal ao vivo para essa sessão — considerado um trade-off pior do que não distribuir Flatpak. AUR e o AppImage são os caminhos de instalação Linux suportados daqui em diante.

v1.7.11 — 2026-08-03

  • Empacotamento Flatpak (KDE Linux): um manifesto de build local sob packaging/flatpak/ tem como alvo KDE Linux e outras distros somente Flatpak. As ferramentas CLI do host que o nmlinux invoca (nmcli, pkexec, mount.cifs, ssh, nmap, …) são conectadas via shims flatpak-spawn --host no PATH em vez de sandboxar cada uma individualmente; o PySide6 vem do io.qt.PySide.BaseApp do Flathub em vez da wheel do PyPI. Não publicado no Flathub — um único bundle .flatpak é construído com packaging/flatpak/build-bundle.sh e anexado a cada lançamento, da mesma forma que o AppImage já é. Descontinuado na v1.7.12 — veja acima.

v1.7.10 — 2026-08-03

Categorias