Skip to content
Nymrel
Presence

Bring a human to the one step that needs one

Your agent stops at the step only a person can do. Your phone buzzes. You tap once. It carries on.

Presence is a free, open-source rail that hands one step of an agent's work to a human. When the agent reaches something only a person can do, it pauses and pushes that exact step to a phone. The person does it, the agent wakes up and re-reads the page itself. Presence carries context and attention — never an answer, a code, or a solved challenge. There is no message shape one could travel in. It leaves a signed record that a person was there. Runs on your own machine, no dependencies, MIT licensed.

Free and MIT licensed · no dependencies · runs on your own machine

Why this keeps working

Every service that solves the challenge for you is one enforcement wave from dead — that is the whole history of that market. Presence is not fighting the control. A gate asks for a human and gets one. Nobody has to lose for this to keep working.

That is not a promise in a README. It is five things the code will not let you do.

Five things it refuses to do

Each one is enforced where it cannot be argued with, and each one has a test that fails if someone loosens it.

  • A bot check can never be driven through the input channel

    policy forces those gates to hand off, before a gate is created

    forced-yield tests

  • No message can carry a token, a code, or an answer

    a closed allowlist of message shapes — pointer, key, scroll

    rejects 10 known response fields

  • The audit record has nowhere to put a credential

    the record's field list is closed, not filtered

    throws on token, password, address and more

  • The browser never hides that it is automated

    no stealth flags, no spoofing, nothing patched

    greps the source for 9 stealth techniques

  • No solving service can be pulled in

    the package has no dependencies at all

    asserts the dependency list is empty

13 of 13 tests passing — checked 2026-08-12.

How it goes

  1. 01

    The agent stops

    It hits a step that needs a person and calls pause. That returns in milliseconds, so the agent is free to end its turn and sleep instead of burning tokens waiting.

  2. 02

    Your phone buzzes

    One bookmarked page on your own network. It shows what is being asked, and nothing else it does not need to show.

  3. 03

    You do the one thing

    Tick the box, pick the date, confirm the order. Then tap Done. Usually under two minutes of your attention.

  4. 04

    The agent finds out for itself

    It learns only that a person acted, then re-reads the live page and discovers the new state exactly as it would have if it had done the step itself. Nothing is passed back — which is why nothing could be.

Two ways to hand off

Take the wheel

Consent screens, date pickers, dropdowns, confirmations.

You drive the agent's live browser from your phone. Your taps become real input in the real session.

Do it yourself

Bot checks, one-time codes, anything touching your ID.

The rail refuses to touch the session at all and hands you the step. Forced, not chosen — you cannot switch these to the other mode even if you want to.

It leaves a record

Every handoff writes a linked, tamper-evident entry: which gate, what was asked, when a person arrived, when they released it, how long they were there. The picture on screen is hashed, never stored. What they typed is never recorded at all, because there is nowhere to put it.

It can prove a person was there. It cannot leak a password. Both come from the same closed list.

What we will not claim

Today, opening the console page is what counts as a person arriving. On your own network that is fine. As proof you would hand an auditor, it is not — anything that can reach that page could produce the same record. We are not going to sell it as more than that.

The fix is to bind arrival to a key held on your phone, so the record proves which person, not merely that the page was opened. Not built yet. It is the first thing on the list.

What costs money

The rail is free and stays free. There is nothing to buy on this page.

The railFreeMIT, self-hosted, unlimited

Everything above. Runs on your own machine, on your own network. No account, no key, no limit on how often you use it.

Witnessed recordsNot yetwhen it can be proven, not before

A record you write, hold, and could quietly rebuild proves nothing to anyone but you. Worth paying for only once someone outside your company binds it to a named person and stamps the time. That needs the phone-key fix first. Not built, so not sold.

If you need a record that survives an auditor, tell us what it has to prove. That is more useful to us right now than money. contact@nymrel.com

Who this is for

People running agents on systems they are allowed to use

The agent does ninety percent of the job and then sits there. You want the last ten percent to cost you two minutes, not the whole task.

Teams doing this for a client

You already promised a person would approve certain steps. Right now you prove it with screenshots and chat messages.

Anyone building agents that hit a wall

You need a place for the agent to stop and sleep, not a longer timeout and a retry loop.

Questions

Is this a way to get past bot checks?

No, and it is built so that it cannot become one. A person satisfies the check themselves, in their own browser. Nothing is solved somewhere else and sent in. If a site does not allow your agent to be there at all, Presence does not change that. We will tell you so.

Does anything leave my network?

No. It runs on your own machine and the phone page is on your own network. A picture of a half-filled form never goes anywhere. That started as a constraint and turned out to be the better design.

What does the agent learn?

Only that a person acted. It then re-reads the page itself. There is no channel for a result to come back through, which is exactly why there is no channel a solved challenge could come back through either.

Why can I not use the take-the-wheel mode on a bot check?

Because relaying your taps into a bot check is the thing we refuse to build. The code downgrades it to a handoff before the step is even created. There is no setting for this.

What does it cost?

Nothing. It is MIT licensed and has no dependencies. The part we intend to charge for later does not exist yet, so it is not for sale yet.

Where should I not use it?

Anywhere the site's terms ban automated access — a person at the gate does not cure that. Also banking, brokerage and insurance portals, and anything sold as getting past a check. The repo lists this in full.