Skip to content

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 | sh

Windows (PowerShell)

> irm https://isard.pages.dev/install.ps1 | iex

isard 0.4.0 — or download the binary yourself. The Linux builds are static, so they run on any distribution.

PlatformFileSizeSHA-256
macOS · Apple siliconisard-darwin-aarch6411.1 MBec2eeb8bd15b15519bc4015593b3a6390bd18c137fba127cd5e32b134d0b1605
macOS · Intelisard-darwin-x86_6411.8 MB4b159ddbcf41e17de030eab2893a752f773cfbf6f3137eb95449b47b5a150722
Linux · x86_64 (static)isard-linux-x86_6412.2 MB3af77252141d50529444d5f3879e2a6a3d506aa32feb8f8490d6af0e074cb312
Linux · arm64 (static)isard-linux-aarch6410.9 MB047310ec41edc128592a107626fdf5adba7dfb0bf06b3163ab21cb490f562133
Windows · x86_64isard-windows-x86_64.exe13.0 MB7bf8ab4fbd8de6e5f4b79c3ee89b0943aa04ed326420ad00536523509a6afded

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.