sick, in your terminal

One file, no dependencies, for Node 20 or later. It works on one workspace through that workspace's link: pull and push files, read and set its secrets, and start a sandbox with its terminal right in yours.

Get it

curl -fsSL https://sick.cat/cli/sick.mjs -o sick.mjs && node sick.mjs help

Check that what you downloaded is this version, byte for byte (on Linux, sha256sum -c instead):

echo "0de0ff11fb0467372fa32a12f2d043ca46a3889ef00f32e136edd2972efde5a9  sick.mjs" | shasum -a 256 -c

Put it on your PATH (no npm needed)

mkdir -p ~/.local/bin && mv sick.mjs ~/.local/bin/sick && chmod +x ~/.local/bin/sick

If sick is then not found, add export PATH="$HOME/.local/bin:$PATH" to your shell's profile and open a new terminal. Then log in with a workspace's link (copy it from the workspace page): sick login <link>. The link is stored in ~/.config/sick/config.json, readable by you alone, and never printed back.

Used it as venice before? That name still works: the same file is served at https://sick.cat/cli/venice.mjs, ln -s sick ~/.local/bin/venice keeps the old command, and a link venice login saved is still read.

This version

Version
1.1.0
sha256
0de0ff11fb0467372fa32a12f2d043ca46a3889ef00f32e136edd2972efde5a9
Size
49.8 KB
This version, always
https://sick.cat/cli/sick-1.1.0.mjs

Commands

sick login <link>store a workspace link (write link, or read-only link) for the other commands
sick logoutforget the stored link
sick whoamithe workspace, what the link may do, and (write link) the balance
sick lslist the workspace's files
sick pull [dir] [--yes]download the files into dir (default: here); a file you changed here, or a new dotfile (.env, .github/…), is kept back unless --yes; nothing is ever written into .git
sick push [dir] [--yes]upload what changed in dir (default: here); shows the change list first, --yes uploads it. Respects .gitignore and .sickignore
sick cat <path>print one file
sick rm <path>delete one file (to Recently deleted, for 24 hours)
sick env ls [--show] | env set NAME VALUE|- [--var] | env rm NAMEthe workspace's secrets and variables (VALUE - reads it from stdin, out of your shell history); values are not printed unless --show (a variable's; a secret's is never sent back)
sick enginesthe sandbox engines and what each costs an hour
sick run [--engine pico]start a sandbox and open its terminal here (Ctrl-] detaches; the sandbox keeps running)
sick attach [--session N]open the terminal of a running sandbox (the newest, unless --session)
sick stop [--session N | --all] [--yes]stop a sandbox; with changes not yet pulled back it asks for sync first, or --yes
sick sync [--session N] [--yes] [--delete]list what changed in a sandbox; --yes brings it into the workspace (a file deleted there only with --delete)
sick open [--link]print the workspace's address (--link: the whole link, with its key)
sick help [command]this help, or one command's
sick versionthis command line's version

A read-only link reads (whoami, ls, pull, cat, open); everything that changes the workspace or starts a sandbox needs the write link. Every refusal says what to do next.

sick.cat home