Secure, Synchronized, Realtime, Cloud, Native JavaScript Variables & Events

Usage no npm install needed!

<script type="module">
  import v from 'https://cdn.skypack.dev/v';


V Logo

🔒 Secure ❄️ Synchronized ⚡️ Realtime ☁️ Cloud 🌈 Native JavaScript Variables & Events

npm downloads Greenkeeper badge Build Status codecov bitHound Overall Score
NSP Status Known Vulnerabilities

V extends your in-memory variables to also be saved/persisted instantly. Variables are instantly synchronized between all running instances of V in a room. When you (re)start in a room, variables and constants are reloaded/rehydrated automatically.

Current Features

  • Keep your variables in the cloud
  • Sync variables between instances
  • Automatic reloaded/rehydrated on start-up

Requires ES6 Proxy (Node 6+ and new browsers)

Coming Soon:

  • Web GUI
  • History - Time machine
  • Events pub/sub



npm install --save v
npm i -S v


Unpkg CDN:

<script src="https://unpkg.com/v/v.min.js"></script>

More CDNs coming soon


Constructor (3 Ways to do it)

If no roomId is passed, a new one will be assigned automatically and printed in the console.

NodeJS only with deasync support
const V = require('v')
const v = new V([roomId])
const V = require('v')
V([roomId,] v => {

const V = require('v')
V([roomId]).then(v => {

}).catch(e => {


Custom Opts

The opts object has the following options and their default options listed

myOpts = {
  roomId: '',
  server: 'wss://api.online.vars'

Use it:

const v = new V(myOpts)

Debug logs

V comes with extensive debugging logs. Each V instance and constructor-call has it own debug namespace.

In node, enable debug logs by setting the DEBUG environment variable to *

DEBUG=* node myProgram.js

In the browser, enable debug logs by running this in the developer console:

localStorage.debug = '*'

Disable by running this:



GPL-3.0 Copyright © Diego Rodríguez Baquero