Guest agent for Tart VMs
Go to file
edi-oai 721b111c0c
Exec as user, out-of-band signalling, and stdin closure when the request stream ends (#58)
* Support running exec commands as a selected user

* Move exec signaling out of band

* Close standard input when the exec request stream ends
2026-08-10 23:23:07 +01:00
.github Migrate CI from Cirrus CI to GitHub Actions (#52) 2026-07-16 11:02:55 -04:00
cmd Automatically install and start a systemd service (#21) 2025-08-04 16:33:59 +04:00
internal Exec as user, out-of-band signalling, and stdin closure when the request stream ends (#58) 2026-08-10 23:23:07 +01:00
packaging Automatically install and start a systemd service (#21) 2025-08-04 16:33:59 +04:00
proto/rpc Exec as user, out-of-band signalling, and stdin closure when the request stream ends (#58) 2026-08-10 23:23:07 +01:00
.gitignore Build universal binary instead of architecture dependent (#7) 2025-05-12 23:42:45 +04:00
.golangci.yml Emit an explicit "Started" message and support sending signals (#56) 2026-08-10 21:08:27 +01:00
.goreleaser.yml Migrate CI from Cirrus CI to GitHub Actions (#52) 2026-07-16 11:02:55 -04:00
LICENSE Update license copyright holder (#51) 2026-07-16 10:01:47 -04:00
README.md RPC: introduce ResolveIP() method to support "tart ip --resolver=agent" (#14) 2025-06-19 13:06:26 +04:00
buf.gen.yaml "tart exec" support (--run-rpc) and component groups (e.g. --run-daemon) (#10) 2025-05-19 18:53:16 +04:00
buf.yaml "tart exec" support (--run-rpc) and component groups (e.g. --run-daemon) (#10) 2025-05-19 18:53:16 +04:00
go.mod Exec as user, out-of-band signalling, and stdin closure when the request stream ends (#58) 2026-08-10 23:23:07 +01:00
go.sum Exec as user, out-of-band signalling, and stdin closure when the request stream ends (#58) 2026-08-10 23:23:07 +01:00

README.md

Guest agent for Tart VMs

A guest agent for Tart VMS is a lightweight background service that runs inside the virtual machine and enables enhanced communication between the host and guest and other useful features, such as automatic disk resizing.

Currently implemented features:

  • Automatic disk resizing for macOS VMs with recovery partition removed (--resize-disk)
  • Clipboard sharing for macOS VMs using our in-house SPICE vdagent implementation (--run-vdagent)
  • tart exec support (--run-rpc)
    • it's recommended to invoke it as a launchd global agent because fewer privileges will be available to commands started via tart exec
    • however, you can also invoke it as a launchd global daemon if running commands started via tart exec as root is desired
  • tart ip --resolver=agent support (--run-rpc)
    • allows resolving VM's IP address without relying on DHCP leases and/or an ARP table

To run all features appropriate for a given context, use component groups: