A duck stuffed inside a toad. The duck inhabits the toad.
The duck inhabits the toad. First TUI experience for Vers VMs with ACP (Agent Client Protocol) support.
# One command - duck handles everything
just duck
# Or directly
bb toaducken/duck.bb
just duck serve
# Opens http://localhost:8080 - Duckhole web portal
# Shows detected API keys, passes them to VM, shows Toad banner
just duck <vm-id>
# Example
just duck 6a4ede1d
just duck vms
just duck query "SELECT * FROM vm_inventory LIMIT 5"
just duck build
# Builds toad-acp:latest using Apple container CLI
export VERS_API_KEY=<your-key>
just duck register
# Registers toad-acp as custom base image
Duck automatically detects and passes these to VMs:
OPENAI_API_KEYANTHROPIC_API_KEYGOOGLE_API_KEYMISTRAL_API_KEYGROQ_API_KEYELEVENLABS_API_KEYVERS_API_KEYjust duck carnage
# 🦆💀 Deletes ALL VMs - use with care
| File | Purpose |
|------|---------|
| duck.bb | Main entry point - the duck decides its form |
| vers-duckhole.bb | Web server for DuckDB conversation viewer |
| Duckerfile | Minimal Fedora image with Toad + Codex + WireGuard |
just duck → duck.bb
│
├── (no args) → Connect to VM with Toad banner + API keys
├── serve → Start duckhole web server
├── vms → Query VM inventory from DuckDB
├── query → SQL across conversation history
├── build → Build toad-acp container image
└── register → Register with Chelsea API
Toad serves ACP on port 9000 inside the VM:
# From inside VM or via tunnel
curl -X POST http://localhost:9000 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
just duck detects API keys locallyvers executebb (Babashka)vers CLI