diff --git a/.gitignore b/.gitignore index 990493a..e06a1a0 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,17 @@ secured_console_chat.egg-info/ # Editor / OS .idea/ +# Logs / runtime scratch +*.log +err.log + +# Out-of-tree experiments (not part of hack-house) +/experiments/ +/headroom/ + +# Heavy / superseded demo-build kit (real demos live in video-toolkit) +/docs/demo/ + # Project scratch /i-try/ test_rsa.py diff --git a/README.MD b/README.MD index 6285ea8..5d2c6e9 100644 --- a/README.MD +++ b/README.MD @@ -33,11 +33,13 @@ Encrypted chat that runs in your terminal. You host the server, you control the - **Zero-knowledge server** — relays only ciphertext; cannot read messages, files, or terminal output - **RAM only** — nothing persisted on the server; close it and history is gone - **Shared sandbox** — summon a disposable `local` / `docker` / `multipass` box the whole room can watch and drive -- **Real permissions** — the sandbox owner grants/revokes *drive* (keyboard) and *sudo* (VM superuser) per user -- **Local-first AI agent** — `/ai start` summons an in-room AI that runs against *your own* [Ollama](https://ollama.com) (no API key, nothing leaves your machine); model-agnostic, addressed-only, end-to-end encrypted like every other client +- **Snapshot save/load** — freeze a sandbox to a named snapshot and restore it later (`/sbx save` · `/sbx load` · `/sbx snaps`) +- **Local VirtualBox VMs** — `/sbx vms` detects VirtualBox and lists your VMs; `/sbx gui ` opens a desktop VM locally for the room to gather around — per-user consent gate, with automatic resolution of VT-x conflicts (Docker Desktop / multipass) +- **Real permissions** — the host grants/revokes *drive* (keyboard) and *sudo* (VM superuser) per user; **stacking roster badges** show exactly who holds what, both in the clergy panel and inline on every chat message +- **Local-first AI agent** — `/ai start` summons an in-room AI that runs against *your own* [Ollama](https://ollama.com) (no API key, nothing leaves your machine); replies **stream token-by-token** with **in-RAM semantic recall** of the conversation for context; model-agnostic, addressed-only, end-to-end encrypted like every other client - **Encrypted file transfer** — `/send` → `/accept` with SHA-256 verification - **TLS** — self-signed by default, or bring your own cert; `--no-tls` for local/Tailscale use -- **Themes** — switchable "vestments" (`church` · `neon` · `crypt`) +- **Themes** — seven switchable "vestments" (`crypt` default · `church` · `neon` · `blush` · `matrix` · `wraith` · `goldcrypt`), plus a live randomizer ## Layout @@ -157,6 +159,9 @@ Type to chat. Slash commands and keys: | `/ai models` | Models the active agent can serve — or, with no agent, your local Ollama tags | | `/sbx launch [local\|docker\|multipass] [image]` | Summon the shared sandbox | | `/sbx stop` | Tear down the sandbox you host | +| `/sbx save [label]` · `/sbx load