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
-
Install and sign in to at least one supported agent.
-
Check your setup, then open the guided session creator:
uam doctor
uam new
-
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 --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.8 or newer. 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