
HTTPS localhost de confianza — CA local, /etc/hosts, uso compartido en LAN mDNS, proxy inverso. Mapea https://name.local → localhost:port
HTTPS real para desarrollo local — con TUI y uso compartido en LAN.
mkdev ejecuta HTTPS de confianza en *.local. Un único binario Go: autoridad de certificados + proxy inverso + /etc/hosts + difusión mDNS + un TUI completo.
Qué lo hace diferente:
https://app.local desde tu teléfono o cualquier dispositivo en la misma Wi-Fi.mkdev sin argumentos te lleva directo.internal/safeexec). Sin suplantación basada en PATH, sin atajos escribibles por el grupo.knownHost explícita. Ni comodín ni pregenerados.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 es de una sola pasada: genera la CA, la confía en el almacén del sistema, instala y habilita el servicio de usuario del daemon (launchd / systemd), registra la barra de menú para que se inicie al iniciar sesión y la lanza inmediatamente cuando hay una sesión gráfica presente. El daemon es el propietario del proxy; el TUI (mkdev sin argumentos) y mkdev add | remove | list se comunican con él a través de ~/.mkdev/daemon.sock.

La función estrella de mkdev. Comparte una ruta con cualquier dispositivo en la misma Wi-Fi con TLS real — sin advertencias, sin servicio de túnel.
s para cambiar la columna SHARE a LAN.<name>.local → la IP LAN de esta máquina.https://<name>.local. Una vez que el dispositivo confía en la CA de mkdev (una sola vez), no hay advertencias..local se difunden por mDNS. Otros TLD siguen haciendo de proxy pero no son alcanzables en LAN por nombre.s es en vivo — el anuncio mDNS y la ACL del lado LAN se actualizan en la siguiente solicitud. Sin reinicio.brew install venkatkrishna07/tap/mkdev
Actualiza más tarde:
brew update
brew upgrade mkdev
go install github.com/venkatkrishna07/mkdev/cmd/mkdev@latest
Actualiza a una versión específica:
go install github.com/venkatkrishna07/mkdev/cmd/[email protected]
Los binarios precompilados para macOS (Intel + Apple Silicon), Linux (amd64 + arm64) y Windows (amd64) se publican en la página de Releases. Cada versión incluye checksums.txt más una firma cosign sin clave (checksums.txt.sig + .pem) — consulta SECURITY.md#verifying-releases para el comando de verificación.
En macOS, si Gatekeeper bloquea un binario descargado directamente:
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
Requiere Go 1.25+.
mkdev install # CA, trust, daemon service, bar autostart — one command
mkdev # launch TUI
Después de install, el daemon se ejecuta en segundo plano y aparece la barra de menú (macOS, Linux GNOME/KDE, Windows). La barra muestra el estado del daemon, la lista de rutas y los interruptores por ruta de habilitar / compartir en LAN; Quit cierra la barra sin detener el daemon.
La barra es la interfaz siempre activa. Vive en la bandeja del sistema y se comunica con el daemon a través de ~/.mkdev/daemon.sock. Se inicia al iniciar sesión (autoinicio registrado por install); también se puede ejecutar en primer plano con mkdev bar.
Qué muestra:
mkdev v0.4.0 + PID del daemon + tiempo de actividad + puerto de escucha del proxy.name.tld → target más insignias de sufijo ( · disabled, · LAN).Qué hace (clic en una ruta):
https://name.tld con el manejador predeterminado del sistema.pbcopy / wl-copy / xclip / clip.exe).Enabled de la ruta. Las rutas deshabilitadas permanecen en el almacén pero dejan de pasar por el proxy.Acciones a nivel de barra:
DisableUnit para que launchd / systemd KeepAlive no lo reinicie inmediatamente, y luego envía el apagado a través del socket.Notas:
mkdev daemon stop) detienen limpiamente el daemon supervisado — matar el proceso del daemon directamente hará que launchd / systemd lo reinicie.Reemplaza el binario (brew upgrade / go install ...@latest / nueva descarga). La próxima vez que ejecutes cualquier subcomando mkdev, el binario reconcilia las partes que viven fuera de él: reescribe el plist del daemon / la unidad de systemd y la entrada de autoinicio de la barra para que apunten al nuevo binario, vuelve a aplicar las entradas de /etc/hosts para las rutas habilitadas y vuelve a confiar en la CA si se eliminó. Los avisos de sudo se ejecutan en línea. Si solo tienes el daemon ejecutándose y nunca tocas la CLI, el daemon hace las partes seguras (sin sudo) en su propio inicio y pone en cola el resto hasta el siguiente comando de la CLI.
Volver a ejecutar mkdev install hace lo mismo explícitamente y siempre es seguro — cada paso es idempotente.