sys1

Free · open source · public domain

Your computers are idle most of the day. Pool them.

sys1 joins the spare power of every machine you have into one cloud for websites, media servers, backups and AI. You won't notice it running.

2 apps 21 OS/CPU builds 0 accounts, ads or tracking
Example pool pool is using 0.0 idle cores
Owner's own apps sys1 pool work Empty: headroom

Two apps, everywhere.

Install sys0 on every machine that lends its power. Run sys1 on the one that coordinates. The node is a client too, so one computer is already a working pool.

sys0 · the client

Install it, then forget it.

A friendly setup wizard, then it disappears into the background.

  • Lowest CPU and disk priority your OS offers
  • Takes no new work on battery or when the machine is busy
  • Runs apps in locked-down containers
  • Starts with the machine; restarted by the OS if it ever dies
sys1 · the node

One dashboard for every machine.

Machines, apps and the marketplace in one live view.

  • Places each app on the machine with the most room
  • Moves apps when machines leave or keep crashing
  • Marketplace that shows only what your machines can run
  • Cloudflare Tunnel and GitHub Actions built in

When something breaks, it moves.

Apps can save progress to a small checkpoint file. If a machine fails, the app carries on somewhere else from that checkpoint.

It crashes

sys0 restarts the app, waiting 0.5s, then 1s, 2s, 4s.

Five in a row

sys0 stops trying on this machine and sends the app's checkpoint to the node.

It moves

The node picks a different machine and sends it the app with the checkpoint.

It resumes

The app starts from its checkpoint. A machine that just goes offline is replaced within about 15 seconds.

Powerful, and safe by default.

Anyone can lend you a machine, and you can lend yours to anyone. Both sides are protected.

Your machine, your rules

Mark a machine as yours or as shared. Shared machines only ever run sandboxed containers, and the client enforces it.

Nothing to impersonate

TLS 1.3 with the node's certificate pinned in the join code. No certificate authority in the middle.

Signed packages

Third-party apps need an Ed25519 signature from a key you chose to trust. Change one byte and it won't deploy.

Survives the power cord

Every change is written to a checksummed, fsync'd journal before it happens. Unplug the node and it picks up where it left off.

A dashboard only you can open

Bound to localhost and locked with a private key, with strict CSP and protection against CSRF and DNS rebinding.

Read every line

Public domain, three small dependencies, no CGO, no telemetry. The security model lists what's still open, too.

Download

Both apps come in every download. Each install script checks the SHA-256 checksum before installing anything. Read a script first if you like; they're short.

Homebrew · macOS and Linux
brew install a-hackers-guide/tap/sys1
Linux · macOS · BSD
curl -fsSL https://a-hackers-guide.github.io/sys1/install.sh | sh
Windows (PowerShell)
irm https://a-hackers-guide.github.io/sys1/install.ps1 | iex

Or pick an installer from Releases: .pkg (macOS) .msi (Windows) .deb .rpm .apk .pkg.tar.zst AppImage .snap FreeBSD .pkg .txz .tzst .ipk .zip .tar.gz. Also on Scoop (scoop install a-hackers-guide/sys1) and as a container (ghcr.io/a-hackers-guide/sys1). Coming next: winget, Flatpak, AUR, Nix and more (status of each).

Marketplace

Deploy in one click. The pool picks the machine. These come built in; anyone can publish signed packages.

JellyfinMovies, shows and music:8096 · GPU transcoding
Plex Media ServerStream your library anywhere:32400
AudiobookshelfAudiobooks and podcasts:13378
OllamaLocal AI models; prefers GPUs:11434
SyncthingContinuous encrypted backups:8384
Static websitenginx, ready for your files:8080
Cloudflare TunnelPublish apps with HTTPS, no open portsoutbound only
GitHub Actions runnerSpare capacity for your CIoutbound only
Any containerAny image, sandboxed, no networkno ports

Every OS.

One Go codebase, no C dependencies, a single file per platform. CI builds all of these on every change.

PlatformCPUsClientNodeLowest priority via
Windowsamd64 arm64YesYesIdle class + background mode
macOSarm64 amd64YesYesBackground QoS + nice 19
Linuxamd64 arm64 arm 386 riscv64 ppc64le s390x mips64leYesYesnice 19 + idle I/O on every thread
FreeBSD, OpenBSD, NetBSD, DragonFlyamd64 arm64YesYesnice 19
Solaris, illumos, AIXamd64 ppc64YesYesnice 19
Android, Android TVarm64Binary today–Only while charging and idle; app on the roadmap
iOS, Apple TVarm64Sideload / jailbreak–On the roadmap

Read the docs.

Everything is written down: how it works, what it guarantees, and what's still being built.