codeam-cli 2.39.25 → 2.39.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to `codeam-cli` are documented here.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [2.39.25] — 2026-06-17
8
+
9
+ ### Added
10
+
11
+ - **cli:** Self-hosted host-agent supervisor + Docker E2E (#330) (#350)
12
+
7
13
  ## [2.39.24] — 2026-06-17
8
14
 
9
15
  ### Changed
package/README.md CHANGED
@@ -60,6 +60,8 @@ That's it. Open the [CodeAgent Mobile app](https://codeagent-mobile.com), enter
60
60
  | `codeam deploy` | Provision a cloud workspace (GitHub Codespaces) and pair it to your phone |
61
61
  | `codeam deploy ls` (alias `list`) | List the cloud workspaces you've deployed (and which still have a session running) |
62
62
  | `codeam deploy stop` (alias `remove`) | Pick a deployed workspace and stop its codeam session (and optionally the workspace itself) |
63
+ | `codeam host enroll --token <token>` | Enroll **this machine** as a self-hosted execution target (the token is minted by the mobile/web app) |
64
+ | `codeam host-agent` | Run the self-hosted supervisor (the enroll step installs this as a systemd service — you rarely call it by hand) |
63
65
  | `codeam completion <shell>` | print shell completions for `<shell>` (`bash`, `zsh`, or `fish`) |
64
66
  | `codeam --version`, `-v` | Print the installed CLI version |
65
67
  | `codeam --help`, `-h` | Show usage and the full command list |
@@ -98,13 +100,33 @@ codeam deploy stop
98
100
 
99
101
  Stopping a workspace via `codeam deploy stop` is non-destructive: the GitHub Codespace stays around (preserving your branch, files, and dotfiles); only the running compute is paused. Re-running `codeam deploy` will offer to resume that same codespace.
100
102
 
101
- Adding more cloud backends (Gitpod, Coder, your own SSH host, …) is a single new file in `apps/cli/src/services/providers/` — the `CloudProvider` interface keeps it pluggable.
103
+ Adding more managed cloud backends (Gitpod, Coder, …) is a single new file in `apps/cli/src/services/providers/` — the `CloudProvider` interface keeps it pluggable. To run on **your own server** instead, see the next section.
104
+
105
+ ---
106
+
107
+ ## Self-hosted execution plane — run agents on your own server
108
+
109
+ Prefer to run the execution plane on **your own hardware** (a VPS, homelab, or GPU box) instead of a managed Codespace? CodeAgent can provision the same agent runtime on any Linux server you own — with **zero inbound ports, no tunnel, and without ever handing us your SSH keys**. The box only needs outbound internet.
110
+
111
+ **Setup is a one-time paste, driven from the app:**
112
+
113
+ 1. In the CodeAgent Mobile app (or web dashboard), open the deploy flow and pick **Self-hosted → Add server**. It shows a one-line install command carrying a short-lived enroll token.
114
+ 2. Paste it into an SSH session on your box:
115
+ ```bash
116
+ curl -fsSL https://api.codeagent-mobile.com/api/self-hosted/enroll.sh | sh -s -- --token=<enroll-token>
117
+ ```
118
+ That installs `codeam-cli`, registers a **systemd** service (`codeam-host-agent`), and connects it back over the same **outbound** relay everything else uses. It survives reboots.
119
+ 3. From then on it's **100% phone/web-driven**: pick the host + a repo (or an absolute path on the box) + an agent, and a session spins up on your server — supervised from your phone like any other. Stop sessions or remove the host from the app.
120
+
121
+ Under the hood the installer runs `codeam host enroll` (redeems the token, seals a long-lived host-token to `~/.codeam/host-agent.json`) and starts `codeam host-agent` (the supervisor that spawns a `codeam pair-auto` child per deploy, injecting your linked agent's credentials). You normally never invoke these by hand.
122
+
123
+ > **Deploying to and managing self-hosted servers happens in the mobile/web app, not the CLI.** The CLI's role here is the one-time enrollment plus the long-running host-agent. Requires Linux + systemd.
102
124
 
103
125
  ---
104
126
 
105
127
  ## Requirements
106
128
 
107
- - **Node.js 18+**
129
+ - **Node.js 20+**
108
130
  - **Claude Code** — see the [official quickstart](https://code.claude.com/docs/en/quickstart)
109
131
  - **OpenAI Codex** (optional) — see the [official quickstart](https://github.com/openai/codex)
110
132
  - **[CodeAgent Mobile](https://codeagent-mobile.com)** app on your phone ([iOS](https://apps.apple.com/) / [Android](https://play.google.com/store/apps/details?id=com.codeagent.mobile))
package/dist/index.js CHANGED
@@ -498,7 +498,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
498
498
  // package.json
499
499
  var package_default = {
500
500
  name: "codeam-cli",
501
- version: "2.39.25",
501
+ version: "2.39.26",
502
502
  description: "Workflow-continuity bridge for AI coding agents. Wrap Claude Code or Codex in a PTY and supervise, approve, and redirect the session from any device \u2014 async. The terminal companion for CodeAgent Mobile.",
503
503
  type: "commonjs",
504
504
  main: "dist/index.js",
@@ -5908,7 +5908,7 @@ function readAnonId() {
5908
5908
  }
5909
5909
  function superProperties() {
5910
5910
  return {
5911
- cliVersion: true ? "2.39.25" : "0.0.0-dev",
5911
+ cliVersion: true ? "2.39.26" : "0.0.0-dev",
5912
5912
  nodeVersion: process.version,
5913
5913
  platform: process.platform,
5914
5914
  arch: process.arch,
@@ -26794,7 +26794,7 @@ function checkChokidar() {
26794
26794
  }
26795
26795
  async function doctor(args2 = []) {
26796
26796
  const json = args2.includes("--json");
26797
- const cliVersion = true ? "2.39.25" : "0.0.0-dev";
26797
+ const cliVersion = true ? "2.39.26" : "0.0.0-dev";
26798
26798
  const apiBase2 = resolveApiBaseUrl();
26799
26799
  const diagnosticId = (0, import_node_crypto8.randomUUID)();
26800
26800
  log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
@@ -26993,7 +26993,7 @@ async function completion(args2) {
26993
26993
  // src/commands/version.ts
26994
26994
  var import_picocolors13 = __toESM(require("picocolors"));
26995
26995
  function version2() {
26996
- const v = true ? "2.39.25" : "unknown";
26996
+ const v = true ? "2.39.26" : "unknown";
26997
26997
  console.log(`${import_picocolors13.default.bold("codeam-cli")} ${import_picocolors13.default.cyan(v)}`);
26998
26998
  }
26999
26999
 
@@ -27279,7 +27279,7 @@ function checkForUpdates() {
27279
27279
  if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
27280
27280
  if (process.env.CI) return;
27281
27281
  if (!process.stdout.isTTY) return;
27282
- const current = true ? "2.39.25" : null;
27282
+ const current = true ? "2.39.26" : null;
27283
27283
  if (!current) return;
27284
27284
  const cache = readCache();
27285
27285
  const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "2.39.25",
3
+ "version": "2.39.26",
4
4
  "description": "Workflow-continuity bridge for AI coding agents. Wrap Claude Code or Codex in a PTY and supervise, approve, and redirect the session from any device — async. The terminal companion for CodeAgent Mobile.",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",