Harness docs / Get started

Install

You need Node 24 or newer, and tar, which macOS, Linux and Windows 10 or newer already have. The installers only download the archive and unpack it into ./ribbon-cable-harness. They refuse to overwrite that folder if it is already there, because it holds your settings and login.

macOS and Linux

Shell
curl -fsSL https://comp4020-final-da-w1nn3r.fly.dev/harness/install.sh | sh

Windows

PowerShell
irm https://comp4020-final-da-w1nn3r.fly.dev/harness/install.ps1 | iex

By hand

Download the archive and unpack it yourself, with no script:

Shell
curl -fsSLO https://comp4020-final-da-w1nn3r.fly.dev/harness/ribbon-cable-harness.tar.gz
tar -xzf ribbon-cable-harness.tar.gz

The installers in full

Piping a script into a shell runs it without showing it, so here is each one as this site serves it. Read it first if you like.

install.shinstall.sh ↗
#!/bin/sh
# Ribbon Cable harness installer. Read it first: curl -fsSL https://comp4020-final-da-w1nn3r.fly.dev/harness/install.sh
set -eu
URL='https://comp4020-final-da-w1nn3r.fly.dev/harness/ribbon-cable-harness.tar.gz'
DIR='ribbon-cable-harness'

command -v node >/dev/null 2>&1 || { echo "Node 24+ is required: https://nodejs.org" >&2; exit 1; }
[ "$(node -p 'process.versions.node.split(".")[0]')" -ge 24 ] || echo "Warning: Node 24+ is needed to run the harness (you have $(node -v))." >&2
command -v tar >/dev/null 2>&1 || { echo "tar is required" >&2; exit 1; }
[ ! -e "$DIR" ] || { echo "$DIR already exists here; move or remove it first (it holds your settings)." >&2; exit 1; }

if command -v curl >/dev/null 2>&1; then curl -fsSL "$URL" | tar -xz
elif command -v wget >/dev/null 2>&1; then wget -qO- "$URL" | tar -xz
else echo "curl or wget is required" >&2; exit 1; fi

echo "Installed in ./$DIR"
echo "Next: cd $DIR && node src/main.ts   (it finds a local model or API key by itself; see QUICKSTART.md)"
install.ps1install.ps1 ↗
# Ribbon Cable harness installer for Windows. Read it first: irm https://comp4020-final-da-w1nn3r.fly.dev/harness/install.ps1
$ErrorActionPreference = 'Stop'
$Url = 'https://comp4020-final-da-w1nn3r.fly.dev/harness/ribbon-cable-harness.tar.gz'
$Dir = 'ribbon-cable-harness'

if (-not (Get-Command node -ErrorAction SilentlyContinue)) { Write-Error 'Node 24+ is required: https://nodejs.org'; return }
$major = [int](node -p 'parseInt(process.versions.node)')
if ($major -lt 24) { Write-Warning "Node 24+ is needed to run the harness (you have $(node -v))." }
if (-not (Get-Command tar -ErrorAction SilentlyContinue)) { Write-Error 'tar is required (Windows 10 1803 or newer has it)'; return }
if (Test-Path $Dir) { Write-Error "$Dir already exists here; move or remove it first (it holds your settings)."; return }

$tmp = Join-Path ([IO.Path]::GetTempPath()) ([IO.Path]::GetRandomFileName() + '.tar.gz')
try {
  Invoke-WebRequest -Uri $Url -OutFile $tmp -UseBasicParsing
  tar -xzf $tmp
  if ($LASTEXITCODE -ne 0) { Write-Error "tar could not unpack $Url"; return }
} finally {
  Remove-Item $tmp -ErrorAction SilentlyContinue
}

Write-Host "Installed in .\$Dir"
Write-Host "Next: cd $Dir; node src/main.ts   (it finds a local model or API key by itself; node src/main.ts --check tests it; see QUICKSTART.md)"

Installed? Go on to the quick start.