vq 0.26.42 “Raymond’s Bazaar”¶
vq is a cross-machine job queue. It takes a command, runs it on the machine you point it at — your laptop, a server over SSH, or a cluster behind PBS or SLURM — and tracks it until you fetch the results back. It was built to run vibe-qc calculations and it does not care whether that is what you run.
vq submit compute -- python optimise.py
vq queue
vq fetch <jobid> -o results/
vq needs Python 3.12 or newer, and installs nothing on the remote host but
itself. Its entire transport is SSH: if you can ssh to a machine, vq can
queue work on it.
Get vq¶
Start with clone, download, and install for the split repository layout, source archives, and the GitHub mirror.
Three ways to read this¶
This documentation serves three readers who want almost nothing in common. Start in the right place.
Submit work, watch it, get the results back. Dependencies, arrays, retries, wall-time limits, and what to do when a job will not start.
Install and supervise the daemon, register engines, expose a host safely, cap what a job may consume, deploy for several users, and recover a host that has stopped answering.
The machine-readable contract: stable JSON shapes, exit codes, the states a job moves through, and the invariants you may rely on between versions.
This manual follows the current source with package version 0.26.42; source updates may precede deployment on a particular host.
Available workflows¶
The current source includes direct and SSH submission, PBS/Slurm driver queues, an opt-in durable fleet broker, immutable runtime slots, campaigns, resource-estimate receipts and placement explanations. The broker holds work until a configured daemon host has capacity; PBS/Slurm targets continue through their scheduler drivers. See broker operation, runtime slots, campaigns, resource estimates and placement. Availability on a particular machine depends on its installed version and operator configuration. A source feature does not enable itself on a host.
What vq guarantees¶
The three that matter most, because they are what the rest is built on:
A job’s state is durable. Every transition is written to disk before it is reported. A daemon restart, a reboot, or an SSH drop does not lose a job or silently change its outcome; an interrupted job says it was interrupted.
Dispatch is capped, and the caps compose. A job runs only when the CPU, memory and concurrency budgets all allow it. A per-submitter quota can tighten a host’s global cap and can never loosen it.
vq stays out of the transport. Hostnames, ports and keys live in
~/.ssh/config, not in vq’s configuration. Nothing in vq changes when a host
moves onto the internet.
Where to find the rest¶
Changelog —
CHANGELOG.mdReporting a bug —
CONTRIBUTING.md; for anything security-relevant,SECURITY.mdrather than a public issuePublic source — GitHub mirror. Private GitLab access details come from the maintainers.
Cutting a release — the release process, and version compatibility for what a vq version means to a fleet
What is next — the roadmap: what is planned, and what is released but not yet proven on a host
History and design records — kept in the source tree, not published here. Each says in its first paragraph what it is. Four are history:
roadmap_history.md(v0.1 to v0.9),v0_7_1_lamports_clock_design.md,pbs_dispatcher_backend_design.mdandwall_time_design.md. Two record designs now implemented in increments, including remaining limits:design_immutable_venv_runtimes.mdanddesign_broker.md. Their current user-facing instructions are in runtime slots and broker operation. Where any of them disagrees withvq <command> --help, the help is right.
The family workflow is sketch → submit → calculate → analyze: vibe-sketch prepares structures and inputs, vq submits and tracks work, vibe-qc computes, and vibe-view analyzes the results. Each product has its own installation; local calculations can skip queue submission.