OWNER
Organization control
Manages the organization, hosts, sessions, and teammates.
AVENBAY / DOCUMENTATION
Avenbay is a secure control plane for persistent CLI-agent sessions on machines you own. Connect a host once, then start, inspect, and resume agent work from the browser.
GET STARTED
The standard setup takes four steps. Your first account becomes the owner of a new organization; every resource created after that belongs to the same organization.
Register in the Avenbay console with an organization name, email, and a password of at least 12 characters.
Open the verification link sent by Avenbay, then sign in. Verification links are single-use and valid for 24 hours.
In Hosts → Add host, name the machine and run the one-time enrollment command on it.
Choose the connected host, project, working directory, and agent. Open its terminal or send a task without opening SSH.
IDENTITY
Each account belongs to exactly one organization. Organization membership comes from the authenticated server session—it is never selected or supplied by a browser API request.
OWNER
Manages the organization, hosts, sessions, and teammates.
ADMIN / MEMBER
Admins can invite users and enroll hosts. Members operate authorized agent sessions.
VIEWER
Inspects organization resources without privileged changes.
BRING YOUR OWN COMPUTE
The worker is a small service installed next to your repositories and agent binaries. It establishes an authenticated outbound WebSocket connection to Avenbay and does not open a listener.
Open Hosts, select Add host, and enter a recognizable machine name. Avenbay displays a 15-minute, single-use command:
fleet-worker enroll --url https://avenbay.com --token <single-use-token>The enrollment exchange prints a host ID and 90-day worker credential. Store both in the service environment, never in shell history or a command argument.
FLEET_CONTROL_URL=wss://avenbay.com/v1/worker/connect
FLEET_HOST_ID=host_replace_me
FLEET_WORKER_TOKEN=replace_with_enrollment_secret
FLEET_STATE_PATH=/var/lib/fleet/state.db
FLEET_ALLOWED_EXECUTABLES=codex,claude
FLEET_ALLOWED_ROOTS=/srv/repositoriesRun the worker as a dedicated, non-root Unix account with access only to the repositories it should manage. The host will appear as online after its WSS connection is accepted.
AGENT RUNTIMES
An adapter translates Avenbay’s common session operations into the command-line behavior of a specific coding agent. The worker starts the selected executable inside its private tmux server, delivers tasks, and reports lifecycle state to the control plane.
Start interactive Codex sessions, attach from the browser, send tasks, stop work, and resume an exited Codex session.
Start interactive Claude Code sessions, attach from the browser, deliver tasks, and stop the managed process.
Adapters do not grant the control plane arbitrary shell execution. Workers accept typed operations against Avenbay session IDs and enforce the executable and filesystem policy locally.
SESSION LIFECYCLE
A session belongs to one organization, host, project, and owner. Its process runs in the worker’s private tmux server, so closing the browser does not stop the agent.
| Action | What it does | Availability |
|---|---|---|
| Open terminal | Creates a short-lived attachment grant and connects the browser to the managed tmux session. | Running |
| Send task | Queues typed input through a tmux buffer and submits it without requiring an attached terminal. | Running |
| Stop | Stops the underlying managed session on its worker host. | Running |
| Resume | Starts a new Codex session from an exited Codex session. | Exited / Codex |
| Delete | Permanently removes session history after the agent has exited or failed. | Exited / Failed |
AGENT COORDINATION
Coordination tasks let one running agent session delegate a bounded piece of work to another running session in the same organization. Agents create and update tasks with the scoped fleet-session CLI; operators monitor every handoff from the console’s Tasks page.
session_cli capability and includes the fleet-session binary.Run these commands inside a Fleet-managed terminal. First discover the other running sessions in your organization:
fleet-session whoami
fleet-session peersChoose a target session ID from peers, then create the handoff:
fleet-session send \
--to sess_target \
--task "Review the authentication changes and report any regressions"The command returns JSON containing the new ctask_… ID. Avenbay records the task, attempts to deliver a notification into the target session, and exposes it immediately in the Tasks dashboard.
The target agent receives the task instruction together with acknowledgement commands. It can also inspect its inbox explicitly:
fleet-session inbox
fleet-session show ctask_123
fleet-session accept ctask_123
fleet-session progress ctask_123 --message "Tests are running"
fleet-session complete ctask_123 --message "Review complete; no regressions found"For a large result, use --result-file PATH with progress, complete, or fail. Result files are limited to 120 KiB.
fleet-session status ctask_123
fleet-session wait ctask_123 --timeout 20m
fleet-session cancel ctask_123wait polls until the task is completed, failed, or cancelled. Cancelling stops Fleet coordination but does not guarantee that a target agent which already began work has stopped; interrupt that session manually when necessary.
A target session can delegate part of an accepted task to another running session and preserve the relationship:
fleet-session send \
--to sess_specialist \
--task "Check the database migration for rollback safety" \
--parent ctask_123The parent must target the session creating the child. Delegation depth is limited to three levels to keep coordination bounded and understandable.
OVERVIEW
Active, needs-attention, completed, and total metrics summarize organization-wide coordination. The dashboard refreshes every 15 seconds and supports manual refresh.
FIND
Filter all, active, completed, or failed work. Search by task content, ID, state, project, session, or agent runtime.
INSPECT
Select a task to inspect its instruction, source and target sessions, parent, depth, result or failure, and chronological activity events.
INTERVENE
Open either running session’s terminal directly. Non-viewer users can cancel active coordination tasks after confirmation.
| State | Meaning |
|---|---|
| Pending | The task is stored, but delivery into the target session was not confirmed. |
| Submitted | The task notification was written and submitted to the target agent. |
| Accepted | The target session acknowledged responsibility for the task. |
| Completed | The target returned a result and finished the task. |
| Failed | The target reported why it could not complete the task. |
| Cancelled | The source session or an authorized console user stopped coordination. |
TRUST MODEL
IDENTITY
Every user and resource is scoped to one organization. Passwords use PBKDF2-SHA256; email, invitation, reset, enrollment, and worker tokens are stored as hashes.
NETWORK
The worker initiates outbound WSS. Only the HTTPS control plane is internet-facing; your host does not need an inbound firewall rule.
EXECUTION
The worker permits configured executables and roots, accepts typed session operations, and isolates managed sessions on a dedicated tmux socket.
AUDIT
Lifecycle and input operations create organization-scoped audit events. Terminal recording is disabled by default.
SELF-HOSTING
Run the control plane and web console behind TLS, use PostgreSQL for persistent state, and configure Mailjet Send API v3.1 before enabling public signup.
AVENBAY_ORIGIN=https://avenbay.com
AVENBAY_APP_URL=https://app.avenbay.com
FLEET_ALLOWED_ORIGINS=https://avenbay.com
FLEET_SECURE_COOKIES=true
FLEET_PUBLIC_SIGNUP=true
FLEET_MAILJET_API_KEY=use-a-secret-manager
FLEET_MAILJET_SECRET_KEY=use-a-secret-manager
FLEET_MAILJET_FROM=Avenbay <[email protected]>fleet-server replica; live worker and terminal routes are currently held in process.DIAGNOSTICS
Confirm the worker service has the printed host ID and worker token, can resolve and reach avenbay.com over HTTPS/WSS, and points to wss://avenbay.com/v1/worker/connect. Then inspect the worker service logs.
Use the public URL consistently and add its exact HTTPS origin to FLEET_ALLOWED_ORIGINS. Development servers may also require the public tunnel hostname in their allowed-host configuration.
Check the Mailjet API credentials, validated sender or domain, and Mailjet delivery logs. During local development with the SMTP fallback, open Mailpit at http://127.0.0.1:8025.
Deletion removes the session record. Refresh the session list and close any open detail or terminal view that still references the old session ID.
fleet-session says it must run inside a managed sessionCreate a new session on a worker that includes the session CLI capability, then run the command from that session’s terminal. The command intentionally refuses to use manually supplied user or worker credentials.
The task was stored but delivery to the target was not confirmed. Confirm the target session is still running, its worker is online, and the target terminal can receive typed operations. You can cancel the task and retry with another running session.
The dashboard shows coordination tasks created with fleet-session send, not ordinary input sent from a session card. Create at least two running sessions and delegate work from one managed terminal to the other.