Monorepo for Aesthetic.Computer
aesthetic.computer
kidlisp Installer Spec#
Goal#
Install kidlisp with no Bun/Node/Deno requirement, using one command from the website.
Entry Points#
Unix-like installer#
curl -fsSL https://kidlisp.com/install | sh
Windows PowerShell installer#
irm https://kidlisp.com/install.ps1 | iex
Inputs#
Environment variables#
KIDLISP_CHANNEL(stabledefault,betaoptional)KIDLISP_VERSION(optional pinned version; default latest in channel)KIDLISP_INSTALL_DIR(optional override)KIDLISP_BIN_NAME(optional override, defaultkidlisp)
CLI flags (if script is downloaded and run directly)#
--channel <stable|beta>--version <vX.Y.Z>--install-dir <path>--yes(non-interactive)
Platform Detection#
Map OS/arch to asset target:
darwin+arm64->darwin-arm64darwin+x64->darwin-x64linux+x64->linux-x64linux+arm64->linux-arm64windows+x64->windows-x64.exe
If unsupported:
- Exit non-zero with clear message.
- Print release page URL for manual install.
Install Locations#
Default install dir precedence:
- Unix:
$HOME/.local/binif available- else
$HOME/bin
- Windows:
%USERPROFILE%\\AppData\\Local\\kidlisp\\bin
Installer must:
- Create install directory if missing.
- Place binary as
kidlisp(kidlisp.exeon Windows). - Set executable bit on Unix.
PATH Handling#
If binary directory is not on PATH:
- Print exact command(s) to add it for the detected shell.
- Do not silently mutate shell rc files unless explicit
--yes --add-pathis set (future option).
Integrity and Security#
Installer must verify:
- SHA-256 checksum for downloaded asset.
- Checksum file authenticity from release source.
Release artifacts required:
kidlisp_<version>_<target>.(tar.gz|zip)kidlisp_<version>_checksums.txt- Optional: detached signature file.
If checksum mismatch:
- Abort install.
- Keep no partially installed binary.
UX Contract#
Success output#
- Installed version
- Install path
- Suggested next command (
kidlisp --help)
Failure output#
- One-line reason
- Troubleshooting next command(s)
- URL to manual installation docs
Idempotency#
Running installer multiple times should:
- Replace existing binary atomically.
- Preserve previous binary permissions.
- Print old -> new version when upgraded.
Self-Update Interop#
Installer and CLI should share the same release metadata contract so:
kidlisp self-update- website installers
use identical channel/version resolution and checksum verification logic.