When the SPICE clipboard channel is not available (e.g., running headless or without clipboard sharing), the vdagent would previously retry every 1 second, initializing the clipboard library each time. This caused unnecessary CPU usage. Changes: - Defer clipboard.Init() until first successful SPICE message - Add ErrSPICENotConnected error type to distinguish "never connected" from "connection lost" - Use 1-minute backoff when SPICE is not available, vs 1-second for transient failures Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .github | ||
| cmd | ||
| internal | ||
| packaging | ||
| proto/rpc | ||
| .cirrus.yml | ||
| .gitignore | ||
| .golangci.yml | ||
| .goreleaser.yml | ||
| LICENSE | ||
| README.md | ||
| buf.gen.yaml | ||
| buf.yaml | ||
| go.mod | ||
| go.sum | ||
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)- needs to be invoked as a launchd global daemon
- Clipboard sharing for macOS VMs using our in-house SPICE vdagent implementation (
--run-vdagent)- needs to be invoked as a launchd global agent
tart execsupport (--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 execasrootis desired
- it's recommended to invoke it as a launchd global agent because fewer privileges will be available to commands started via
tart ip --resolver=agentsupport (--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:
--run-daemon- implies
--resize-disk - example usage:
tart-guest-daemon.plist
- implies
--run-agent- implies
--run-vdagent --run-rpc - example usage:
tart-guest-agent.plist
- implies