{"id":51360232,"url":"https://github.com/pythononwheels/lapsus-app","last_synced_at":"2026-07-05T00:00:50.462Z","repository":{"id":367806660,"uuid":"1282389021","full_name":"pythononwheels/lapsus-app","owner":"pythononwheels","description":"LAPSUS client — community-powered local AI, peer to peer. Share your idle GPU, use the community's. No Big Tech.","archived":false,"fork":false,"pushed_at":"2026-07-02T21:46:17.000Z","size":623,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-02T23:26:19.334Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pythononwheels.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-27T17:50:22.000Z","updated_at":"2026-07-02T21:46:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pythononwheels/lapsus-app","commit_stats":null,"previous_names":["pythononwheels/lapsus-app"],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/pythononwheels/lapsus-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythononwheels%2Flapsus-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythononwheels%2Flapsus-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythononwheels%2Flapsus-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythononwheels%2Flapsus-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pythononwheels","download_url":"https://codeload.github.com/pythononwheels/lapsus-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythononwheels%2Flapsus-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35139194,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-04T02:00:05.987Z","response_time":113,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-02T23:00:27.068Z","updated_at":"2026-07-05T00:00:50.342Z","avatar_url":"https://github.com/pythononwheels.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"apps/lapsus_agent/priv/static/lapsus.png\" alt=\"LAPSUS\" width=\"120\" /\u003e\n\n**Community-powered local AI p2p network**\n\n\u003ch1\u003eLet's run AI.\u003cbr/\u003eOn our own machines.\u003cbr/\u003eNot Big Tech's cloud.\u003c/h1\u003e\n\n\u003cem\u003eLet's build our own decentralized AI p2p network.\u003c/em\u003e\n\n\u003ca href=\"https://lapsus.pyrates.io\"\u003elapsus.pyrates.io\u003c/a\u003e \u0026nbsp;·\u0026nbsp; \u003ca href=\"https://lapsus.pyrates.io/how\"\u003eHow it works\u003c/a\u003e \u0026nbsp;·\u0026nbsp; \u003ca href=\"LICENSE\"\u003eAGPL-3.0\u003c/a\u003e\n\n\u003c/div\u003e\n\n---\n\nThis is the **LAPSUS client** — the small local app you run on your own machine.\nIt sits in front of the model you already run (Ollama, LM Studio, …) and joins you\nto the community network: **share** your idle GPU to earn Compute-Credits, **use**\nthe community's compute when you need it. Prompts travel **directly, peer to peer** —\na thin coordinator only introduces peers and never sees your data.\n\n- **Share** — flip a switch; your idle GPU joins the commons. Close the app, you're out.\n- **Use** — pick a community model, send a prompt, get the answer back P2P.\n- **Give-to-get** — sharing earns credits; using the network spends them. Offer some, get some.\n\n## Download\n\nmacOS \u0026 Linux — one line, no Gatekeeper prompt:\n\n```bash\ncurl -fsSL https://lapsus.pyrates.io/install.sh | bash\n```\n\nFetched via curl, so macOS adds no quarantine — it installs into Applications and\njust opens (no xattr, no “Open Anyway”). On macOS this is the way; a downloaded\n`.zip` would be blocked by Gatekeeper.\n\nOn Linux you can also grab the tarball directly:\n**[Linux (x64)](https://github.com/pythononwheels/lapsus-app/releases/latest/download/LAPSUS-linux-x64.tar.gz)** — unpack and run `./lapsus/run-lapsus.sh`.\n\nBoth bundle their own runtime and default to the live network. Intel Macs \u0026 Windows\nare on the way — see all [releases](https://github.com/pythononwheels/lapsus-app/releases).\n\n## Command line — `lps`\n\nEvery install also ships a small CLI, `lps`, for using the network from the terminal:\n\n```bash\nlps                       # home: your balance, recent usage, available models\nlps models [search]       # browse / search models on the network\nlps ask 1 \"your prompt\"   # ask a model (by number) — answer comes back P2P\nlps chat 1                # multi-turn chat with a model — context kept across turns\nlps usage                 # what you used, last 7 days\nlps history               # your recent prompts (kept locally)\nlps config max 1500       # set a default ask budget (so you can skip --max)\nlps version | lps update  # check / self-update to the latest release\n```\n\n### What gets installed\n\n- **macOS** — the app at `/Applications/LAPSUS.app`; the `lps` CLI lives inside it\n  (`…/Contents/Resources/rel/bin/lps`).\n- **Linux** — the release under `~/.lapsus/lapsus/`; the `lps` CLI at\n  `~/.lapsus/lapsus/bin/lps`.\n- **Your data** lives in `~/.lapsus/` — identity key, settings, a small usage cache\n  and your local prompt history (`history.jsonl`). Nothing is scattered elsewhere.\n\nThe installer symlinks `lps` into `~/.local/bin`.\n\n### Putting `lps` on your PATH\n\nIf `lps` isn't found, `~/.local/bin` isn't on your `PATH` yet. Either call it by its\nfull path (`~/.lapsus/lapsus/bin/lps …`), or add the directory once:\n\n```bash\n# bash / zsh\necho 'export PATH=\"$HOME/.local/bin:$PATH\"' \u003e\u003e ~/.bashrc   # or ~/.zshrc\nexec $SHELL                                                 # reload the shell\n\n# fish\nfish_add_path ~/.local/bin\n```\n\n## Run it from source\n\nThe app bundles a small web UI it opens in your browser.\n\n```bash\n# needs Elixir + Rust (for the WebRTC NIF).\nmix deps.get\nLAPSUS_COORDINATOR_URL=wss://lapsus.pyrates.io mix lapsus.app\n\n# Or a self-contained binary (bundles the runtime; defaults to the live\n# network, so no Elixir is needed to run it):\nMIX_ENV=prod mix release lapsus\nLAPSUS_RUN=1 _build/prod/rel/lapsus/bin/lapsus start\n\n# macOS: build a double-clickable .app\nscripts/build_macos_app.sh        # → dist/LAPSUS.app\n```\n\n`LAPSUS_COORDINATOR_URL` points the app at a coordinator (default for the packaged\nbinary: `wss://lapsus.pyrates.io`; for `mix lapsus.app` dev: `ws://localhost:4000`).\n\n## Security, in short\n\nA provider only ever **generates text** — there is no tool executor, file access or\nshell wired to the model, so a remote prompt can't touch your machine. A light,\nopen guardrail prompt is applied to every request, and you set hard rate limits.\nSee [the full explanation](https://lapsus.pyrates.io/no-tools).\n\n## Layout\n\n- `apps/lapsus_agent` — the client: provider, consumer, the local web UI.\n- `apps/lapsus_core` — shared identity (Ed25519), Compute-Credits, signed receipts.\n\nThe coordinator (the thin server that introduces peers) is a separate component.\n\n## License\n\n[AGPL-3.0](LICENSE). Network copyleft — run a modified version as a service, share\nyour source. A commons, not a land-grab.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpythononwheels%2Flapsus-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpythononwheels%2Flapsus-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpythononwheels%2Flapsus-app/lists"}