Skip to main content

alans-way-computer

❖ Communityv0.7.0

Computer-use provider for Hermes: the stock computer_use tool drives desktop apps on the user's computer through the Alan's Way app, and on the VM's own desktop when the computer is offline. Needs the alans-way plugin's workspace setup. Select it with computer_use.backend: alans-way-computer.

Open in Hermes Desktop
hermes plugins install alans-way-computer

README

From the reviewed commit ce51733 ↗; it updates when the author re-pins.

Alan's Way computer-use provider

A computer-use provider for Hermes. Select it and the stock computer_use tool drives desktop apps on the user's own computer through the Alan's Way app. When that computer is offline it drives the VM's desktop instead, with no change on the Hermes side.

It needs a Hermes build with the pluggable computer-use API (pull request 133556, merged after 0.21.5). On older Hermes the plugin installs and logs that it did nothing.

Setup

  1. Install the alans-way plugin and run its workspace setup. That writes the profile's mcp_servers.workspace_browser block, which this provider reuses.
  2. Install this plugin: hermes plugins install alans-way-computer.
  3. Select it by setting computer_use.backend: alans-way-computer in the profile's config.yaml, or run hermes config set computer_use.backend alans-way-computer.
  4. Restart the gateway. Check it with hermes computer-use doctor, which runs the router's probe and says whether the computer or the VM desktop is answering.

What it does

  • Starts the router from the workspace_browser block as a long-lived node child, one per Hermes session, and talks to it over its stdio. The router reaches the user's computer by SSH over the user's Tailscale tailnet and falls back to the VM desktop when that fails. A dead or silent router is restarted on the next call.
  • Never takes focus. Input is delivered in the background, focus_app only chooses which app later actions target, and foreground delivery is refused. Keychains, password managers and password fields are off limits.
  • After a switch between the computer and the VM, app ids and element numbers no longer mean anything. The next action returns host_changed: call list_apps and capture again.
  • Typing needs a field: use set_value with an element number. type with no target, middle and triple clicks and modifier clicks return unsupported_action.

Approvals

Hermes asks for approval before every computer_use action except capture, list_apps, list_windows and wait, once per action type. An unattended Telegram bot has nobody to answer, so grant them once. Either tap Always in Telegram when asked, or add these entries to command_allowlist in the profile's config.yaml, one each, and restart the gateway:

command_allowlist:
  - cua:click:background
  - cua:double_click:background
  - cua:right_click:background
  - cua:drag:background
  - cua:scroll:background
  - cua:key:background
  - cua:set_value:background
  - cua:focus_app:background

computer_use.permission_mode applies to the cua driver only and has no effect here.

Limits

  • It runs inside the Hermes process, so it cannot load under plugins.isolation: host.
  • It spawns node, resolved the way Hermes resolves an MCP server command.
  • Screenshots have no numbered overlays: use the element numbers in the list. Scroll amounts are wheel ticks, converted to pages at a quarter page per tick.
alans-way❖ Community

Idle check-ins from the primary bot of a Hermes gateway on a Linux machine or a macOS guest VM: when the bound Telegram chat has been quiet for two hours, during 08:00-22:00 in the user's timezone, the bot checks in once (does one safe step and reports it, suggests one, or asks one question), backing off when unanswered. The model tool can only make check-ins quieter; more often, resume and wider hours are operator-only via /proactivity or the CLI. After install, the workspace-setup skill walks the agent through a separate companion app and Tailscale setup on the user's computer (macOS, Windows or Linux); desktop input goes only through Hermes's approval-gated computer_use tool. Disclosure — once the gateway connects Telegram, a background thread checks every 60 seconds. When the bound Telegram DM has been quiet (2 h by default, doubling per unanswered check-in, 08:00-22:00 user time), it injects an internal user-role prompt into that chat (needs plugins.entries.alans-way.allow_gateway_injection, which setup sets), so the bot runs a turn on its own and may take one "safe, reversible" step; the user still approves tool calls in Telegram. Its pre_llm_call/post_llm_call hooks see every session's turns and store only the bound chat's timestamps in plugin state. On first load it reads $HERMES_HOME/companion/proactivity/proactivity.sqlite3 once, read-only. The workspace-setup skill has the agent clone this repo at the catalog pin and run setup.sh, which: installs long-running services (Linux systemd units hermes-alans-way-chromium/-browser with loginctl enable-linger and a mac-watch.service with Restart=always; a KeepAlive LaunchAgent on a macOS guest; logon Scheduled Tasks on Windows); adds a TimeoutStartSec=180 drop-in to the hermes-gateway unit and restarts the gateway from a transient systemd-run timer; appends the user's computer's public key to ~/.ssh/authorized_keys (administrators_authorized_keys on a Windows admin account), pins its host key in known_hosts and adds a ControlMaster block to ~/.ssh/config, for Tailscale hosts only; for the main profile and every profile with its own Telegram bot, writes a managed mcp_servers.workspace_browser block (removing other entries that run this router, with a backup), turns off the built-in browser toolset for Telegram and cron, and turns computer_use back on for Telegram and cron; and reads each profile's TELEGRAM_BOT_TOKEN only to derive the numeric bot id. The workspace router reaches the user's computer over SSH on their tailnet. The companion setup page has the human run the alans-way connect script from its main branch on their own computer, and the agent may install Tailscale with its official install script. Desktop input goes through Hermes's approval-gated computer_use tool. The manual --allow-desktop-actions setup flag, which the skill offers but never adds itself, adds cua:*:background entries to command_allowlist. On a Hermes without the computer-use provider API, including 0.21.5, it also exposes workspace_computer_action, which drives the user's desktop, Terminal included, with no approval.

Automation

← Back to the catalog · catalog built Oct 8, 2026