
HTTPS confiável para localhost — CA local, /etc/hosts, compartilhamento de LAN via mDNS, proxy reverso. Mapeia https://name.local → localhost:port
HTTPS real para desenvolvimento local — com uma TUI e compartilhamento na LAN.
mkdev executa HTTPS confiável em *.local. Um único binário Go: autoridade certificadora + proxy reverso + /etc/hosts + broadcast mDNS + uma TUI completa.
O que o torna diferente:
https://app.local do seu celular ou de qualquer dispositivo na mesma rede Wi-Fi.mkdev sem argumentos já abre a interface.internal/safeexec). Sem sombreamento baseado em PATH, sem atalhos graváveis pelo grupo.knownHost. Nem curinga, nem pré-gerados.mkdev install # CA + trust + daemon service + menu bar autostart
mkdev add myapp localhost:3000 # routes https://myapp.local → localhost:3000
curl https://myapp.local # 200 from your local app
install é único: gera a CA, confia nela no repositório do sistema, instala e habilita o serviço de usuário do daemon (launchd / systemd), registra a barra de menu para iniciar no login e abre a barra imediatamente quando há uma sessão gráfica ativa. O daemon é dono do proxy; a TUI (mkdev sem argumentos) e mkdev add | remove | list comunicam-se com ele via ~/.mkdev/daemon.sock.

A principal função do mkdev. Compartilhe uma rota com qualquer dispositivo na mesma rede Wi-Fi com TLS real — sem avisos, sem serviço de túnel.
s para alternar a coluna SHARE para LAN.<name>.local → o IP LAN desta máquina.https://<name>.local. Depois que o dispositivo confiar na CA do mkdev (uma única vez), sem avisos..local são transmitidas via mDNS. Outros TLDs continuam sendo proxy, mas não são alcançáveis na LAN pelo nome.s é imediato — o anúncio mDNS e a ACL do lado da LAN são atualizados na próxima requisição. Sem reinício.brew install venkatkrishna07/tap/mkdev
Atualize depois:
brew update
brew upgrade mkdev
go install github.com/venkatkrishna07/mkdev/cmd/mkdev@latest
Atualize para uma versão específica:
go install github.com/venkatkrishna07/mkdev/cmd/[email protected]
Binários pré-compilados para macOS (Intel + Apple Silicon), Linux (amd64 + arm64) e Windows (amd64) são publicados na página de Releases. Cada release inclui checksums.txt além de uma assinatura cosign sem chave (checksums.txt.sig + .pem) — veja SECURITY.md#verifying-releases para o comando de verificação.
No macOS, se o Gatekeeper bloquear um binário baixado diretamente:
xattr -d com.apple.quarantine ./mkdev
git clone https://github.com/venkatkrishna07/mkdev.git
cd mkdev
task build
cp bin/mkdev ~/bin/ # or /usr/local/bin
Requer Go 1.25+.
mkdev install # CA, trust, daemon service, bar autostart — one command
mkdev # launch TUI
Após install, o daemon roda em segundo plano e a barra de menu aparece (macOS, Linux GNOME/KDE, Windows). A barra mostra o status do daemon, a lista de rotas e alternâncias por rota de ativar / compartilhar na LAN; Quit sai da barra sem parar o daemon.
A barra é a interface sempre ativa. Ela vive na bandeja do sistema e conversa com o daemon via ~/.mkdev/daemon.sock. Inicia no login (autostart registrado pelo install); também pode ser executada em primeiro plano com mkdev bar.
O que ela mostra:
mkdev v0.4.0 + PID do daemon + tempo de atividade + porta de escuta do proxy.name.tld → target além de selos de sufixo ( · disabled, · LAN).O que ela faz (clique em uma rota):
https://name.tld com o aplicativo padrão do sistema.pbcopy / wl-copy / xclip / clip.exe).Enabled da rota. Rotas desativadas permanecem no armazenamento, mas deixam de ser proxy.Ações da barra:
DisableUnit primeiro para que o KeepAlive do launchd / systemd não o reinicie imediatamente e então envia o desligamento pelo socket.Notas:
mkdev daemon stop) param o daemon supervisionado de forma limpa — matar o processo do daemon diretamente fará com que ele seja reiniciado pelo launchd / systemd.Substitua o binário (brew upgrade / go install ...@latest / novo download). Na próxima vez que você executar qualquer subcomando mkdev, o binário reconcilia as partes externas a ele: reescreve o plist do daemon / unit do systemd e a entrada de autostart da barra para apontar para o novo binário, reafirma /etc/hosts para rotas habilitadas e volta a confiar na CA se ela tiver sido removida. Os prompts de sudo são executados inline. Se você tiver apenas o daemon rodando e nunca tocar na CLI, o daemon faz as partes seguras (sem sudo) na própria inicialização e enfileira o restante até o próximo comando da CLI.
Executar mkdev install novamente faz o mesmo de forma explícita e é sempre seguro — cada etapa é idempotente.
| Plataforma | Repositório de confiança | Elevação |
|---|---|---|
| macOS | Chaveiro do Sistema (security add-trusted-cert) | sudo / osascript |
| Linux | update-ca-trust / update-ca-certificates / trust extract-compat | sudo / pkexec |
| Windows | Armazenamento do sistema ROOT via crypt32.dll | UAC (PowerShell RunAs) |