Intelligence, Engineered.
Prometheus is the agent daemon that runs on hardware you own. OAra Beacon is the cockpit that sits on it — on your desk, and in your pocket.
First time? Get started →
Nothing moves unless something is true.
Model-agnostic agent framework for local hardware. Tool calls that work on local models, a permissions layer that says no, memory as files in your home directory.
Native desktop window into everything the daemon does: chat with live tool timelines, coding runs that end at your review, documents with redlines, mission control. Joins when you approve it, over localhost or your tailnet.
Honest by construction
The link proves itself every twenty seconds. Activity moves only when a real daemon frame lands. A 401 is reported as a 401, and a failed send is never swallowed.
Read the trust story →

Security
Each line is a claim the Prometheus page makes, with its limits left in, and links to the detail.
Tool calls pass a security gate with four trust levels: blocked, approve, auto and autonomous. Your deny lists sit over a floor no mode waives: rm -r at a protected root is refused in every mode.
Bash’s writes stop at the workspace, held by the kernel in a bubblewrap mount namespace and decided on the path the kernel resolves, not on the command string. By default the floor is attempted and says so on every call where it’s missing. Set it to required and bash refuses to run rather than fall back to an unconfined shell. There is no macOS equivalent.
→No telemetry upload, no analytics, no update check. What does leave is listed one line per component: prompts to the model you configure, web search and fetch (on by default), and the chat apps you connect.
→Known token shapes become <redacted> before conversation history, memory, telemetry or training data is written.
A coding run’s subprocess starts with an empty environment plus at most six variables (PATH, HOME, LANG, LC_ALL, TZ, TMPDIR), so your provider keys never reach it. That covers the environment, not the key file on disk.
Every message is tagged with where it came from, and a background task’s result comes back fenced as data, not instructions. Web pages, file contents and other tool output aren’t fenced.
→A new Beacon joins when you approve it, after checking that both screens show the same code, and gets its own token. It works over localhost or your tailnet. The control plane is token-authenticated, and a new install listens on localhost only; a config with no bind set listens on every interface.
→The shape of it
Your hardware
Beacon is the app you talk to. Prometheus is the assistant itself. They can share one computer or live apart.
Prometheus and Beacon on the same Mac with Apple silicon. Beacon sets Prometheus up for you.
Set it up on one Mac →Prometheus on an always-on Mac or Linux machine at home, with Beacon on your laptop, connected over your home network or your tailnet.
A new install listens only on its own machine, so you set web.bind to reach it from your laptop: how ↗
Beacon for iOS connects to that same Prometheus, through a desktop Beacon already paired with it. It’s in private beta, not on the App Store yet.
Ask to join the beta →Models are a separate choice: a cloud provider, or local models on your own GPU machine.
The stack
The agent daemon. Runs on hardware you own.
Works with Telegram · Slack · Discord · MCP servers
The desktop cockpit. Sits on Prometheus.
The cockpit in your pocket. Same daemon, same control plane.
Fast decisions. Which model, which tool, when to stop.
Planning, and checking the work against the goal before delivering it.
Coordination across several machines.
Two-way voice conversation with your agent, coming soon. (The full install can already speak replies, in Telegram and from the command line.)
Follow @OAraLabs on X ↗Get Beacon
New to Beacon? Get started, screen by screen →