cselab — Run CSE autotest from your laptop
Description: Run UNSW CSE autotest from your laptop. One command replaces SSH. Open source CLI tool for CS students.

Open source · MIT License

# Run CSE autotest
from your laptop.

One command replaces SSH + copy + cd + run.
Works with any UNSW CSE course.

$ pip install cselab
Get Started
View on GitHub

## The 6-step loop you do 50 times a day

Every edit-test cycle takes 30–60 seconds of overhead.

The SSH Loop
1. Open terminal
2. $ ssh z5555555@login.cse.unsw.edu.au
3. Enter password (again...)
4. $ cd ~/COMP1521/lab01
5. $ scp files from local machine
6. $ 1521 autotest
... fix code, repeat from step 5. Every. Single. Time.

Over a 10-week term, you waste hours on SSH logistics instead of learning.

## With cselab: one command.

Save. Run. Done.

cselab
$ cselab run "1521 autotest"
[1/3] Connecting... OK (0.0s)
[2/3] Syncing... OK (0.2s)
[3/3] Running: 1521 autotest
✓ All tests passed!
VS Code, Cursor, Vim — any editor
Watch mode: auto-test on save
Zero dependencies

## How cselab compares

Feature | VLAB | SSH FS | Remote-SSH | cserun | cselab
--- | --- | --- | --- | --- | ---
Use local editor | No | Partial | Yes | Yes | Yes
Run autotest / give | Yes | Separate SSH | Yes | Yes | Yes
Server load | High | Low | Very High | Low | Near Zero
Reliability | OK | Good | Gets killed | 45% | 100%
Watch mode | No | No | No | No | Yes
Install method | Browser | VS Code plugin | VS Code plugin | Rust toolchain | pip install
AI editor support | No | No | No | No | Yes
Offline editing | No | No | No | No | Yes

## Built for CSE students

Everything you need, nothing you don't.

### Any Editor

VS Code, Cursor, Windsurf, Vim, Emacs — write code in whatever you want. cselab handles the rest.

### Sub-Second Feedback

rsync delta sync: 0.2s. SSH execute: 0.15s warm. Your edit-test cycle drops from 60s to under 1s.

### Watch Mode

Save your file, autotest runs automatically. No switching windows, no typing commands.

### Works Offline

Edit code on the train, at a cafe, anywhere. Sync and test when you're back online.

## For Course Coordinators & System Admins

VS Code Remote-SSH spawns persistent Node.js processes on login servers. CSE already deploys reaper scripts to handle the load. Students keep using it because there's no better alternative.

Server Load Comparison
Remote-SSH
~200–500 MB RAM/student
SSH FS
~50 MB/student
cselab
~0 MB idle, pulse connections

If 100 students switch from Remote-SSH to cselab, your login servers free up 20–50 GB of RAM.

Zero server-side components — standard SSH + rsync only
No persistent connections — ControlMaster socket, disconnect after command
Reduces SSH connection churn — ControlMaster reuses one connection
Open source (MIT) — fully auditable, no security concerns
Compatible with all courses using autotest / give / classrun
Review the source code

## Get started in 3 steps

Requires Python 3.10+ (pre-installed on macOS and most Linux).

1

### Install

$ pip install cselab
2

### Configure

$ cselab init
# Enter your zID and password
3

### Run

$ cd ~/COMP1521/lab01
$ cselab run "1521 autotest"

## See it in action

Full demo — from install to first test run.

Demo Video

Video coming soon