Repository navigation
HanaLima: Native macOS GUI for Lima with rootless NAT, host-only and bridged networks #5684
izawa
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Hi everyone! Thanks to @TheLimaProject for the invitation on X.
I'd like to share HanaLima, an unofficial native macOS (SwiftUI) GUI for Lima. It's a one-person hobby project, so please go easy on it 🙂
What it does
Create and run VMs, size CPUs/memory/disks, edit settings in a form or as raw
lima.yaml, open an in-app console, manage disks and shares, and set up NAT, host-only and bridged networks with fixed IPs — all without root, sudoers or socket_vmnet. The UI is in English and Japanese.How it works with Lima
Zero patches to Lima: HanaLima just drives
limactl. It readslimactl list --format jsonandlimactl watch --json, and turns form edits intolimactl edit --setexpressions for only the fields you touched, so Lima's defaults, unknown keys and comments survive and Lima validates every change.The networking part, which may interest Lima developers
vmnet_networklets an ordinary user create a NAT or host-only network with a chosen subnet and DHCP reservations, as long as the binary is signed withcom.apple.security.virtualization.vmnet_start_interfaceinVMNET_BRIDGED_MODEalso starts fine as a non-root user — so classic bridged mode (wired or Wi-Fi) works without socket_vmnet running as root.hanalima-netd) speaks socket_vmnet's wire protocol (QEMU stream framing: 4-byte big-endian length + frame) on one side and vmnet on the other, so Lima connects through its existingnetworks: - socket: PATHconfig. Works for both VZ and QEMU VMs.limactl startfrom a shell.Other bits
clonefile(instant, space only for what changes), and new VMs from snapshots.diskto an external drive while keeping it sparse (copyfilewithCOPYFILE_DATA_SPARSE), and back.Status
v0.5.0, MIT. Requires macOS 26+ and Lima 2.2+. No signed release yet — it builds and installs with one script (
scripts/make-app.sh --install --open). Design notes are in the repo underdocs/.Feedback, bug reports and ideas are very welcome. And thank you to the Lima maintainers — none of this would exist without
limactland its JSON interfaces.All reactions