self-hosted · one program · no subscription

Your AI agents stop when you do. NonStopWorker keeps them working.

The controller that keeps your work running across every AI engine you already pay for. A folder of tickets goes in, finished work comes out: day and night, on your own server, within a budget that holds.

☾ 22:00while you sleep07:00 ☀
02:14router0007 fix typo → light model
02:14claudelimit reached → codex
02:21codex0007 done · 14k tokens · €0.00
02:22router0008 renew contract → a person
02:22blocked0008 waits for you, no agent ran
02:23gemini0009 refactor export · heavy
03:05measured0009 €0.41 of €1.00 · 42 min

Not another platform. The controller.

NonStopWorker does one thing, and does it well: it keeps the work going. It does not hold your code, your tickets or your keys, and it does not decide which AI you may use. You keep room to move.

01

Self-hosted

On your own server, VPS or laptop, in your own secure environment. Your code and your keys never leave it.

02

No lock-in

Claude Code, Codex, Gemini, OpenCode, or any agent with a command line: each one is a line in a config file.

03

One program

930 kilobytes. No database, no runtime, no account. Install it in minutes; remove it in seconds.

04

Built to scale

A one-time fee, not a fee per seat or per month. Add lanes and engines as your work grows.

What goes wrong today, and what it does about it

Teams that already work with AI agents run into the same walls. Each one is a feature here.

The problem
NonStopWorker
The agent stops at 2 a.m.: the subscription window is used up, or the provider is overloaded.
The same ticket goes on with the next engine. A full subscription switches to your API key, and back when it opens.
Every task goes to the most expensive model, to be safe.
A decision model routes each ticket first: light work to a small model, heavy work to a big one.
Costs are invisible until the invoice comes.
A budget per day and per ticket, a cost line per call, and a measurement on every finished ticket.
An agent goes round in circles all night.
The brake parks a ticket after too many turns, or after the same answer twice.
Some work should never go to an agent.
Contracts, customers, money and production go to a person, and no agent starts.
Tasks are stuck "in progress" after a crash.
A system service: after a restart, whatever was running goes back in the queue.

How it works

Three steps, and the second one repeats all night.

1 · tickets

Put work in a folder

A ticket is a Markdown file: what to do, its priority, its budget. Write it by hand, from a script, or ask your own assistant over MCP.

2 · route and run

It picks, routes and runs

The next ticket, the right weight of model, the first engine that can. Limits and outages are handled on the way, and lanes run side by side.

3 · results

Finished work, measured

The result in your repository, a worklog in the ticket, and what it cost: tokens, euros, time, which engine.

Claude CodeCodexGemini CLIOpenCode+ your own agent

A budget that holds

Every ticket can carry its own maximum. Every call is booked: engine, subscription or API, tokens, euros. When the day's budget is spent, no API is touched until tomorrow. And every finished ticket says what it really cost.

Subscriptions first, the API only when you allow it: a key is never handed to an agent that runs on its subscription, so nothing pays per use by accident.

tickets/0009-refactor-export.md
---
status: done
priority: P1
budget: 1.00
spent: 0.412
---
Refactor the export module ...

## Worklog
- 02:23 router (jev): kind=code, weight=heavy
- 02:23 claude (subscription, floris1) reached its limit -> codex
- 03:05 codex (subscription, floris2): done
- 03:05 measured: EUR 0.41 of EUR 1.00, 1 turn, 42 min

See it at a glance

A status page on your server shows what runs, what rests, what it cost today and what happened. Read only: you steer by editing the files, or from your assistant. Watch the live demo: stand-in engines, real scheduler.

The NonStopWorker status page: tickets per status, today's cost against the budget, lanes, engines and a timeline

One-time fee. No subscription.

You buy it once and run it on as many of your own servers as your work needs. Your AI costs stay where they are, with the providers you choose.

  • Self-hosted, in your own environment
  • Every engine you already use
  • Failover, routing, budgets and the brake
  • Status page and MCP

Talk to us

Is Floris Knol guiding your AI project? Then NonStopWorker comes with it: the technology, set up on your own systems, as part of the work. How that works

Questions

Which AI agents does it work with?

Claude Code, Codex, Gemini CLI and OpenCode out of the box, each on its subscription or its API. Any other agent with a command line is one line in the config.

Where does my code go?

Nowhere new. The agents work in a folder on your server, and NonStopWorker itself sends nothing anywhere. Only the AI providers you choose see what their agent works on.

What does it need to run?

A Linux machine: a VPS, a bare-metal server or a laptop. The program has no dependencies; the agents' own command lines are installed beside it.

How does it decide which model does what?

Before each ticket a decision model answers four questions in a fraction of a second: what kind of work, how heavy, whether a person must do it, and whether it is clear enough to start.

What happens when every engine is at its limit?

The ticket waits, with the time it will try again in its worklog, and nothing is lost. The status page shows which engine rests until when.