More Updates
Changelogpaper is now paperctl — and installs no longer need sudo
RSS

paper is now paperctl — and installs no longer need sudo

·paperctl CLI

v0.21.0 renames the CLI binary from paper to paperctl, moves installs to a user-owned directory with no sudo anywhere, and adds paperctl upgrade so you never run the curl ritual again.

v0.21.0 is a breaking release: the CLI binary is renamed from paper to paperctl. This is a hard cut — no compat symlink, no dual-publish — so scripts and aliases that call paper need to say paperctl after you update.

The rename sharpens the vocabulary: paper is the product, paperctl operates on your machine, and paperd is the running daemon. It also clears a real collision — libpaper ships a /usr/bin/paper on many Linux distros, and that shadow is now gone for good.

To move, re-run the installer:

curl -fsSL https://download.papercompute.com/install | sh

What didn’t change: PAPER_* environment variables, ~/.config/paper/, the paperd daemon name, and the launchd/systemd service labels. Your credentials and daemon config survive the migration byte-for-byte.

If something you can’t immediately update — a script, a CI job, a coding agent’s saved instructions — is blocked because it still calls paper, an alias bridges the gap:

alias paper=paperctl

Or, for callers that don’t go through your shell, a symlink:

ln -s ~/.local/bin/paperctl ~/.local/bin/paper

Treat it as a bridge, not a destination: it re-creates the name collision the rename removed, so drop it once the caller says paperctl.

Rootless installs

The install location moves to ~/.local/bin, and with it the last routine sudo leaves the product. A fresh install is ordinary user file I/O end to end — download, symlink, and a guarded PATH export written into the same managed shell-rc block the shell integration already uses. Re-installs rewrite the block instead of stacking duplicates, and paperctl uninstall removes the binaries and the block without a trace.

If you installed before v0.21.0, the old binaries in /usr/local/bin are root-owned, so the installer asks for sudo one final time to remove them — and says so plainly. Declining is fine: the new install still lands, and the manual removal command is printed. If anything is off afterward, paperctl doctor now names the two degraded states — install directory missing from PATH, or a stale binary shadowing the new one — and prints the exact command to fix each.

paperctl upgrade

Staying current is one command now:

paperctl upgrade

It checks the published version, reports “already up to date” when there’s nothing to do, and otherwise swaps the binary in place — downloaded and checksum-verified before it’s trusted, crash-safe at every step — then restarts the daemon and prints old → new. --version pins an exact release (older included, as an escape hatch), and --version nightly always fetches.

Read the quickstart to get set up, or the CLI reference for the full command surface.

Start with paper

Turn every session into knowledge at team scale.

Get started