Guest agent for Tart VMs
Go to file
Fedor Korotkov 9546f87949
Add backward-compatible exec process lifecycle
2026-07-26 17:04:21 -04: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 Add backward-compatible exec process lifecycle 2026-07-26 17:04:21 -04:00
packaging Automatically install and start a systemd service (#21) 2025-08-04 16:33:59 +04:00
proto/rpc Add backward-compatible exec process lifecycle 2026-07-26 17:04:21 -04:00
.gitignore Build universal binary instead of architecture dependent (#7) 2025-05-12 23:42:45 +04:00
.golangci.yml Migrate CI from Cirrus CI to GitHub Actions (#52) 2026-07-16 11:02:55 -04: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 Add backward-compatible exec process lifecycle 2026-07-26 17:04:21 -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 Bump the all-updates group across 1 directory with 5 updates (#46) 2026-05-12 22:27:32 +02:00
go.sum Bump the all-updates group across 1 directory with 5 updates (#46) 2026-05-12 22:27:32 +02: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
    • attached /Agent/Exec commands report Started with the guest process ID before standard output, standard error, or exit
    • clients can send a Signal with a unique, nonzero request_id and a guest-native signal number; all = false signals only that command, while all = true signals only its dedicated process group
    • a matching SignalAck is sent only after successful delivery; existing clients can ignore the additive events, and detached commands retain their original exit-only behavior
  • 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: