codeam-cli 2.43.7 → 2.44.0
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 +6 -0
- package/README.md +15 -0
- package/dist/index.js +151 -87
- package/package.json +1 -1
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.43.7] — 2026-06-25
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **cli:** Surface ACP agent startup failures in-app instead of stuck loading/offline
|
|
12
|
+
|
|
7
13
|
## [2.43.6] — 2026-06-25
|
|
8
14
|
|
|
9
15
|
### Fixed
|
package/README.md
CHANGED
|
@@ -55,6 +55,7 @@ That's it. Open the [CodeAgent Mobile app](https://codeagent-mobile.com), enter
|
|
|
55
55
|
| `codeam sessions switch` | Choose which paired session the next `codeam` invocation will use |
|
|
56
56
|
| `codeam sessions delete <session-id>` | Forget a specific paired session (leaves the others intact) |
|
|
57
57
|
| `codeam status` | Show connection status |
|
|
58
|
+
| `codeam invite` | Print your referral link — share it to earn PRO for you and the devs you bring |
|
|
58
59
|
| `codeam doctor` | run environment, install, and pairing diagnostics (`--json` for machine-readable output) |
|
|
59
60
|
| `codeam logout` | Remove all paired sessions |
|
|
60
61
|
| `codeam deploy` | Provision a cloud workspace (GitHub Codespaces) and pair it to your phone |
|
|
@@ -68,6 +69,20 @@ That's it. Open the [CodeAgent Mobile app](https://codeagent-mobile.com), enter
|
|
|
68
69
|
|
|
69
70
|
---
|
|
70
71
|
|
|
72
|
+
## `codeam invite` — share your referral link
|
|
73
|
+
|
|
74
|
+
Once you're paired, run:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
codeam invite
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The CLI fetches your personal referral link from the backend and prints it. Share it with teammates: every developer who signs up through your link and pairs their first session earns **both of you 14 days of PRO** — at no extra cost.
|
|
81
|
+
|
|
82
|
+
> Requires an active paired session (`codeam pair` first).
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
71
86
|
## `codeam deploy` — drive a cloud workspace from your phone
|
|
72
87
|
|
|
73
88
|
Don't want to keep your laptop running while you control Claude from the train? `codeam deploy` spins up a fresh **GitHub Codespace** for any of your repos, installs Claude Code + `codeam-cli` inside it, copies your local Claude credentials so you skip the re-auth (or runs `claude login` interactively if you don't have a local config yet), supervises the agent with **PM2** so the session survives even after you close your laptop, and gives you a QR/code to pair your phone — straight from your local terminal.
|
package/dist/index.js
CHANGED
|
@@ -5397,7 +5397,7 @@ function readAnonId() {
|
|
|
5397
5397
|
}
|
|
5398
5398
|
function superProperties() {
|
|
5399
5399
|
return {
|
|
5400
|
-
cliVersion: true ? "2.
|
|
5400
|
+
cliVersion: true ? "2.44.0" : "0.0.0-dev",
|
|
5401
5401
|
nodeVersion: process.version,
|
|
5402
5402
|
platform: process.platform,
|
|
5403
5403
|
arch: process.arch,
|
|
@@ -5578,7 +5578,7 @@ var os4 = __toESM(require("os"));
|
|
|
5578
5578
|
// package.json
|
|
5579
5579
|
var package_default = {
|
|
5580
5580
|
name: "codeam-cli",
|
|
5581
|
-
version: "2.
|
|
5581
|
+
version: "2.44.0",
|
|
5582
5582
|
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.",
|
|
5583
5583
|
type: "commonjs",
|
|
5584
5584
|
main: "dist/index.js",
|
|
@@ -17899,7 +17899,7 @@ async function autoUpgradeBeforeCriticalCommand() {
|
|
|
17899
17899
|
if (process.env.NODE_ENV === "test") return;
|
|
17900
17900
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
17901
17901
|
if (process.env.CI) return;
|
|
17902
|
-
const current = true ? "2.
|
|
17902
|
+
const current = true ? "2.44.0" : null;
|
|
17903
17903
|
if (!current) return;
|
|
17904
17904
|
const cache = readCache();
|
|
17905
17905
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -17916,7 +17916,7 @@ function checkForUpdates() {
|
|
|
17916
17916
|
if (process.env.CODEAM_DISABLE_UPDATE_CHECK === "1") return;
|
|
17917
17917
|
if (process.env.CI) return;
|
|
17918
17918
|
if (!process.stdout.isTTY) return;
|
|
17919
|
-
const current = true ? "2.
|
|
17919
|
+
const current = true ? "2.44.0" : null;
|
|
17920
17920
|
if (!current) return;
|
|
17921
17921
|
const cache = readCache();
|
|
17922
17922
|
const fresh = cache && Date.now() - cache.fetchedAt < TTL_MS;
|
|
@@ -18354,7 +18354,7 @@ var defaultSpawner = (env, cwd, args2 = []) => (0, import_node_child_process14.s
|
|
|
18354
18354
|
detached: false
|
|
18355
18355
|
});
|
|
18356
18356
|
function currentCliVersion() {
|
|
18357
|
-
return true ? "2.
|
|
18357
|
+
return true ? "2.44.0" : null;
|
|
18358
18358
|
}
|
|
18359
18359
|
function runCmd(cmd, args2, timeoutMs) {
|
|
18360
18360
|
return new Promise((resolve7) => {
|
|
@@ -29448,13 +29448,71 @@ async function host(args2) {
|
|
|
29448
29448
|
);
|
|
29449
29449
|
}
|
|
29450
29450
|
|
|
29451
|
+
// src/commands/invite.ts
|
|
29452
|
+
var import_picocolors13 = __toESM(require("picocolors"));
|
|
29453
|
+
var API_BASE12 = resolveApiBaseUrl();
|
|
29454
|
+
async function invite() {
|
|
29455
|
+
showIntro();
|
|
29456
|
+
const cfg = loadCliConfig();
|
|
29457
|
+
const session = cfg.sessions.find((s) => s.id === cfg.activeSessionId) ?? null;
|
|
29458
|
+
const pluginAuthToken = session?.pluginAuthToken;
|
|
29459
|
+
const sessionId = session?.id;
|
|
29460
|
+
const pluginId = session?.pluginId ?? cfg.pluginId;
|
|
29461
|
+
if (!pluginAuthToken || !sessionId || !pluginId) {
|
|
29462
|
+
console.log(
|
|
29463
|
+
import_picocolors13.default.yellow(" Not paired yet.") + import_picocolors13.default.dim(" Run ") + import_picocolors13.default.cyan("codeam pair") + import_picocolors13.default.dim(" first, then retry.")
|
|
29464
|
+
);
|
|
29465
|
+
console.log("");
|
|
29466
|
+
return;
|
|
29467
|
+
}
|
|
29468
|
+
try {
|
|
29469
|
+
const result = await _transport.postJsonAuthed(
|
|
29470
|
+
`${API_BASE12}/api/referrals/code`,
|
|
29471
|
+
{ sessionId, pluginId },
|
|
29472
|
+
pluginAuthToken
|
|
29473
|
+
);
|
|
29474
|
+
const data = result?.data;
|
|
29475
|
+
if (!data?.link) {
|
|
29476
|
+
console.log(
|
|
29477
|
+
import_picocolors13.default.red(" Unexpected response from server. Try ") + import_picocolors13.default.cyan("codeam pair") + import_picocolors13.default.red(" then retry.")
|
|
29478
|
+
);
|
|
29479
|
+
console.log("");
|
|
29480
|
+
return;
|
|
29481
|
+
}
|
|
29482
|
+
console.log(import_picocolors13.default.bold(" Invite your crew \u2014 unlock PRO for you and them\n"));
|
|
29483
|
+
console.log(` ${import_picocolors13.default.bold(import_picocolors13.default.cyan(data.link))}`);
|
|
29484
|
+
console.log("");
|
|
29485
|
+
console.log(
|
|
29486
|
+
import_picocolors13.default.dim(
|
|
29487
|
+
" Share this link. Every dev who signs up and pairs a session earns you both 14 days of PRO."
|
|
29488
|
+
)
|
|
29489
|
+
);
|
|
29490
|
+
console.log("");
|
|
29491
|
+
} catch (err) {
|
|
29492
|
+
const e = err;
|
|
29493
|
+
const code = typeof e.statusCode === "number" ? e.statusCode : null;
|
|
29494
|
+
if (code !== null) {
|
|
29495
|
+
console.log(
|
|
29496
|
+
import_picocolors13.default.red(
|
|
29497
|
+
` Couldn't fetch your invite link (HTTP ${code}). Try \`codeam pair\` then retry.`
|
|
29498
|
+
)
|
|
29499
|
+
);
|
|
29500
|
+
} else {
|
|
29501
|
+
console.log(
|
|
29502
|
+
import_picocolors13.default.red(" Couldn't reach the server. Check your connection and try again.")
|
|
29503
|
+
);
|
|
29504
|
+
}
|
|
29505
|
+
console.log("");
|
|
29506
|
+
}
|
|
29507
|
+
}
|
|
29508
|
+
|
|
29451
29509
|
// src/commands/doctor.ts
|
|
29452
29510
|
var import_node_dns = require("dns");
|
|
29453
29511
|
var import_node_util5 = require("util");
|
|
29454
29512
|
var import_node_crypto8 = require("crypto");
|
|
29455
29513
|
var fs48 = __toESM(require("fs"));
|
|
29456
29514
|
var path59 = __toESM(require("path"));
|
|
29457
|
-
var
|
|
29515
|
+
var import_picocolors14 = __toESM(require("picocolors"));
|
|
29458
29516
|
var dnsResolveP = (0, import_node_util5.promisify)(import_node_dns.resolve);
|
|
29459
29517
|
async function checkDns(apiBase2) {
|
|
29460
29518
|
const host2 = (() => {
|
|
@@ -29621,7 +29679,7 @@ function checkChokidar() {
|
|
|
29621
29679
|
}
|
|
29622
29680
|
async function doctor(args2 = []) {
|
|
29623
29681
|
const json = args2.includes("--json");
|
|
29624
|
-
const cliVersion = true ? "2.
|
|
29682
|
+
const cliVersion = true ? "2.44.0" : "0.0.0-dev";
|
|
29625
29683
|
const apiBase2 = resolveApiBaseUrl();
|
|
29626
29684
|
const diagnosticId = (0, import_node_crypto8.randomUUID)();
|
|
29627
29685
|
log.info("doctor", `run id=${diagnosticId} cli=${cliVersion}`);
|
|
@@ -29661,46 +29719,46 @@ async function doctor(args2 = []) {
|
|
|
29661
29719
|
function printHumanReport(r) {
|
|
29662
29720
|
const out2 = process.stderr;
|
|
29663
29721
|
out2.write(`
|
|
29664
|
-
${
|
|
29722
|
+
${import_picocolors14.default.bold(" codeam doctor")}
|
|
29665
29723
|
|
|
29666
29724
|
`);
|
|
29667
|
-
out2.write(` ${
|
|
29725
|
+
out2.write(` ${import_picocolors14.default.dim("cli")} ${r.cliVersion}
|
|
29668
29726
|
`);
|
|
29669
|
-
out2.write(` ${
|
|
29727
|
+
out2.write(` ${import_picocolors14.default.dim("node")} ${r.node}
|
|
29670
29728
|
`);
|
|
29671
|
-
out2.write(` ${
|
|
29729
|
+
out2.write(` ${import_picocolors14.default.dim("os")} ${r.platform} ${r.arch}
|
|
29672
29730
|
`);
|
|
29673
|
-
out2.write(` ${
|
|
29731
|
+
out2.write(` ${import_picocolors14.default.dim("api")} ${r.apiBase}
|
|
29674
29732
|
`);
|
|
29675
29733
|
if (process.env.CODEAM_TEST_MODE === "1" || process.env.CODEAM_TEST_MODE?.toLowerCase() === "true") {
|
|
29676
|
-
out2.write(` ${
|
|
29734
|
+
out2.write(` ${import_picocolors14.default.dim("mode")} ${import_picocolors14.default.yellow("TEST_MODE \u2014 using dev preview")}
|
|
29677
29735
|
`);
|
|
29678
29736
|
} else if (process.env.CODEAM_API_URL) {
|
|
29679
|
-
out2.write(` ${
|
|
29737
|
+
out2.write(` ${import_picocolors14.default.dim("mode")} ${import_picocolors14.default.yellow("CODEAM_API_URL override")}
|
|
29680
29738
|
`);
|
|
29681
29739
|
}
|
|
29682
|
-
out2.write(` ${
|
|
29740
|
+
out2.write(` ${import_picocolors14.default.dim("diag id")} ${r.diagnosticId}
|
|
29683
29741
|
`);
|
|
29684
29742
|
out2.write("\n");
|
|
29685
29743
|
for (const c2 of r.checks) {
|
|
29686
|
-
const mark = c2.ok ?
|
|
29687
|
-
out2.write(` ${mark} ${c2.label}${
|
|
29744
|
+
const mark = c2.ok ? import_picocolors14.default.green("\u2713") : c2.optional ? import_picocolors14.default.yellow("!") : import_picocolors14.default.red("\u2717");
|
|
29745
|
+
out2.write(` ${mark} ${c2.label}${import_picocolors14.default.dim(` \u2014 ${c2.detail}`)}
|
|
29688
29746
|
`);
|
|
29689
29747
|
if (!c2.ok && c2.hint) {
|
|
29690
29748
|
for (const line of c2.hint.split("\n")) {
|
|
29691
|
-
out2.write(` ${
|
|
29749
|
+
out2.write(` ${import_picocolors14.default.dim(line)}
|
|
29692
29750
|
`);
|
|
29693
29751
|
}
|
|
29694
29752
|
}
|
|
29695
29753
|
}
|
|
29696
29754
|
out2.write("\n");
|
|
29697
29755
|
if (r.ok) {
|
|
29698
|
-
out2.write(` ${
|
|
29756
|
+
out2.write(` ${import_picocolors14.default.green("All checks passed.")}
|
|
29699
29757
|
|
|
29700
29758
|
`);
|
|
29701
29759
|
} else {
|
|
29702
29760
|
out2.write(
|
|
29703
|
-
` ${
|
|
29761
|
+
` ${import_picocolors14.default.red("Some checks failed.")} ${import_picocolors14.default.dim("Paste the diagnostic id above when opening a bug report.")}
|
|
29704
29762
|
|
|
29705
29763
|
`
|
|
29706
29764
|
);
|
|
@@ -29818,118 +29876,123 @@ async function completion(args2) {
|
|
|
29818
29876
|
}
|
|
29819
29877
|
|
|
29820
29878
|
// src/commands/version.ts
|
|
29821
|
-
var
|
|
29879
|
+
var import_picocolors15 = __toESM(require("picocolors"));
|
|
29822
29880
|
function version2() {
|
|
29823
|
-
const v = true ? "2.
|
|
29824
|
-
console.log(`${
|
|
29881
|
+
const v = true ? "2.44.0" : "unknown";
|
|
29882
|
+
console.log(`${import_picocolors15.default.bold("codeam-cli")} ${import_picocolors15.default.cyan(v)}`);
|
|
29825
29883
|
}
|
|
29826
29884
|
|
|
29827
29885
|
// src/commands/help.ts
|
|
29828
|
-
var
|
|
29886
|
+
var import_picocolors16 = __toESM(require("picocolors"));
|
|
29829
29887
|
function help() {
|
|
29830
29888
|
const lines = [
|
|
29831
29889
|
"",
|
|
29832
|
-
` ${
|
|
29890
|
+
` ${import_picocolors16.default.bold(import_picocolors16.default.magenta("codeam-cli"))} ${import_picocolors16.default.dim("\u2014 remote-control AI coding agents from your phone")}`,
|
|
29833
29891
|
"",
|
|
29834
|
-
` ${
|
|
29835
|
-
` ${
|
|
29892
|
+
` ${import_picocolors16.default.bold("Usage")}`,
|
|
29893
|
+
` ${import_picocolors16.default.cyan("codeam")} ${import_picocolors16.default.dim("[command]")}`,
|
|
29836
29894
|
"",
|
|
29837
|
-
` ${
|
|
29838
|
-
` ${
|
|
29839
|
-
` ${
|
|
29840
|
-
` ${
|
|
29841
|
-
` ${
|
|
29842
|
-
` ${
|
|
29843
|
-
` ${
|
|
29844
|
-
` ${
|
|
29845
|
-
` ${
|
|
29846
|
-
` ${
|
|
29847
|
-
` ${
|
|
29848
|
-
` ${
|
|
29849
|
-
` ${
|
|
29850
|
-
` ${
|
|
29851
|
-
` ${
|
|
29852
|
-
` ${
|
|
29895
|
+
` ${import_picocolors16.default.bold("Commands")}`,
|
|
29896
|
+
` ${import_picocolors16.default.white("codeam")} ${import_picocolors16.default.dim("start the active agent with mobile control")}`,
|
|
29897
|
+
` ${import_picocolors16.default.white("codeam <agent>")} ${import_picocolors16.default.dim("start a specific agent \u2014 e.g. claude, codex")}`,
|
|
29898
|
+
` ${import_picocolors16.default.white("codeam pair")} ${import_picocolors16.default.dim("pair a new mobile device (interactive)")}`,
|
|
29899
|
+
` ${import_picocolors16.default.white("codeam pair --agent <id>")} ${import_picocolors16.default.dim("pair non-interactively for a specific agent")}`,
|
|
29900
|
+
` ${import_picocolors16.default.white("codeam sessions")} ${import_picocolors16.default.dim("list paired devices")}`,
|
|
29901
|
+
` ${import_picocolors16.default.white("codeam sessions switch")} ${import_picocolors16.default.dim("switch the active paired session")}`,
|
|
29902
|
+
` ${import_picocolors16.default.white("codeam sessions delete <id>")} ${import_picocolors16.default.dim("remove a specific paired session")}`,
|
|
29903
|
+
` ${import_picocolors16.default.white("codeam status")} ${import_picocolors16.default.dim("show connection info")}`,
|
|
29904
|
+
` ${import_picocolors16.default.white("codeam logout")} ${import_picocolors16.default.dim("remove all paired sessions")}`,
|
|
29905
|
+
` ${import_picocolors16.default.white("codeam link <agent>")} ${import_picocolors16.default.dim("link an agent (claude, codex) to your CodeAgent account")}`,
|
|
29906
|
+
` ${import_picocolors16.default.white("codeam deploy")} ${import_picocolors16.default.dim("provision a cloud workspace (Codespaces) and pair it")}`,
|
|
29907
|
+
` ${import_picocolors16.default.white("codeam deploy ls | list")} ${import_picocolors16.default.dim("list deployed cloud workspaces")}`,
|
|
29908
|
+
` ${import_picocolors16.default.white("codeam deploy stop | remove")} ${import_picocolors16.default.dim("stop a deployed workspace session")}`,
|
|
29909
|
+
` ${import_picocolors16.default.white("codeam doctor")} ${import_picocolors16.default.dim("run diagnostic checks (DNS, /health, binaries, \u2026)")}`,
|
|
29910
|
+
` ${import_picocolors16.default.white("codeam completion <shell>")} ${import_picocolors16.default.dim("emit a bash/zsh/fish completion script")}`,
|
|
29853
29911
|
"",
|
|
29854
|
-
` ${
|
|
29855
|
-
` ${
|
|
29856
|
-
` ${
|
|
29912
|
+
` ${import_picocolors16.default.bold("Flags")}`,
|
|
29913
|
+
` ${import_picocolors16.default.white("-v, --version")} ${import_picocolors16.default.dim("print the CLI version")}`,
|
|
29914
|
+
` ${import_picocolors16.default.white("-h, --help")} ${import_picocolors16.default.dim("show this help")}`,
|
|
29857
29915
|
"",
|
|
29858
|
-
` ${
|
|
29859
|
-
` ${
|
|
29860
|
-
` ${
|
|
29916
|
+
` ${import_picocolors16.default.bold("Links")}`,
|
|
29917
|
+
` ${import_picocolors16.default.dim("Docs:")} ${import_picocolors16.default.green("https://www.codeagent-mobile.com")}`,
|
|
29918
|
+
` ${import_picocolors16.default.dim("Issues:")} ${import_picocolors16.default.green("https://github.com/edgar-durand/codeagent-mobile-clients/issues")}`,
|
|
29861
29919
|
""
|
|
29862
29920
|
];
|
|
29863
29921
|
process.stdout.write(lines.join("\n") + "\n");
|
|
29864
29922
|
}
|
|
29865
29923
|
|
|
29866
29924
|
// src/commands/subcommand-help.ts
|
|
29867
|
-
var
|
|
29925
|
+
var import_picocolors17 = __toESM(require("picocolors"));
|
|
29868
29926
|
var HELPS = {
|
|
29869
29927
|
pair: () => print([
|
|
29870
|
-
` ${
|
|
29928
|
+
` ${import_picocolors17.default.bold("codeam pair")} ${import_picocolors17.default.dim("\u2014 pair a mobile device with this CLI")}`,
|
|
29871
29929
|
"",
|
|
29872
|
-
` ${
|
|
29873
|
-
` ${
|
|
29874
|
-
` ${
|
|
29930
|
+
` ${import_picocolors17.default.cyan("codeam pair")} ${import_picocolors17.default.dim("interactive pairing (prompts for the agent)")}`,
|
|
29931
|
+
` ${import_picocolors17.default.cyan("codeam pair --agent <id>")} ${import_picocolors17.default.dim("pair non-interactively (agent: claude | codex)")}`,
|
|
29932
|
+
` ${import_picocolors17.default.cyan("codeam pair --dry-run")} ${import_picocolors17.default.dim("request a pairing code, validate the response, exit")}`
|
|
29875
29933
|
]),
|
|
29876
29934
|
"pair-auto": () => print([
|
|
29877
|
-
` ${
|
|
29935
|
+
` ${import_picocolors17.default.bold("codeam pair-auto")} ${import_picocolors17.default.dim("\u2014 non-interactive variant of pair for scripted setups")}`,
|
|
29878
29936
|
"",
|
|
29879
|
-
` ${
|
|
29937
|
+
` ${import_picocolors17.default.cyan("codeam pair-auto --agent <id>")} ${import_picocolors17.default.dim("pair using the supplied agent id; exit on success or timeout")}`
|
|
29880
29938
|
]),
|
|
29881
29939
|
link: () => print([
|
|
29882
|
-
` ${
|
|
29940
|
+
` ${import_picocolors17.default.bold("codeam link <agent>")} ${import_picocolors17.default.dim("\u2014 upload a local agent token (Claude or Codex) to your vault")}`,
|
|
29883
29941
|
"",
|
|
29884
|
-
` ${
|
|
29885
|
-
` ${
|
|
29942
|
+
` ${import_picocolors17.default.cyan("codeam link claude")}`,
|
|
29943
|
+
` ${import_picocolors17.default.cyan("codeam link codex")}`,
|
|
29886
29944
|
"",
|
|
29887
|
-
` ${
|
|
29888
|
-
` ${
|
|
29889
|
-
` ${
|
|
29890
|
-
` ${
|
|
29891
|
-
` ${
|
|
29945
|
+
` ${import_picocolors17.default.white("--api-key=<key>")} ${import_picocolors17.default.dim("paste an API key directly (visible in `ps -ef`)")}`,
|
|
29946
|
+
` ${import_picocolors17.default.white("--api-key-file=<path>")} ${import_picocolors17.default.dim("read API key from a file (recommended for CI / scripts)")}`,
|
|
29947
|
+
` ${import_picocolors17.default.white("--reuse-existing")} ${import_picocolors17.default.dim("upload existing creds without re-launching the agent login")}`,
|
|
29948
|
+
` ${import_picocolors17.default.white("--token-file=<path>")} ${import_picocolors17.default.dim("manual credential blob path for unusual vendor locations")}`,
|
|
29949
|
+
` ${import_picocolors17.default.white("--dry-run")} ${import_picocolors17.default.dim("probe the /api/plugin/agents/<agent>/link endpoint and exit")}`
|
|
29892
29950
|
]),
|
|
29893
29951
|
sessions: () => print([
|
|
29894
|
-
` ${
|
|
29952
|
+
` ${import_picocolors17.default.bold("codeam sessions")} ${import_picocolors17.default.dim("\u2014 list, switch, or delete paired mobile sessions")}`,
|
|
29895
29953
|
"",
|
|
29896
|
-
` ${
|
|
29897
|
-
` ${
|
|
29898
|
-
` ${
|
|
29954
|
+
` ${import_picocolors17.default.cyan("codeam sessions")} ${import_picocolors17.default.dim("list all paired sessions on this machine")}`,
|
|
29955
|
+
` ${import_picocolors17.default.cyan("codeam sessions switch")} ${import_picocolors17.default.dim("interactively switch the active session")}`,
|
|
29956
|
+
` ${import_picocolors17.default.cyan("codeam sessions delete <id>")} ${import_picocolors17.default.dim("remove a specific paired session")}`
|
|
29899
29957
|
]),
|
|
29900
29958
|
deploy: () => print([
|
|
29901
|
-
` ${
|
|
29959
|
+
` ${import_picocolors17.default.bold("codeam deploy")} ${import_picocolors17.default.dim("\u2014 provision a cloud workspace (GitHub Codespaces) and pair it")}`,
|
|
29960
|
+
"",
|
|
29961
|
+
` ${import_picocolors17.default.cyan("codeam deploy")} ${import_picocolors17.default.dim("start a new deploy (prompts for repo + agent)")}`,
|
|
29962
|
+
` ${import_picocolors17.default.cyan("codeam deploy ls | list")} ${import_picocolors17.default.dim("list deployed cloud workspaces")}`,
|
|
29963
|
+
` ${import_picocolors17.default.cyan("codeam deploy stop | remove")} ${import_picocolors17.default.dim("pick a workspace and stop its codeam-pair session")}`
|
|
29964
|
+
]),
|
|
29965
|
+
invite: () => print([
|
|
29966
|
+
` ${import_picocolors17.default.bold("codeam invite")} ${import_picocolors17.default.dim("\u2014 print your referral link to earn PRO for you and your crew")}`,
|
|
29902
29967
|
"",
|
|
29903
|
-
` ${
|
|
29904
|
-
` ${import_picocolors16.default.cyan("codeam deploy ls | list")} ${import_picocolors16.default.dim("list deployed cloud workspaces")}`,
|
|
29905
|
-
` ${import_picocolors16.default.cyan("codeam deploy stop | remove")} ${import_picocolors16.default.dim("pick a workspace and stop its codeam-pair session")}`
|
|
29968
|
+
` ${import_picocolors17.default.cyan("codeam invite")} ${import_picocolors17.default.dim("fetch and display your personal referral link")}`
|
|
29906
29969
|
]),
|
|
29907
29970
|
status: () => print([
|
|
29908
|
-
` ${
|
|
29971
|
+
` ${import_picocolors17.default.bold("codeam status")} ${import_picocolors17.default.dim("\u2014 show the active session, agent, and connection info")}`
|
|
29909
29972
|
]),
|
|
29910
29973
|
logout: () => print([
|
|
29911
|
-
` ${
|
|
29974
|
+
` ${import_picocolors17.default.bold("codeam logout")} ${import_picocolors17.default.dim("\u2014 remove every paired session from this machine")}`
|
|
29912
29975
|
]),
|
|
29913
29976
|
doctor: () => print([
|
|
29914
|
-
` ${
|
|
29977
|
+
` ${import_picocolors17.default.bold("codeam doctor")} ${import_picocolors17.default.dim("\u2014 run diagnostic checks for support triage")}`,
|
|
29915
29978
|
"",
|
|
29916
|
-
` ${
|
|
29917
|
-
` ${
|
|
29979
|
+
` ${import_picocolors17.default.cyan("codeam doctor")} ${import_picocolors17.default.dim("human-readable report")}`,
|
|
29980
|
+
` ${import_picocolors17.default.cyan("codeam doctor --json")} ${import_picocolors17.default.dim("machine-parseable report (single JSON document on stdout)")}`,
|
|
29918
29981
|
"",
|
|
29919
|
-
` ${
|
|
29920
|
-
` ${
|
|
29982
|
+
` ${import_picocolors17.default.dim("Output never includes tokens or credentials. Paste the diagnostic id")}`,
|
|
29983
|
+
` ${import_picocolors17.default.dim("into a bug report so support can grep the server-side logs.")}`
|
|
29921
29984
|
]),
|
|
29922
29985
|
completion: () => print([
|
|
29923
|
-
` ${
|
|
29986
|
+
` ${import_picocolors17.default.bold("codeam completion <shell>")} ${import_picocolors17.default.dim("\u2014 emit a shell-completion script for sourcing")}`,
|
|
29924
29987
|
"",
|
|
29925
|
-
` ${
|
|
29926
|
-
` ${
|
|
29927
|
-
` ${
|
|
29988
|
+
` ${import_picocolors17.default.cyan("codeam completion bash")} ${import_picocolors17.default.dim("print a bash completion function")}`,
|
|
29989
|
+
` ${import_picocolors17.default.cyan("codeam completion zsh")} ${import_picocolors17.default.dim("print a zsh completion function")}`,
|
|
29990
|
+
` ${import_picocolors17.default.cyan("codeam completion fish")} ${import_picocolors17.default.dim("print a fish completion file")}`,
|
|
29928
29991
|
"",
|
|
29929
|
-
` ${
|
|
29930
|
-
` ${
|
|
29931
|
-
` ${
|
|
29932
|
-
` ${
|
|
29992
|
+
` ${import_picocolors17.default.dim("Examples:")}`,
|
|
29993
|
+
` ${import_picocolors17.default.dim(" bash: codeam completion bash >> ~/.bashrc")}`,
|
|
29994
|
+
` ${import_picocolors17.default.dim(" zsh: codeam completion zsh >> ~/.zshrc")}`,
|
|
29995
|
+
` ${import_picocolors17.default.dim(" fish: codeam completion fish > ~/.config/fish/completions/codeam.fish")}`
|
|
29933
29996
|
])
|
|
29934
29997
|
};
|
|
29935
29998
|
function print(lines) {
|
|
@@ -29997,6 +30060,7 @@ async function main() {
|
|
|
29997
30060
|
"host": () => host(args),
|
|
29998
30061
|
"sessions": () => sessions2(args),
|
|
29999
30062
|
"status": () => status(),
|
|
30063
|
+
"invite": () => invite(),
|
|
30000
30064
|
"logout": () => logout(),
|
|
30001
30065
|
"link": () => link(args),
|
|
30002
30066
|
"doctor": () => doctor(args),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeam-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.44.0",
|
|
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",
|