
信頼された localhost HTTPS — ローカル CA、/etc/hosts、mDNS LAN 共有、リバースプロキシ。https://name.local → localhost:port にマッピングします。
ローカル開発向けの本物のHTTPS — TUIとLAN共有付き。
mkdev は *.local 上で信頼されたHTTPSを実行します。単一のGoバイナリ: 認証局 + リバースプロキシ + /etc/hosts + mDNSブロードキャスト + フルTUI。
他との違い:
https://app.local にアクセスできます。mkdev でTUIが起動します。internal/safeexec)。PATHベースのシャドウイングもグループ書き込み可能なショートカットもありません。knownHost 許可リストによって制御されます。ワイルドカードでも事前生成でもありません。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 はワンショットです: CAを生成し、システムストアで信頼し、デーモンのユーザーサービス (launchd / systemd) をインストール・有効化し、ログイン時にメニューバーが起動するよう登録し、GUIセッションが存在する場合は即座にバーを起動します。デーモンがプロキシを所有し、TUI (mkdev 引数なし) と mkdev add | remove | list は ~/.mkdev/daemon.sock 経由でデーモンと通信します。

mkdevの目玉機能。同じWi-Fi上の任意のデバイスと、警告なし・トンネルサービスなしの本物のTLSでルートを共有します。
s を押して SHARE 列を LAN に切り替えます。<name>.local → このマシンのLAN IPとしてアドバタイズされます。https://<name>.local にアクセスします。デバイスがmkdev CAを信頼すれば (初回のみ)、警告は表示されません。.local ルートのみです。他のTLDもプロキシはされますが、名前ではLANから到達できません。s の切り替えはライブ反映です — mDNSアドバタイズとLAN側ACLは次のリクエストで更新されます。再起動は不要です。brew install venkatkrishna07/tap/mkdev
後でアップグレードする場合:
brew update
brew upgrade mkdev
go install github.com/venkatkrishna07/mkdev/cmd/mkdev@latest
特定のバージョンにアップグレードする場合:
go install github.com/venkatkrishna07/mkdev/cmd/[email protected]
macOS (Intel + Apple Silicon)、Linux (amd64 + arm64)、Windows (amd64) 向けのビルド済みバイナリは Releases ページ で公開されています。各リリースには checksums.txt に加えてcosignのキーレス署名 (checksums.txt.sig + .pem) が含まれます — 検証コマンドは SECURITY.md#verifying-releases を参照してください。
macOSで、Gatekeeperが直接ダウンロードしたバイナリをブロックする場合:
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
Go 1.25+ が必要です。
mkdev install # CA, trust, daemon service, bar autostart — one command
mkdev # launch TUI
install 実行後、デーモンはバックグラウンドで動作し、メニューバーが表示されます (macOS、Linux GNOME/KDE、Windows)。バーにはデーモンのステータス、ルート一覧、ルートごとの有効 / LAN共有トグルが表示されます。Quit はデーモンを停止せずにバーのみを終了します。
バーは常時表示のUIです。システムトレイに常駐し、~/.mkdev/daemon.sock 経由でデーモンと通信します。ログイン時に起動します (install が自動起動を登録)。mkdev bar でフォアグラウンドでも実行できます。
表示内容:
mkdev v0.4.0 + デーモンPID + 稼働時間 + リッスン中のプロキシポート。name.tld → target に加えて、接尾辞バッジ ( · disabled、 · LAN) を表示します。操作 (ルートをクリック):
https://name.tld を開きます。pbcopy / wl-copy / xclip / clip.exe)。Enabled フラグを切り替えます。無効にしたルートはストアに残りますが、プロキシされなくなります。バーレベルの操作:
DisableUnit を呼び出して launchd / systemd の KeepAlive が即座に再起動しないようにしてから、ソケット経由でシャットダウンを送信します。注意:
mkdev daemon stop) だけです — デーモンプロセスを直接killすると、launchd / systemd によって再起動されます。バイナリを置き換えます (brew upgrade / go install ...@latest / 新しいダウンロード)。次に mkdev サブコマンドを実行すると、バイナリは自身の外部にある部分を調整します: デーモンのplist / systemdユニットとバーの自動起動エントリを新しいバイナリを指すように書き換え、有効なルートの /etc/hosts を再適用し、CAが削除されていれば再信頼します。sudoプロンプトはインラインで実行されます。CLIに触れずデーモンだけが実行されている場合、デーモンは起動時に安全な (sudo不要の) 部分を自分で処理し、残りは次のCLIコマンドまでキューに入れます。
mkdev install を再実行すると同じことが明示的に行われ、常に安全です — すべてのステップは冪等です。
| プラットフォーム | トラストストア | 権限昇格 |
|---|---|---|
| macOS | システムキーチェーン (security add-trusted-cert) | sudo / osascript |
| Linux | update-ca-trust / update-ca-certificates / trust extract-compat | sudo / pkexec |
| Windows | ROOT システムストア (crypt32.dll 経由) | UAC (PowerShell RunAs) |
検出されるLinuxディストリビューション: Debian/Ubuntu (/usr/local/share/ca-certificates)、RHEL/Fedora (/etc/pki/ca-trust/source/anchors)、Arch (/etc/ca-certificates/trust-source/anchors)、openSUSE (/usr/share/pki/trust/anchors)。
Firefoxは独自のNSSストアを使用するため、まだ未対応です — システムのChrome/Safari/Edge/curl/wgetはすべて動作します。
| コマンド | 用途 |
|---|---|
install | ワンショット: CA + 信頼 + デーモンサービス + バーの自動起動。CAのみの場合は --no-service を指定します。 |
add <name> <target> | ルートを追加します。/etc/hosts に 127.0.0.1 エントリを追加します。 |
remove <name> | ルートとその /etc/hosts エントリを削除します。 |
list | ストア内のルートを一覧表示します。 |
tui | TUIを起動します (引数なしで実行した場合のデフォルトでもあります)。 |
daemon serve | デーモンをフォアグラウンドで実行します (通常はサービスユニットから駆動されます)。 |
daemon stop | 実行中のデーモンを停止し、ユーザーサービスを無効化します。 |
daemon status | サービスのインストール済み / 有効 / 実行中状態を報告します。 |
bar | メニューバーアプリを起動します。install によって自動起動されます。 |
uninstall | CAの信頼を解除し、/etc/hosts エントリを削除し、デーモン + バーの自動起動をアンインストールし、~/.mkdev/ を消去します。 |
version | バージョン、コミット、ビルド日を表示します。 |
completion <bash|zsh|fish|powershell> | シェル補完スクリプトを出力します。 |
hosts-helper | 隠しコマンド。sudo 経由で呼び出され、/etc/hosts をアトミックに変更します。 |
| フラグ / 環境変数 | 効果 |
|---|---|
--home <path> | ~/.mkdev 状態ディレクトリを上書きします。 |
--verbose, -v | stderrにデバッグレベルのログを出力します。 |
--version | バージョンを表示して終了します。 |
MKDEV_HOME=<path> | --home と同等です。 |
<target> は以下のいずれかを受け付けます:
host:port e.g. localhost:3000
http://host[:port]/path e.g. http://localhost:3000/api
https://host[:port]/path e.g. https://gitlab.example.com