Metadata-Version: 2.4
Name: abstract_vmshare
Version: 0.1.2
Summary: Shared VM workspaces: read-only master images, per-workspace copy-on-write overlays and an authenticated VNC-over-WebSocket bridge (libvirt/KVM host service).
Author-email: putkoff <partners@abstractendeavors.com>
License: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: aiohttp>=3.9

# abstract_vmshare

Shared VM workspaces on a libvirt/KVM host, built for co-operative rooms in
[abstractendeavors.com/chat](https://abstractendeavors.com/chat).

- **Masters** are read-only disk images, stored once per host (`vmshare sync` pulls them, resumable).
- **Workspaces** boot as copy-on-write qcow2 overlays on a master: start in seconds, keep their
  state between sessions, and `reset` returns them to the master.
- The VM display is VNC on `127.0.0.1` only; the service bridges it over an authenticated
  WebSocket (raw RFB, noVNC-compatible) for a trusted front end (the chat server).

```bash
python3 -m pip install abstract-vmshare
VMSHARE_TOKEN=... vmshare serve          # :7031
vmshare sync ubuntu                       # pull a master
vmshare start room-12 ubuntu              # ops/debug
```

API (all requests need `Authorization: Bearer $VMSHARE_TOKEN`): `GET /masters`, `GET /host`,
`GET|POST /workspaces/{id}[/start|/stop|/reset]`, `GET /workspaces/{id}/vnc` (WebSocket).
