https://github.com/axeldelafosse/agents-ui
The frontend for your background agents. Acts as an official client for Claude Code/Codex CLIs. BYOB (Bring Your Own Backend)
https://github.com/axeldelafosse/agents-ui
agents background-agents claude claude-code codex codex-cli openclaw opencode pi
Last synced: 18 days ago
JSON representation
The frontend for your background agents. Acts as an official client for Claude Code/Codex CLIs. BYOB (Bring Your Own Backend)
- Host: GitHub
- URL: https://github.com/axeldelafosse/agents-ui
- Owner: axeldelafosse
- Created: 2026-02-24T08:00:47.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-03-03T19:26:40.000Z (24 days ago)
- Last Synced: 2026-03-03T23:38:27.983Z (24 days ago)
- Topics: agents, background-agents, claude, claude-code, codex, codex-cli, openclaw, opencode, pi
- Language: TypeScript
- Homepage:
- Size: 1.17 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# agents-ui
```bash
bun install
bun dev
```
Open http://localhost:3000
- Frontend app: `apps/agents-ui`
- Relay server: `apps/relay-server` (start with `bun run start:relay-server`)
## Tailscale Discovery
For agents running across VMs on a Tailscale network, set these env vars for the
web app:
```bash
TAILSCALE_API_KEY=tskey-api-...
TAILSCALE_TAILNET=- # "-" = your default tailnet
```
First, add the tags to your Tailscale ACL policy
([admin console → Access Controls](https://login.tailscale.com/admin/acls/file)):
```json
{
"tagOwners": {
"tag:agent": ["autogroup:admin"],
"tag:agent-claude": ["autogroup:admin"],
"tag:agent-codex": ["autogroup:admin"]
}
}
```
Then tag your agent VMs when provisioning:
```bash
# Claude Code relay VM
tailscale up --advertise-tags=tag:agent-claude
# Codex app-server VM
tailscale up --advertise-tags=tag:agent-codex
# Both protocols
tailscale up --advertise-tags=tag:agent
```
> **Note:** `tailscale up` requires re-specifying all non-default flags.
> If you get an error, add them (e.g. `--accept-routes`). The error message
> will show the full command you need.
The frontend calls `GET /api/discover` on load, which queries the Tailscale API
for tagged devices and tries connecting to known ports on each.
## Package releases
Shared packages are under `packages/` and are ready to publish as:
- `@axel-delafosse/protocol`
- `@axel-delafosse/agent-runtime`
- `@axel-delafosse/ui`
See `RELEASING.md` for commands and process.
CI release is configured in `.github/workflows/release.yml` and can auto-version/publish on `main` using Changesets.
No login required — being on the tailnet IS the auth.
## Codex schemas
Generated Codex app-server types are checked into `codex-app-server-schemas/`.
```bash
# update from a freshly generated schema directory
bun run update:codex-schemas
```