Lucidos runs on your machine. A gateway receives every request and passes it
to one engine per workspace. Each engine has its own event store and its own
files, so one workspace cannot read another's.
The desktop app and a browser tab run on the machine. Your phone
reaches the same gateway over your network. Three kinds of traffic leave: model
calls, the outside APIs you set up in the proxy, and the commands your tools
run.
Inside the engine, one bus carries everything that happens. The Lucidos Agent,
the coding agents, triggers and your own apps all emit onto it.
The bus stores each event before it notifies consumers. A consumer only sees
events that are already on disk, and a restart resumes where the record ends.
Producers on the left, consumers on the right, Postgres
underneath.
You describe an API once. After that the agent, your apps, your triggers and
your scripts all reach it the same way, through the proxy. The proxy adds
whatever that API wants: a key, a signature, a login handshake, or a signer you
wrote yourself. Your credentials stay in the engine.
The secret never reaches the chat, a log, or an app.
A webhook handles the other direction: an outside service tells you that
something happened. You point GitHub, Stripe or your own script at a URL, and
each delivery becomes an event that a trigger reacts to.
Deliveries arrive on their own port, the hook socket. It serves one route
only, so it is the one port you can safely publish to the internet. The rest of
Lucidos stays on your network and your paired devices.
Every delivery authenticates with a token or the sender's own
signature. A webhook fires the one event you pinned to it, whatever the sender
posts.
One event stream feeds every screen. A laptop and a phone on the same workspace
stay in sync, because both read the same events.
Work keeps running with every screen closed. When you return,
your apps and files show the new state. Lucidos can also notify you on the
events you choose.