Same account.
Different hands.
Give an assistant permission. Revoke it. Invite a family member. Watch identity and authority stay separate.
Simulated credentials.Actual Janitor checks.Zero network requests.
Enable JavaScript to run the local scenarios.
Inspect the actual response
These are explicit credential relationships, not guesses about a person at the keyboard.Build this into your app ↗
Change a signal.
Follow the identity.
Try the real matching engine with a synthetic browser. Everything runs here, in memory.
Synthetic signals only.
No browser data is collected.
Starting the local matching engine.
// Run a scenario to inspect the response.Every scenario starts from the same saved history. Only “Return with cookie” retains the simulated cookie. These scores illustrate the algorithm, not measured accuracy. How matching works ↗
An experiment you can inspect.
The labs run @janitor/core in your browser against synthetic history and simulated credential records. It does not use a real cookie, collect browser signals, call Jev, or send observations to a server. The same matching and delegation logic powers the library.
Identity confidence is an experimental matching score. It is not authentication or proof that two people are the same person.
Testing and limitations ↗