unified-agent-manager

command module
v0.10.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 25, 2026 License: MIT Imports: 5 Imported by: 0

README

Unified Agent Manager

One terminal dashboard for every coding-agent session.

Start agents, leave them running, and reconnect when you are ready. No tmux required.

CI Security Latest release Downloads Go version Linux and macOS

UAM dashboard preview showing running, stopped, and failed coding-agent sessions

Dashboard preview

UAM gives Claude Code, Codex, Copilot, Hermes, Oh My Pi, and OpenCode one session list. Close the dashboard or lose an SSH connection and your agents keep running. Open UAM later to attach, resume, stop, or remove them.

Why use UAM

  • Keep agents running. Closing your terminal does not end their work.
  • See everything together. Running, stopped, and failed sessions share one clear roster.
  • Return without guesswork. Reconnect to a live session or resume a stopped one.
  • Use the terminal you already have. Mouse and keyboard controls work locally and over SSH.
  • Skip tmux setup. UAM owns the detached session for you.

UAM manages agent processes and terminal connections. It does not create Git branches, worktrees, commits, or filesystem isolation.

Install

UAM runs on Linux and macOS. Download a ready-to-run archive from GitHub Releases, or install it with Go:

go install github.com/RandomCodeSpace/unified-agent-manager/cmd/uam@latest
uam version

Native Windows is not supported. A Windows terminal can still use UAM by connecting to a Linux or macOS host over SSH.

Start your first agent

  1. Install and sign in to at least one supported agent.

  2. Check your setup, then open the guided session creator:

    uam doctor
    uam new
    
  3. When you want to leave, press Ctrl+B, then d. Your agent stays running. Run uam whenever you want to return.

uam new asks which agent to use, where it should work, what to call the session, and what task to start. It then connects you to the new session.

Prefer one command? Flags go before the provider name:

uam dispatch --cwd /path/to/project codex "review this package"

Supported agents

UAM detects installed agent CLIs automatically. Missing agents stay out of the dashboard instead of causing an error.

Agent Command
Claude Code claude
OpenAI Codex codex
GitHub Copilot CLI copilot
Hermes Agent hermes
Oh My Pi omp
OpenCode opencode

OpenCode 1.18.1 or newer is required. UAM verifies the owner of OpenCode's local connections before sending credentials. This requires access to the TCP tables in /proc/net on Linux or the system /usr/sbin/lsof on macOS; startup fails if the connection owner cannot be verified.

Continuing a stopped session varies by agent. Some return to an exact conversation, while others may ask before continuing the latest one. Hermes requires a new Managed Session. See the provider resume table for the exact behavior.

Everyday commands

Command What it does
uam Open the dashboard
uam new Create a session with a guided form
uam dispatch <agent> "<task>" Start a session directly
uam ls List every saved session
uam last Attach to the most recent session
uam doctor Check providers, sessions, and configuration
uam web Start the browser interface for Copilot (guide)
uam --help Show the full command reference

Essential controls

In the dashboard:

Input Action
Click a row or press Up / Down Select a session
Click Attach / Resume or press Enter Open the selected session
/ Filter sessions
e Create a session
Ctrl+X Stop or remove the selected session after confirmation
? Show more shortcuts
Esc Close the current view or leave the dashboard

While attached, the default prefix is Ctrl+B:

Input Action
Ctrl+B, then d Detach and leave the agent running
Ctrl+B, then c Send Ctrl+C to the agent
Ctrl+B, then i Show connection and profile details
Ctrl+Left Detach when the agent's input box is empty (word-left otherwise)

Bare arrow keys always reach the agent. On uam's own alternate screen the last terminal row is a persistent status bar: your role, the session as <name> · <provider> · <id>, the keys above, the working directory, the profile, and a note when mouse passthrough is off. The agent gets the rows above it, and narrower terminals drop the trailing items. Providers that draw on the primary screen (codex, omp) keep every row so their terminal scrollback stays intact.

Plain Ctrl+C and Ctrl+Z are held back while attached so they do not accidentally terminate or suspend the detached agent.

Safety

By default, UAM uses an agent's broad-access or auto-approve option when one is available. Use --safe to keep the agent's normal approval prompts:

uam dispatch --safe codex "review this repository"

--safe changes the agent's launch options. It is not an operating-system sandbox. Multiple sessions can also edit the same directory at once, so use separate Git worktrees or checkouts when tasks need isolation.

Need help?

Build and contribute

make build
make test
make test-e2e

Source builds require Go 1.25.14 or newer and Node.js with npm (the tested Node version is in web/.node-version). make build and make install install the locked frontend dependencies, build the UI, then embed it in the Go binary. Generated bundles are ignored on source branches. A plain go build or go install ./cmd/uam without first running make web builds the terminal commands, but uam web reports that its UI has not been built.

Release tags contain a generated UI commit, so go install github.com/RandomCodeSpace/unified-agent-manager/cmd/uam@<version> includes the web UI without Node.js. Use @v0.8.0 for this stable release, or @latest for the newest stable release. A beta requires its exact published tag, such as @v0.8.0-beta.1. See release preparation for the local, reviewable tag workflow.

Read Testing UAM before changing terminal, attach, or session-host behavior.

Prebuilt binaries, checksums, SBOMs, and signing material are available on the releases page.

Verify a release

SHA256SUMS is signed with cosign keyless signing from the release workflow. Download the archive, SHA256SUMS, SHA256SUMS.sig, and SHA256SUMS.pem from the release, then check the signature against the workflow identity before trusting the checksums:

cosign verify-blob --certificate SHA256SUMS.pem --signature SHA256SUMS.sig \
  --certificate-identity-regexp '^https://github.com/RandomCodeSpace/unified-agent-manager/.github/workflows/release.yml@refs/tags/v' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com SHA256SUMS
sha256sum -c SHA256SUMS --ignore-missing

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
uam command
internal
adapter/adaptertest
Package adaptertest provides a recording fake of adapter.Backend for tests.
Package adaptertest provides a recording fake of adapter.Backend for tests.
agentapi
Package agentapi is the provider-neutral contract between the uam web service and the structured provider integrations (the Copilot SDK and the OpenCode server).
Package agentapi is the provider-neutral contract between the uam web service and the structured provider integrations (the Copilot SDK and the OpenCode server).
agentapi/agenttest
Package agenttest provides a scriptable agentapi.Provider for tests of the web service.
Package agenttest provides a scriptable agentapi.Provider for tests of the web service.
agents
Package agents is the single source of truth for the set of agent adapters uam manages.
Package agents is the single source of truth for the set of agent adapters uam manages.
app
cli
displaytext
Package displaytext prepares untrusted metadata for display in a terminal.
Package displaytext prepares untrusted metadata for display in a terminal.
log
pr
providerstate
Package providerstate validates the persistent root used for provider-owned launch metadata.
Package providerstate validates the persistent root used for provider-owned launch metadata.
session
Package session is uam's native session backend.
Package session is uam's native session backend.
vterm
Package vterm is a minimal in-process VT100/xterm screen emulator.
Package vterm is a minimal in-process VT100/xterm screen emulator.
web
Package web is the `uam web` service: a detached per-user process that owns web-surface managed sessions, drives providers through agentapi, and serves the browser interface described in docs/adr/0004-web-interface.md.
Package web is the `uam web` service: a detached per-user process that owns web-surface managed sessions, drives providers through agentapi, and serves the browser interface described in docs/adr/0004-web-interface.md.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL