This is the LAPSUS client — the small local app you run on your own machine. It sits in front of the model you already run (Ollama, LM Studio, …) and joins you to the community network: share your idle GPU to earn Compute-Credits, use the community's compute when you need it. Prompts travel directly, peer to peer — a thin coordinator only introduces peers and never sees your data.
- Share — flip a switch; your idle GPU joins the commons. Close the app, you're out.
- Use — pick a community model, send a prompt, get the answer back P2P.
- Give-to-get — sharing earns credits; using the network spends them. Offer some, get some.
macOS & Linux — one line, no Gatekeeper prompt:
curl -fsSL https://lapsus.pyrates.io/install.sh | bashFetched via curl, so macOS adds no quarantine — it installs into Applications and
just opens (no xattr, no “Open Anyway”). On macOS this is the way; a downloaded
.zip would be blocked by Gatekeeper.
On Linux you can also grab the tarball directly:
Linux (x64) — unpack and run ./lapsus/run-lapsus.sh.
Both bundle their own runtime and default to the live network. Intel Macs & Windows are on the way — see all releases.
Every install also ships a small CLI, lps, for using the network from the terminal:
lps # home: your balance, recent usage, available models
lps models [search] # browse / search models on the network
lps ask 1 "your prompt" # ask a model (by number) — answer comes back P2P
lps chat 1 # multi-turn chat with a model — context kept across turns
lps usage # what you used, last 7 days
lps history # your recent prompts (kept locally)
lps config max 1500 # set a default ask budget (so you can skip --max)
lps version | lps update # check / self-update to the latest release- macOS — the app at
/Applications/LAPSUS.app; thelpsCLI lives inside it (…/Contents/Resources/rel/bin/lps). - Linux — the release under
~/.lapsus/lapsus/; thelpsCLI at~/.lapsus/lapsus/bin/lps. - Your data lives in
~/.lapsus/— identity key, settings, a small usage cache and your local prompt history (history.jsonl). Nothing is scattered elsewhere.
The installer symlinks lps into ~/.local/bin.
If lps isn't found, ~/.local/bin isn't on your PATH yet. Either call it by its
full path (~/.lapsus/lapsus/bin/lps …), or add the directory once:
# bash / zsh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc # or ~/.zshrc
exec $SHELL # reload the shell
# fish
fish_add_path ~/.local/binThe app bundles a small web UI it opens in your browser.
# needs Elixir + Rust (for the WebRTC NIF).
mix deps.get
LAPSUS_COORDINATOR_URL=wss://lapsus.pyrates.io mix lapsus.app
# Or a self-contained binary (bundles the runtime; defaults to the live
# network, so no Elixir is needed to run it):
MIX_ENV=prod mix release lapsus
LAPSUS_RUN=1 _build/prod/rel/lapsus/bin/lapsus start
# macOS: build a double-clickable .app
scripts/build_macos_app.sh # → dist/LAPSUS.appLAPSUS_COORDINATOR_URL points the app at a coordinator (default for the packaged
binary: wss://lapsus.pyrates.io; for mix lapsus.app dev: ws://localhost:4000).
A provider only ever generates text — there is no tool executor, file access or shell wired to the model, so a remote prompt can't touch your machine. A light, open guardrail prompt is applied to every request, and you set hard rate limits. See the full explanation.
apps/lapsus_agent— the client: provider, consumer, the local web UI.apps/lapsus_core— shared identity (Ed25519), Compute-Credits, signed receipts.
The coordinator (the thin server that introduces peers) is a separate component.
AGPL-3.0. Network copyleft — run a modified version as a service, share your source. A commons, not a land-grab.
