Vici Dev
Edit a live Vici Online server's scripts from VS
Code. Save a file and the change is on the server immediately — no build step,
no deploy, no restart.
Requirements
- A running ViciClient, signed in on an account the target server grants
dev access to. The extension talks to that client over a localhost channel;
it never connects to a game server directly.
- VS Code 1.85 or newer. VSCodium and other compatible forks work.
Get the client from vicionline.com.
Getting started
- Start ViciClient and log in.
- In VS Code, run Vici Dev: Connect from the Command Palette.
- The extension opens a mirror of the server's script tree. Edit a file and
save it — the script reloads in place on the running server.
The Vici container in the activity bar carries three views: Status,
Working Changes (what is currently dirty on the server, and which dev
changed it), and History (checkpoints, expandable to per-file diffs).
Saving and history
There is no commit step. The server watches its working tree and checkpoints a
set of files once they have gone quiet. Vici Dev: Checkpoint Now forces one
immediately — useful before a risky edit or at the end of a session.
Revert on a History entry rolls that checkpoint back. Discard on one of
your own working changes rolls that file back to its last checkpoint; another
dev's changes are shown to you read-only.
If the ViciClient goes away, the status bar shows Reconnecting… and the
extension re-attaches on its own when the client returns, re-applying any edit
that was in flight. Vici Dev: Stop Reconnecting halts the retries.
Commands
| Command |
What it does |
| Vici Dev: Connect |
Attach to a running ViciClient |
| Vici Dev: Disconnect |
Detach from the current session |
| Vici Dev: Reconnect |
Retry the connection now |
| Vici Dev: Stop Reconnecting |
Halt automatic retries |
| Vici Dev: Pull Latest |
Refresh the mirror from the server |
| Vici Dev: Discard Changes |
Roll back all of your working changes |
| Vici Dev: Discard This File |
Roll back the active file |
| Vici Dev: Checkpoint Now |
Force a save point immediately |
| Vici Dev: Revert Checkpoint... |
Pick a checkpoint and roll back to it |
| Vici Dev: Reload All Scripts |
Reload every script on the server |
| Vici Dev: Run RPC... |
Send a dev-channel RPC by hand |
| Vici Dev: View Diff |
Diff a checkpoint |
| Vici Dev: Revert |
Revert the selected checkpoint |
| Vici Dev: View Diff (file) |
Diff one file in a checkpoint |
| Vici Dev: Discard File |
Discard one file from Working Changes |
Settings
| Setting |
Default |
What it does |
vici.scope.paths |
["/"] |
Folders to mirror from the dev channel. The server intersects these with your permissions and may return a narrower effective scope. |
vici.scope.extensions |
[] |
Optional file-extension allowlist (lowercase, no leading dot). Empty means no filter. |
License
Proprietary. See LICENSE.txt in the package.
Development
Everything below is for working on the extension itself, not for using it.
Develop
npm run watch in one terminal, then F5 in VSCode to launch the Extension Development Host.
Test
npm run compile
npm test # unit tests (mocked dev-channel)
npm run test:e2e # E2E via @vscode/test-electron — connect, save round-trip,
# reconnect resilience, and the agent bridge (/test, /resync,
# /status, /health)
The E2E suite spins up a stub TCP dev-channel server in-process and drives a real Extension Development Host against it. On macOS the runner uses env-var path overrides (VICI_DEV_CHANNELS_DIR, VICI_PROJECTS_DIR) instead of redirecting $HOME; that keeps the system keychain out of the loop, so no password popups interrupt the run.
Manual end-to-end smoke
The unit + E2E suites cover the wire protocol and the save round-trip; the manual smoke is what proves the loop works against a real ViciClient. Follow steps 1–10 in docs/superpowers/plans/2026-05-06-remote-dev-plan-e-vscode-extension.md under "How to run tests / Manual end-to-end smoke" — that's the gate the user runs to validate remote development before declaring Plan E done.