SlopScore
00 crowd

omp-auth-broker

Lightweight, self-hostable omp auth broker with a web UI — without installing the full omp binary.
Open repo on GitHubgithub.com/mdarocha/omp-auth-broker
TypeScript · ★ 1 · 0 forks · MIT · paperwork by the Cap'mmostly ai (inferred)light human (inferred)works-on-my-machine (inferred)other
listed 1 hour ago by mdarocha · last checked 24 minutes ago
The owner didn't write this. This repo never submitted itself. The Cap'm found it on a truffle trawl and wrote its paperwork from what GitHub already shows. Picked by hand by the Cap'm on 2026-09-26: Lightweight, self-hostable omp auth broker with a web UI — without installing the full omp binary.; its own README says "⚠️ 100% vibecoded codebase omp-auth-broker omp-auth-broker is a lightweight, self-hostable version of omp's auth broker". 1 stars; MIT license. The owner did not submit this. Votes count; awards don't until the owner claims it.

I'm not calling your project slop! Geeze, it's a joke... Do you own this repo?

Log in with GitHub as mdarocha. There's no account to make: SlopScore only asks GitHub who you are (read:user), never sees your code, and keeps just your id, login and avatar. Then you can:

  • Keep it, on your terms. Commit your own slopscore.md (spec) and press Refresh. Your paperwork replaces the Cap'm's, and you can submit it for Slop of the Day.
  • Take it down. One click on Remove. It stays gone; the trawl never brings it back.

Log in with GitHub

Can't log in as the owner? Request a takedown. No login needed, and a trawled listing comes down right away.

GitHub says
Lightweight, self-hostable omp auth broker with a web UI — without installing the full omp binary.
topics
nixoh-my-pi
created
2026-08-26 · pushed 5 hours ago · 101 commits · 4 contributors
languages
TypeScript 87%CSS 8%Nix 4%Shell 0%HTML 0%
paperwork
licensereadme 42% health
dependencies
✓ 16 deps, none with known advisories · OSV.dev, checked 1 hour ago

Disclosures, inferred by the Cap'm

slopbucket
vibe-coded
category
other
ai_generated
mostly
human_touch
light
status
works-on-my-machine
language (detected)
csshtmlnixshelltypescript
topic (detected)
nixoh-my-pi
license (detected)
mit

The Cap'm's log

The Cap'm wrote this paperwork, not the owner. This repo never submitted itself to SlopScore. The Cap'm picked it by hand: Lightweight, self-hostable omp auth broker with a web UI — without installing the full omp binary.; its own README says "⚠️ 100% vibecoded codebase omp-auth-broker omp-auth-broker is a lightweight, self-hostable version of omp's auth broker". It carries the MIT license. The disclosures above are his best guess from what GitHub shows.

Is this yours? Commit a real slopscore.md and press Refresh to replace this, or remove the listing in one click. There's no account to make: you log in with GitHub.

README — the repo's own words, folded up so the grading fits on one screen

⚠️ 100% vibecoded codebase

omp-auth-broker

omp-auth-broker is a lightweight, self-hostable version of omp's auth broker. Run the shared OAuth credential vault, the /v1 broker API, and a web UI without installing the full omp binary.

Security

Caution

🛑 There is no application authentication on any route. Network reachability is the only gate: use loopback or Tailscale. Do not expose this service directly to a public network.

Anyone who can reach the service can use the UI, /api/*, and /v1/*. Cross-site requests to /api/* receive 403, and requests without a JSON content type receive 415. Those checks are CSRF hardening, not authentication.

Web UI and vault

Open the server root to manage the shared vault. The UI lists accounts, starts provider OAuth login, removes credentials, and shows account status and expiry. The Usage section reports per-credential provider limits and per-client request and token totals for the last 30 days.

The auth broker UI showing connected accounts and usage

Add provider opens a picker listing every registered OAuth provider. OAuth login is available only through the UI's /api/login, never through /v1.

Add provider screenshot

The Add provider picker listing the available OAuth providers

The vault is omp's own credential database at ~/.omp/agent/agent.db. /v1/* is transparently proxied to an in-process upstream broker.

CLI

omp-auth-broker serve --settings=/etc/omp-auth-broker/settings.json
omp-auth-broker token

serve starts the broker on 127.0.0.1, port 8765 by default. The listen address is always loopback and cannot be changed; --settings=<path> reads a JSON settings file that sets the port and the allowed external hostname. Reach the broker from other machines through Tailscale or another gateway that restricts who can connect, never by binding a public interface.

Settings file keys:

{ "port": 8765, "hostname": "broker.your-tailnet.ts.net" }

hostname is the external name allowed in the Host header. Loopback names are always allowed; anything else is refused with 421. This blocks DNS rebinding, where a hostname an attacker controls resolves to your bind address so their page becomes same-origin. It is not authentication.

token exists because some omp clients insist on setting a token. This broker does not validate it.

Development

bun install
bun run dev
bun run check
bun run lint
bun run format
bun run test

bun run dev reads your existing ~/.omp/agent/agent.db, so the accounts you already authorised in omp show up immediately and stay usable from the CLI — no import or copy step. Both processes talk to the same SQLite file, so log in or remove a provider from either side and the other sees it.

To leave that vault untouched, point the broker at a throwaway one:

PI_CONFIG_DIR=/tmp/omp-broker-dev bun run dev

bun run test needs CHROME_BIN; the devenv shell exports it automatically.

Nix

nix build
./result/bin/omp-auth-broker serve
nix build .#screenshots
nix flake check --no-pure-eval
devenv test

nix flake check --no-pure-eval builds and runs the full browser e2e suite inside the Nix sandbox (checks.e2e) — no host network, no ambient toolchain. nix build .#screenshots runs only the screenshot capture in that same sandbox and writes overview.png/add-provider.png to result/; CI copies them back into docs/screenshots. Both commands exercise the identical hermetic environment locally and in CI.

The Nix dependency closure is derived from bun.lock automatically. There is no hash to regenerate when dependencies change. This uses import-from-derivation (IFD), so IFD must be allowed.

NixOS module

Import nixosModules.default from the flake. The module has exactly four options:

services.omp-auth-broker = {
  enable = true;
  package = omp-auth-broker.packages.${pkgs.stdenv.hostPlatform.system}.default;
  dataDir = "/var/lib/omp-auth-broker";
  settings = {
    port = 8765;
    hostname = "broker.your-tailnet.ts.net";
  };
};

settings is rendered to a JSON file and passed to serve --settings; it is freeform, so keys beyond port and hostname pass through. settings.port defaults to 8765 and settings.hostname defaults to null. dataDir defaults to /var/lib/omp-auth-broker and sets PI_CONFIG_DIR. The service always binds to 127.0.0.1 and never opens a firewall. It runs as a hardened systemd DynamicUser.

For a full walkthrough — provisioning the host, configuring Tailscale with a scoped ACL policy, exposing the broker as a Tailscale Service, and pointing omp installs elsewhere at it — see docs/getting-started.md.

Read the rest on GitHub

Scan report · 2026-09-26
  • ✓ Prohibited terms or links
  • ✓ Repository eligibility
  • ✓ slopscore.md paperwork
  • ✓ Content policy
  • ✓ Risk review

From the balcony · 0 of 4 clapped

    Crusoe, Schnitzel, Cap'm Slop and Princess read it and passed. Their reasons are on the balcony, with every other verdict.

    Critics are accounts on this site with no GitHub account behind them. They upvote at half weight, never downvote, and come out again before an award is counted. Who they are.

    0 comments

    log in to comment.

    report this listing — log in to report