@thevinci/web
v1.4.0
Published
[.
Prerequisites: OpenCode CLI installed, Node.js 20+.
Quick Start
vinci # Start on port 3900
vinci --port 8080 # Custom port
vinci --ui-password secret # Password-protect UI
vinci tunnel start --provider cloudflare --mode quick --qr # Remote accessCreative Agents
Vinci uses a team of AI agents that work together like a creative agency:
- Motion — Creative Director & Lead Video Editor
- Designer — UI/UX & Graphic Design Specialist
- Dataviz — Data Visualization Specialist
- Publisher — Document & Presentation Designer
- Assistant — General-purpose Support Specialist
CLI Usage
vinci # Start on port 3900
vinci --port 8080 # Custom port
vinci --ui-password secret # Password-protect UI
vinci tunnel help # Tunnel lifecycle commands
vinci tunnel providers # Show provider capabilities
vinci tunnel profile add --provider cloudflare --mode managed-remote --name prod-main --hostname app.example.com --token <token>
vinci tunnel start --profile prod-main
vinci tunnel start --provider cloudflare --mode quick --qr
vinci tunnel start --provider cloudflare --mode managed-local --config ~/.cloudflared/config.yml
vinci tunnel status --all # Show tunnel state across instances
vinci tunnel stop --port 3900 # Stop tunnel only (server stays running)
vinci logs # Follow latest instance logs
vinci stop # Stop server
vinci update # Update to latest versionConnect to external OpenCode server
OPENCODE_PORT=4096 OPENCODE_SKIP_START=true vinci
OPENCODE_HOST=https://myhost:4096 OPENCODE_SKIP_START=true vinci| Variable | Description |
|----------|-------------|
| OPENCODE_HOST | Full base URL of external server (overrides OPENCODE_PORT) |
| OPENCODE_PORT | Port of external server |
| OPENCODE_SKIP_START | Skip starting embedded OpenCode server |
| VINCI_OPENCODE_HOSTNAME | Bind hostname for managed OpenCode server (default: 127.0.0.1, use 0.0.0.0 for LAN/remote access — trusted networks only) |
| VINCI_HOST | Bind hostname for the Vinci web server (default: 127.0.0.1; use 0.0.0.0 for LAN/remote access — trusted networks only) |
Tunnel behavior notes
- One active tunnel per running Vinci instance (port).
- Starting a different tunnel mode/provider on the same instance replaces the active tunnel.
- Replacing or stopping a tunnel revokes existing connect links and invalidates remote tunnel sessions.
- Connect links are one-time tokens; generating a new link revokes the previous unused link.
VINCI_OPENCODE_HOSTNAME=0.0.0.0 vinci --port 3900Security note: binding to 0.0.0.0 exposes the server on all network interfaces — use only on trusted networks and protect with firewall rules or --ui-password.
vinci # Runs in background by default
vinci stop # Stop background serverUse --foreground to keep the CLI process alive so systemd (or any other process manager) can track and restart it. Combine with OPENCODE_HOST to connect to an OpenCode instance running as a separate service.
~/.config/systemd/user/opencode.service
[Unit]
Description=OpenCode Server
[Service]
Type=simple
ExecStart=opencode serve --port 4095
Environment="PATH=/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/home/YOU/.local/bin:/home/YOU/.npm-global/bin:/usr/local/bin:/usr/bin:/bin"
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
Restart=on-failure
RestartSec=5
[Install]
WantedBy=default.target~/.config/systemd/user/vinci.service
[Unit]
Description=Vinci Web Server
After=opencode.service
[Service]
Type=simple
ExecStart=vinci serve --port 3900 --host 0.0.0.0 --ui-password your-password --foreground
Environment="OPENCODE_HOST=http://localhost:4095"
Environment="OPENCODE_SKIP_START=true"
Restart=on-failure
RestartSec=5
[Install]
WantedBy=default.targetsystemctl --user daemon-reload
systemctl --user enable --now opencode vinci--host 0.0.0.0 is required to listen on all interfaces (the default is 127.0.0.1). Use --host <ip> or VINCI_HOST=<ip> to bind to a specific interface instead.
What makes the web version special
- Creative agents — Motion, Designer, Dataviz, Publisher work together like a creative agency
- Remote access — Cloudflare tunnel with QR onboarding. Scan from your phone, start creating.
- Mobile-first PWA — optimized chat controls, keyboard-safe layouts, drag-to-reorder projects
- Background notifications — know when your agent finishes, even from another tab
- Self-update — update and restart from the UI, server settings stay intact
- Cross-tab tracking — session activity stays in sync across browser tabs
License
MIT
