Skip to main content

elvarone-bridge

The ElvarOne phone agent's compute bridge: a small MCP server on your computer that lets the agent run Python and shell commands, take screenshots it can actually look at, publish files, and leave written reports that the coding agent on your computer (Claude Code or Codex) answers automatically.

pip install elvarone-bridge
elvarone-bridge init

init mints a token, writes ~/ElvarBridge/config.env, installs a background service (launchd on macOS, a systemd user unit on Linux, a Task Scheduler command on Windows) and prints the URL + token to enter on the phone: Settings → AI Brain → MCP Servers → Add.

Let your desktop AI set it up

Paste this to Claude Code, Codex, Cursor or any coding agent on the computer you want to connect:

Install the ElvarOne compute bridge on this computer: pip install elvarone-bridge (use a venv or pipx if you prefer), then run elvarone-bridge init --agent claude --project <the project you want me to answer questions about>. Show me the "Phone settings" block it prints (URL and token) so I can enter them in the ElvarOne app. Then run elvarone-bridge doctor and fix anything it flags. Add this line to your project instructions (CLAUDE.md or AGENTS.md): "At the start of each session, list ~/ElvarBridge/reports/*.md and answer any file with status: unread; write replies as -reply-.md in the same folder and set the report's status to read."

Replace --agent claude with --agent codex for Codex, or --agent none to keep reports for a human session only.

What the phone agent gets

tool what it does
run_shell, run_python, read_file compute and files inside ~/ElvarBridge (the shell is human-approved on the phone for every call)
screenshot(app, max_width, delay_s) capture the screen, downscale, return a signed, expiring URL the phone's view_image reads — no token in the link
publish_file(path) same signed link for any file in the workdir
report_to_desktop_agent(title, body, kind, from_agent) file a bug / request / finding / question in ~/ElvarBridge/reports/
list_reports(status), mark_report(name, status) see replies, close them
/browser/mcp Playwright MCP on this computer behind the same token

Auto-replies

When BRIDGE_DESKTOP_AGENT is claude or codex (auto-detected), every report starts a read-only run of that agent in BRIDGE_AGENT_CWD (claude -p … --allowedTools Read,Grep,Glob,LS --max-turns 8 or codex exec --sandbox read-only …). The answer lands as reports/<stamp>-reply-<slug>.md, the report becomes status: answered, and a desktop notification fires. The worker never edits files; when a change is needed it says "needs a human coding session", and your next session picks the report up from the mailbox.

The desktop agent must be logged in for the user running the bridge: run claude (then /login) or codex login once in a terminal. elvarone-bridge doctor checks this.

Telling the phone

Set AGORADM_TOKEN (an AgoraDM bot token for this computer — pair one at agoradigest.com/bring-agent) and BRIDGE_NOTIFY_BOT (the phone agent's bot id) and install the extra: pip install 'elvarone-bridge[agoradm]'. The bridge then DMs the phone agent when a reply is ready; the DM wakes ElvarOne, so the phone reads the answer without polling.

Security

  • The token is required on every request. init mints a 32-byte random one.
  • Binds 0.0.0.0 (LAN + Tailscale). Never port-forward it to the internet. Install Tailscale on both devices to use the bridge away from home.
  • Every remote call is approved on the phone. Pre-approve only read-only tools (screenshot, list_reports, read_file, report_to_desktop_agent).
  • Commands that would stop the bridge's own services are refused.
  • Published files are signed links valid BRIDGE_FILE_URL_TTL_S (2 h) for one file.

Configuration

~/ElvarBridge/config.env (mode 600), or the same keys in the environment:

BRIDGE_TOKEN=…             required
BRIDGE_PORT=8787
BRIDGE_BIND=0.0.0.0
BRIDGE_PUBLIC_URL=         override the URL handed to the phone
BRIDGE_FILE_URL_TTL_S=7200
BRIDGE_DESKTOP_AGENT=      claude | codex | none (auto)
BRIDGE_AGENT_CWD=          project the desktop agent reads (default ~/ElvarBridge)
BRIDGE_AGENT_MAX_TURNS=8
BRIDGE_AGENT_TIMEOUT_S=600
BRIDGE_CLAUDE_ARGS=        extra flags for claude -p (e.g. --max-budget-usd 0.50)
BRIDGE_NOTIFY_DESKTOP=1
AGORADM_TOKEN=             optional, see "Telling the phone"
BRIDGE_NOTIFY_BOT=

Upgrading from the original mac_bridge.py launchd setup: pip install -e . in the same venv keeps the old plist working; elvarone-bridge init migrates to the packaged service.

Release files for elvarone-bridge 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for elvarone-bridge 0.1.0
File Size Uploaded
elvarone_bridge-0.1.0.tar.gz 22.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for elvarone-bridge 0.1.0
File Interpreter ABI Platform
elvarone_bridge-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 45.7 kB

Release files / elvarone_bridge-0.1.0.tar.gz

Download URL elvarone_bridge-0.1.0.tar.gz
Size 22.3 kB
Tags Source
SHA-256 checksum
How to use checksums
45f95da6c0f3df7beff5f15e38247e256d3b28e2f0c248aba9d0fd273d7a3ad8
BLAKE2b-256 checksum
How to use checksums
086e48f4a2937dfe11531c62cc3201954c769da2e7f953d6f90cac9e14700d76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / elvarone_bridge-0.1.0-py3-none-any.whl

Download URL elvarone_bridge-0.1.0-py3-none-any.whl
Size 23.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
20f6bd1a4732c0002edf4dea895714b54e82cf6976cd5f7df43ec49d5dcfdff6
BLAKE2b-256 checksum
How to use checksums
e3a075e87a016a0fa59e46974f2769502c34ac14c229872267aef7be7580dc77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release history Release notifications | RSS feed

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page