Omnigent supports three authentication modes, selected at server start via environment variables. The framework default — a bare localDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/omnigent-ai/omnigent/llms.txt
Use this file to discover all available pages before exploring further.
omnigent server — leaves auth off: single-user header mode, no login, every request is the shared local user. The containerized deploys (Docker Compose, Render, Railway, Fly.io, Modal, HF Spaces) set OMNIGENT_AUTH_ENABLED=1 by default in their entrypoints, since a network-exposed instance should always be authenticated. With auth on, the mode is determined by your configuration: supply OMNIGENT_OIDC_ISSUER and you get oidc; supply nothing extra and you get the built-in accounts flow. OMNIGENT_AUTH_PROVIDER is an explicit escape hatch that pins the mode and overrides this auto-selection.
Auth modes
| Mode | When to use | What’s needed |
|---|---|---|
accounts | Standalone deploy, no external IdP. Built-in username/password with first-user-is-admin bootstrap and UI-based invites. Default when OMNIGENT_AUTH_ENABLED=1 and no OIDC vars are set. | OMNIGENT_AUTH_ENABLED=1. OMNIGENT_ACCOUNTS_COOKIE_SECRET (minted by bootstrap.sh). OMNIGENT_ACCOUNTS_BASE_URL for any deploy behind a public domain. |
oidc | Standalone deploy with your own IdP: server handles the full login flow. | OMNIGENT_AUTH_ENABLED=1 + OMNIGENT_OIDC_ISSUER (presence of the issuer selects this mode automatically). Requires HTTPS (session cookie uses the __Host- prefix). |
header | Behind an existing SSO proxy (oauth2-proxy, AWS ALB OIDC, Tailscale Funnel, Databricks Apps) that injects X-Forwarded-Email. | OMNIGENT_AUTH_PROVIDER=header. The proxy must strip any inbound copy of the header from clients. |
Built-in accounts
Built-in accounts mode requires no external identity provider. It is the default for all deploy targets whenOMNIGENT_AUTH_ENABLED=1 and no OIDC issuer is configured.
First boot auto-creates an admin user (named after the operator’s OS user, falling back to admin in headless containers) with a randomly generated password. The password is printed to the container logs and saved to /data/admin-credentials on the persistent volume:
OIDC SSO
OIDC mode lets your team sign in with the accounts they already have — Google, GitHub, Okta, Microsoft Entra, or any identity provider that publishes/.well-known/openid-configuration. The server handles the full login flow itself (/auth/login, /auth/callback, /auth/logout) with a signed session cookie. No separate auth proxy or container is needed.
Setting OMNIGENT_OIDC_ISSUER while OMNIGENT_AUTH_ENABLED=1 automatically selects OIDC mode — no separate provider flag is needed. Alternatively, pin OMNIGENT_AUTH_PROVIDER=oidc explicitly.
Supported providers:
GitHub
Register at github.com/settings/developers → New OAuth App. Callback:
https://<your-domain>/auth/callback. Issuer: https://github.com.Google Workspace
Create OAuth credentials at console.cloud.google.com → APIs & Services → Credentials. Issuer:
https://accounts.google.com. Set OMNIGENT_OIDC_ALLOWED_DOMAINS.Okta / Auth0 / Keycloak
Set
OMNIGENT_OIDC_ISSUER to your tenant’s base URL. The server fetches /.well-known/openid-configuration at startup.Microsoft Entra ID
Set
OMNIGENT_OIDC_ISSUER to your Entra tenant URL. The server fetches /.well-known/openid-configuration at startup.https://<OMNIGENT_DOMAIN>/auth/callback. Register that exact URL as the callback in your IdP app.
Domain allowlists. For Google with an external consent screen, any Google account can log in unless you restrict it:
allowed_domains list in the server’s config.yaml, the OMNIGENT_OIDC_ALLOWED_DOMAINS env var, and a <data_dir>/allowed_domains file are all unioned. Admin-listed and invited identities bypass the domain check.
Invite links for external collaborators. To let one person outside your allowed domains in without opening the allowlist:
/auth/invite).
Admins. Admins are declared in the server config.yaml (or the <data_dir>/admins file) by email address. Promotion is additive — removing an entry never demotes; demote from the Members page:
admins: list in config and set OMNIGENT_AUTH_PROVIDER=oidc.
Header proxy auth
Header mode takes the caller’s identity from theX-Forwarded-Email request header. It is designed for deployments that sit behind an SSO proxy — oauth2-proxy, Cloudflare Access, an AWS ALB OIDC listener, Databricks Apps, or Tailscale Funnel — that authenticates the user and injects the header on every request.
401. A misconfigured proxy that does not strip client-supplied X-Forwarded-Email before forwarding allows any caller to impersonate any user by sending the header themselves.
CLI login
Once the server is up, sign in from any machine with:login detects the server’s auth mode automatically — built-in accounts, OIDC, and header-auth proxies all work with the same command. The token is stored locally and reused by omnigent run, omnigent attach, and omnigent host: