isard_
Your IsardVDI desktops, from the terminal. Log in with your Gencat account, then create, start, open and script the same virtual desktops the web portal gives you.
# macOS / Linux $ curl -fsSL https://isard.pages.dev/install.sh | sh $ isard login $ isard list $ isard view windows
What it is
IsardVDI is the virtual-desktop platform behind the Gencat educational network. The web portal is one way in; isard is the other. It signs in exactly as the portal does — your school account, through Microsoft's login — and keeps the session, so after the first time a command is a single HTTPS call.
Desktops
create, start, stop, delete — and view, which opens one in remote-viewer over SPICE, installing the viewer first if it is missing.
SSH and the VPN
isard ssh goes through IsardVDI's bastion with your own key. isard vpn up joins the desktop network over WireGuard, for every port rather than two.
Scriptable
exec, push, pull, job: stdout is the guest's, the exit code is the guest's, and nothing prompts. A desktop becomes a test machine a script can drive.
Templates
isard build profile.yaml takes a Fedora or Ubuntu ISO to a finished, configured template — everything but the installer's own screens, which you click through in the viewer.
One binary
No runtime, no package manager. A single executable per platform, about 12 MB, verified by SHA-256 before the installer moves it into place.
Your credentials stay yours
No command takes a password as a flag. They come from GENCAT_USERNAME / GENCAT_PASSWORD, a .env, or a prompt — never your shell history.
Install
One line. The installer fetches the release manifest, downloads the binary for your platform, checks its SHA-256 and puts it on your PATH.
macOS and Linux
$ curl -fsSL https://isard.pages.dev/install.sh | shWindows (PowerShell)
> irm https://isard.pages.dev/install.ps1 | iexisard 0.4.0 — or download the binary yourself. The Linux builds are static, so they run on any distribution.
| Platform | File | Size | SHA-256 |
|---|---|---|---|
| macOS · Apple silicon | isard-darwin-aarch64 | 11.1 MB | ec2eeb8bd15b15519bc4015593b3a6390bd18c137fba127cd5e32b134d0b1605 |
| macOS · Intel | isard-darwin-x86_64 | 11.8 MB | 4b159ddbcf41e17de030eab2893a752f773cfbf6f3137eb95449b47b5a150722 |
| Linux · x86_64 (static) | isard-linux-x86_64 | 12.2 MB | 3af77252141d50529444d5f3879e2a6a3d506aa32feb8f8490d6af0e074cb312 |
| Linux · arm64 (static) | isard-linux-aarch64 | 10.9 MB | 047310ec41edc128592a107626fdf5adba7dfb0bf06b3163ab21cb490f562133 |
| Windows · x86_64 | isard-windows-x86_64.exe | 13.0 MB | 7bf8ab4fbd8de6e5f4b79c3ee89b0943aa04ed326420ad00536523509a6afded |
The same data, for scripts: /api/version. Set ISARD_INSTALL to choose where the binary goes, or ISARD_NO_MODIFY_PATH=1 to leave your shell's startup files alone.
Get started
Log in once. The session is cached in ~/.config/isard/ and renewed by itself when it expires — with your password from the environment or a .env when there is one, from a prompt otherwise.
$ isard login # your @edu.gencat.cat account $ isard list --hardware # your desktops, with vCPUs and memory $ isard template list $ isard create lab -t "Ubuntu Server 24.04_isardvdi_v1" $ isard start lab $ isard view lab # the desktop's screen, over SPICE $ isard ssh lab $ isard stop lab
Names are matched loosely — isard view win finds “Windows 11” when nothing else is close. The full walkthrough, with what each step looks like, is the tutorial on academy.
Scripting a desktop
When a test needs a machine the laptop is not — Windows, x86_64, nested virtualization — a desktop can be that machine. These commands never prompt, print only the guest's output on stdout, and exit with the guest's code.
$ isard up windows # arm the SSH key, start, wait for sshd $ isard exec windows -- 'Get-Date' $ isard push windows ./project --mirror # only what changed $ isard job windows gate.ps1 -r 'C:\work\result.json' -o result.json $ isard pull windows 'C:\work\out.txt' - $ isard stop windows --wait
After the first call the route to the desktop is cached, so an exec is one SSH connection — about two seconds on Windows — and touches no API at all.