Open it

Routes

ProtocolAddressJARProvider
httpsaiclisupervisor.wasmserver.comai-cli-supervisor-manager-wui.jardanger_jarfile
urlurl://aiclisupervisormanager/ai-cli-supervisor-manager-service-server.jardanger_jarfile
urlurl://vpn.2f4acf98240f.aiclisupervisor/service-server-launcher.jardanger_jarfile

Repositories

RepositoryLayerDescription
AiCliHostSupervisorDaemonApiapiService contract: session management + PTY control operations
AiCliHostSupervisorDaemonEmbeddedembeddedThe daemon — manages multiple concurrent AiCliPty sessions
AiCliHostSupervisorDaemonServiceServerserviceserverurl:// protocol server (SJVM client bytecode); service-server-launcher.jar is built from here
AiCliHostSupervisorDaemonWuiwuiBrowser terminal UI; aicli-hostsupervisor-wui.jar is built from here

Depends on

Depended on by

Documentation Edit this page

AI CLI Supervisor

Remote supervision of AI CLI tools (Claude Code, OpenAI Codex, …) via programmatic PTY sessions. A supervisor daemon runs on a host, manages multiple concurrent AiCliPty sessions by session id (create, list, control, shut down, health/status), and exposes them over the url:// protocol; a browser-based WUI drives those sessions with a live terminal view. It is the hosted face of the AiCli project, and the runner that the agent workstreams (AiCliHostSupervisor, MyLittleAgi) build on.

Current status (2026-07-09): aiclisupervisor.wasmserver.com serves the AiCli Supervisor Fleet console (AiCliSupervisorManagerWui, superseding the single-supervisor DaemonWui) over the durable manager at url://aiclisupervisormanager/. Real supervisors run the AiCliHostSupervisorLauncher fat jar (real CodexPty/ClaudePty sessions, self-announcing with --register-with); the CN-hosted service-server-launcher.jar route remains a FakeCodexPty demo instance. The stack reports usage/quota at all four AiCli scopes (supervisor / model / agent / conversation — each quota a max quantity + current quantity, e.g. the Codex 5-hour and weekly limits parsed live from /status): the daemon serves getUsage, the manager caches fleet-wide usage, and the console renders it on /usage plus per-conversation and per-supervisor panels.

Routes

The supervisor url:// route is per host: each supervised host gets its own vpn.<host-id>.aiclisupervisor instance (the vpn.* naming convention) — real hosts run the launcher fat jar directly (standalone P2P mode) rather than under ContainerNursery. The console is a stateless HTTPS frontend over the durable manager; live PTY traffic flows straight to the owning supervisor.

Architecture

          +---------------------------+
          |      Browser / Admin      |
          +---------------------------+
                      |
                HTTPS | (TLS terminated by ContainerNursery)
                      v
          +-------------------------------+
          | aicli-hostsupervisor-wui.jar  |   stateless WUI (Jetty)
          | aiclisupervisor.wasmserver.com|   remembers supervisors in
          | (ContainerNursery)            |   browser localStorage only
          +-------------------------------+
                      |
            url:// via UrlResolver (P2P / libp2p)
                      v
   +------------------------------------------------+
   |  url://vpn.<host-id>.aiclisupervisor/          |
   |  service-server-launcher.jar                   |   sends SJVM client
   |  (ContainerNursery, lazy-start)                |   bytecode to callers
   +------------------------------------------------+
                      |
                      v
          +---------------------------+
          | AiCliHostSupervisorDaemon |   multi-session PTY manager
          |  Embedded (the daemon)    |   (one per host)
          +---------------------------+
                      |
          +-----------+-----------+
          v           v           v
      AiCliPty    AiCliPty    AiCliPty       each session = an AI CLI under a
      session 1   session 2   session N      pseudo-terminal (real ptyFactory),
                                             optionally inside a Docker container
                                             with AiCliDockerGuestDaemon

The deployed daemon currently substitutes a FakeCodexPty for the real per-session PTY (see status note above).

Repositories

Part of the broader AiCli family, which also includes aiCliPtyApi / AiCliPtyEmbedded (PTY emulation), AiCliDockerGuestDaemonEmbedded (in-container PTY proxy), and AiCliGui (desktop frontend).

Dependents

Deployment

Both JARs run on ContainerNursery via the danger_jarfile provider with keepWarmSeconds: 300.

Health Checks

Notes

Read at commit 45ba0b30ed3b