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
curl -fsSL https://comp4020-final-da-w1nn3r.fly.dev/harness/install.sh | shWindows
irm https://comp4020-final-da-w1nn3r.fly.dev/harness/install.ps1 | iexBy hand
Download the archive and unpack it yourself, with no script:
curl -fsSLO https://comp4020-final-da-w1nn3r.fly.dev/harness/ribbon-cable-harness.tar.gz
tar -xzf ribbon-cable-harness.tar.gzThe 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.
#!/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)"# 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.