frely-cli 0.23.12 → 0.23.13

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.
Files changed (45) hide show
  1. package/README.md +12 -12
  2. package/README.zh-CN.md +11 -11
  3. package/dist/agent-help.d.ts +54 -54
  4. package/dist/agent-help.js +26 -26
  5. package/dist/agent-help.js.map +1 -1
  6. package/dist/controller/client.js +1 -1
  7. package/dist/controller/client.js.map +1 -1
  8. package/dist/device/relay-client.js +4 -0
  9. package/dist/device/relay-client.js.map +1 -1
  10. package/dist/diagnostics.js +8 -8
  11. package/dist/diagnostics.js.map +1 -1
  12. package/dist/index.js +43 -27
  13. package/dist/index.js.map +1 -1
  14. package/dist/local-mcp-command.d.ts +1 -1
  15. package/dist/local-mcp-command.js +6 -6
  16. package/dist/local-mcp-command.js.map +1 -1
  17. package/dist/mcp-authorization.d.ts +1 -1
  18. package/dist/mcp-authorization.js +10 -10
  19. package/dist/mcp-authorization.js.map +1 -1
  20. package/dist/mcp-command.d.ts +8 -6
  21. package/dist/mcp-command.js +53 -43
  22. package/dist/mcp-command.js.map +1 -1
  23. package/dist/remote-lock.d.ts +10 -0
  24. package/dist/remote-lock.js +24 -0
  25. package/dist/remote-lock.js.map +1 -0
  26. package/dist/runtime/mcp-lease.js +1 -1
  27. package/dist/runtime/mcp-lease.js.map +1 -1
  28. package/dist/runtime/mcp.js +1 -1
  29. package/dist/runtime/mcp.js.map +1 -1
  30. package/dist/runtime/sandbox-proxy.js +2 -2
  31. package/dist/runtime/sandbox-proxy.js.map +1 -1
  32. package/dist/runtime/workspace-registry.js +1 -1
  33. package/dist/runtime/workspace-registry.js.map +1 -1
  34. package/dist/skill/access.js +3 -3
  35. package/dist/skill/access.js.map +1 -1
  36. package/dist/skill/entry.d.ts +1 -1
  37. package/dist/skill/entry.js +1 -1
  38. package/dist/update/auto-update.d.ts +1 -1
  39. package/dist/update/auto-update.js +1 -1
  40. package/dist/update/auto-update.js.map +1 -1
  41. package/dist/workspace-command.d.ts +1 -1
  42. package/dist/workspace-command.js +3 -3
  43. package/dist/workspace-command.js.map +1 -1
  44. package/package.json +1 -1
  45. package/skills/frely-cli/SKILL.md +1 -1
package/README.md CHANGED
@@ -20,10 +20,10 @@ It is also the command line for your Frely account:
20
20
  Ask an agent that has a shell (Claude Code, Codex, pi) to install the CLI, sign in and install the Skill:
21
21
 
22
22
  ```text
23
- Install Frely CLI and the frely Skill on this computer. On macOS or Linux run curl -fsSL https://frely.cloud/install.sh | sh; on Windows PowerShell run curl.exe -fsSLo "$env:TEMP\frely-install.ps1" https://frely.cloud/install.ps1; powershell -NoProfile -ExecutionPolicy Bypass -File "$env:TEMP\frely-install.ps1". Ask me for my email, run frely login --email <my email>, ask me for the 6-digit code from the email, then run frely login --code <code>. Then run frely skill install --host <your host: claude-code, codex, pi or generic> and read the Skill it installs. Do not run frely mcp start until I ask for it.
23
+ Install Frely CLI and the frely Skill on this computer. On macOS or Linux run curl -fsSL https://frely.cloud/install.sh | sh; on Windows PowerShell run curl.exe -fsSLo "$env:TEMP\frely-install.ps1" https://frely.cloud/install.ps1; powershell -NoProfile -ExecutionPolicy Bypass -File "$env:TEMP\frely-install.ps1". Ask me for my email, run frely login --email <my email>, ask me for the 6-digit code from the email, then run frely login --code <code>. Then run frely skill install --host <your host: claude-code, codex, pi or generic> and read the Skill it installs. Do not run frely link on until I ask for it.
24
24
  ```
25
25
 
26
- The `frely` Skill teaches the agent to use your account and to offer FrelyMCP only when a request needs it. This path does not open this computer to remote clients; `frely mcp start` does. [More](https://cli.frely.cloud/#skill)
26
+ The `frely` Skill teaches the agent to use your account and to offer FrelyMCP only when a request needs it. This path does not open this computer to remote clients; `frely link on` does. [More](https://cli.frely.cloud/#skill)
27
27
 
28
28
  ### Install it yourself
29
29
 
@@ -59,12 +59,12 @@ frely skill install --host <claude-code|codex|pi|generic>
59
59
  | Command | What it does |
60
60
  | --- | --- |
61
61
  | `frely skill install --host <host>` | Install the `frely` Skill for an agent host (`claude-code`, `codex`, `pi` or `generic`). |
62
- | `frely mcp start` | Sign in if needed, enable Device MCP, start the service and print the MCP URL. Safe to re-run. |
63
- | `frely mcp status` | Show the MCP URL, workspace, authorization expiry and service state. |
64
- | `frely mcp workspace add <path>` | Share another folder. `frely mcp workspace list` shows them all. |
65
- | `frely mcp stop` / `frely mcp start` | Pause or resume the background service. |
66
- | `frely mcp auto-update [on\|off]` | Let the background service update itself while idle (macOS/Linux, off by default). |
67
- | `frely mcp remove` | Revoke access for every client and uninstall the service. |
62
+ | `frely link on` | Sign in if needed, enable Device MCP, start the service and print the MCP URL. Safe to re-run. |
63
+ | `frely link status` | Show the MCP URL, workspace, authorization expiry and service state. |
64
+ | `frely link workspace add <path>` | Share another folder. `frely link workspace list` shows them all. |
65
+ | `frely link stop` / `frely link on` | Pause or resume the background service. |
66
+ | `frely link auto-update [on\|off]` | Let the background service update itself while idle (macOS/Linux, off by default). |
67
+ | `frely link off` | Revoke access for every client and uninstall the service. |
68
68
  | `frely doctor` | Check sign-in, installation, service and connection. `-v` for details. |
69
69
  | `frely update` | Update to the latest version in place. |
70
70
  | `frely login` / `frely logout` | Sign in or out of your Frely account. `frely login --email <you@example.com>` then `--code <code>` signs in without a browser. |
@@ -78,7 +78,7 @@ All commands and options: [command reference](https://cli.frely.cloud/docs/help/
78
78
 
79
79
  Use FrelyMCP from clients with no shell, such as web ChatGPT and Claude, or to work on another computer.
80
80
 
81
- FrelyMCP is one MCP address for your whole account: `https://mcp.frely.cloud/mcp`. Every computer where you ran `frely mcp start` appears behind it.
81
+ FrelyMCP is one MCP address for your whole account: `https://mcp.frely.cloud/mcp`. Every computer where you ran `frely link on` appears behind it.
82
82
 
83
83
  ### Connect a computer with a browser
84
84
 
@@ -104,7 +104,7 @@ curl -fsSL https://frely.cloud/start.sh | FRELY_INSTALL_TOKEN=fit_... sh
104
104
 
105
105
  It installs `frely`, signs in to your account, enables Device MCP and starts the background service. The token works once and expires after 15 minutes. On Linux, run `sudo loginctl enable-linger $USER` so the service stays online after you log out of SSH. [More](https://cli.frely.cloud/docs/help/install-on-a-server/)
106
106
 
107
- 1. On the computer to control, run `frely mcp start` (the install scripts above already do this).
107
+ 1. On the computer to control, run `frely link on` (the install scripts above already do this).
108
108
  2. Add the URL to your client as a remote MCP server with OAuth:
109
109
  - ChatGPT or Claude: add a custom connector with the URL.
110
110
  - Claude Code on another computer: `claude mcp add --transport http frely "https://mcp.frely.cloud/mcp"`, then open `/mcp` to authorize.
@@ -113,8 +113,8 @@ It installs `frely`, signs in to your account, enables Device MCP and starts the
113
113
  To check the connection, ask the client to list the top-level names in your workspace.
114
114
 
115
115
  - **What the AI can do**: `list_devices`, then `read`, `edit_file`, `process` and `web_fetch` on the computer you pick, plus your account through `frely_list` and `frely_call`. [More](https://cli.frely.cloud/docs/help/what-can-the-ai-do/)
116
- - **Local MCP servers**: loopback servers are found automatically (`frely mcp local list`); each stays hidden until you turn it on in Frely. [More](https://cli.frely.cloud/docs/help/local-mcp-servers/)
117
- - **Authorization**: access lasts 90 days by default; `frely mcp start --days 1..365` renews early. The URL never changes. [More](https://cli.frely.cloud/docs/help/authorization-expiry/)
116
+ - **Local MCP servers**: loopback servers are found automatically (`frely link local list`); each stays hidden until you turn it on in Frely. [More](https://cli.frely.cloud/docs/help/local-mcp-servers/)
117
+ - **Authorization**: access lasts 90 days by default; `frely link on --days 1..365` renews early. The URL never changes. [More](https://cli.frely.cloud/docs/help/authorization-expiry/)
118
118
 
119
119
  ## More features
120
120
 
package/README.zh-CN.md CHANGED
@@ -20,10 +20,10 @@ Frely CLI 为 Claude Code、Codex、pi 等有 Shell 的 Agent 安装 `frely` Ski
20
20
  让有 Shell 的 Agent(Claude Code、Codex、pi)安装 CLI、登录并安装 Skill:
21
21
 
22
22
  ```text
23
- 在这台电脑上安装 Frely CLI 和 frely Skill。macOS 或 Linux 运行 curl -fsSL https://frely.cloud/install.sh | sh;Windows PowerShell 运行 curl.exe -fsSLo "$env:TEMP\frely-install.ps1" https://frely.cloud/install.ps1; powershell -NoProfile -ExecutionPolicy Bypass -File "$env:TEMP\frely-install.ps1"。向我询问我的邮箱,运行 frely login --email <my email>,再向我要邮件里的 6 位验证码,然后运行 frely login --code <code>。接着运行 frely skill install --host <your host: claude-code, codex, pi or generic>,并阅读它安装的 Skill。在我要求之前,不要运行 frely mcp start。
23
+ 在这台电脑上安装 Frely CLI 和 frely Skill。macOS 或 Linux 运行 curl -fsSL https://frely.cloud/install.sh | sh;Windows PowerShell 运行 curl.exe -fsSLo "$env:TEMP\frely-install.ps1" https://frely.cloud/install.ps1; powershell -NoProfile -ExecutionPolicy Bypass -File "$env:TEMP\frely-install.ps1"。向我询问我的邮箱,运行 frely login --email <my email>,再向我要邮件里的 6 位验证码,然后运行 frely login --code <code>。接着运行 frely skill install --host <your host: claude-code, codex, pi or generic>,并阅读它安装的 Skill。在我要求之前,不要运行 frely link on。
24
24
  ```
25
25
 
26
- 安装的 `frely` Skill 会教 Agent 使用你的账号,只在需要时才建议 FrelyMCP。这种方式不会把这台电脑开放给远程客户端,`frely mcp start` 才会。[详情](https://cli.frely.cloud/zh/#skill)
26
+ 安装的 `frely` Skill 会教 Agent 使用你的账号,只在需要时才建议 FrelyMCP。这种方式不会把这台电脑开放给远程客户端,`frely link on` 才会。[详情](https://cli.frely.cloud/zh/#skill)
27
27
 
28
28
  ### 自己安装
29
29
 
@@ -59,11 +59,11 @@ frely skill install --host <claude-code|codex|pi|generic>
59
59
  | 命令 | 作用 |
60
60
  | --- | --- |
61
61
  | `frely skill install --host <host>` | 为 Agent 宿主(`claude-code`、`codex`、`pi` 或 `generic`)安装 `frely` Skill。 |
62
- | `frely mcp start` | 需要时登录,开启设备 MCP,启动服务并输出 MCP URL。可重复运行。 |
63
- | `frely mcp status` | 显示 MCP URL、工作区、授权到期时间和服务状态。 |
64
- | `frely mcp workspace add <path>` | 共享另一个文件夹。`frely mcp workspace list` 列出全部。 |
65
- | `frely mcp stop` / `frely mcp start` | 暂停或恢复后台服务。 |
66
- | `frely mcp remove` | 撤销所有客户端的访问并卸载服务。 |
62
+ | `frely link on` | 需要时登录,开启设备 MCP,启动服务并输出 MCP URL。可重复运行。 |
63
+ | `frely link status` | 显示 MCP URL、工作区、授权到期时间和服务状态。 |
64
+ | `frely link workspace add <path>` | 共享另一个文件夹。`frely link workspace list` 列出全部。 |
65
+ | `frely link stop` / `frely link on` | 暂停或恢复后台服务。 |
66
+ | `frely link off` | 撤销所有客户端的访问并卸载服务。 |
67
67
  | `frely doctor` | 检查登录、安装、服务和连接。`-v` 显示详情。 |
68
68
  | `frely update` | 原地升级到最新版本。 |
69
69
  | `frely login` / `frely logout` | 登录或退出 Frely 账号。 |
@@ -77,7 +77,7 @@ frely skill install --host <claude-code|codex|pi|generic>
77
77
 
78
78
  通过 FrelyMCP,让网页版 ChatGPT、Claude 等没有 Shell 的客户端使用 Frely,或操作另一台电脑。
79
79
 
80
- FrelyMCP 是整个账号共用的一个 MCP 地址:`https://mcp.frely.cloud/mcp`。每台运行过 `frely mcp start` 的电脑都在它后面。
80
+ FrelyMCP 是整个账号共用的一个 MCP 地址:`https://mcp.frely.cloud/mcp`。每台运行过 `frely link on` 的电脑都在它后面。
81
81
 
82
82
  ### 连接有浏览器的电脑
83
83
 
@@ -103,7 +103,7 @@ curl -fsSL https://frely.cloud/start.sh | FRELY_INSTALL_TOKEN=fit_... sh
103
103
 
104
104
  它会安装 `frely`、登录你的账号、开启设备 MCP 并启动后台服务。令牌只能用一次,15 分钟内有效。Linux 上请运行 `sudo loginctl enable-linger $USER`,退出 SSH 后服务才能保持在线。[详情](https://cli.frely.cloud/docs/help/install-on-a-server/)
105
105
 
106
- 1. 在要被控制的电脑上运行 `frely mcp start`(上面的安装脚本已经包含这一步)。
106
+ 1. 在要被控制的电脑上运行 `frely link on`(上面的安装脚本已经包含这一步)。
107
107
  2. 把 URL 作为使用 OAuth 的远程 MCP 服务加到客户端:
108
108
  - ChatGPT 或 Claude:用这个 URL 添加自定义连接器。
109
109
  - 另一台电脑上的 Claude Code:`claude mcp add --transport http frely "https://mcp.frely.cloud/mcp"`,然后打开 `/mcp` 完成授权。
@@ -112,8 +112,8 @@ curl -fsSL https://frely.cloud/start.sh | FRELY_INSTALL_TOKEN=fit_... sh
112
112
  验证连接:让客户端列出工作区的顶层文件名。
113
113
 
114
114
  - **AI 能做什么**:先 `list_devices`,再在选定的电脑上用 `read`、`edit_file`、`process`、`web_fetch`,账号操作用 `frely_list` 和 `frely_call`。[详情](https://cli.frely.cloud/docs/help/what-can-the-ai-do/)
115
- - **本机 MCP 服务**:只监听回环地址的服务会被自动发现(`frely mcp local list`),每个都要在 Frely 上逐个开启才对远程可见。[详情](https://cli.frely.cloud/docs/help/local-mcp-servers/)
116
- - **授权**:默认 90 天,`frely mcp start --days 1..365` 可提前续期,URL 永远不变。[详情](https://cli.frely.cloud/docs/help/authorization-expiry/)
115
+ - **本机 MCP 服务**:只监听回环地址的服务会被自动发现(`frely link local list`),每个都要在 Frely 上逐个开启才对远程可见。[详情](https://cli.frely.cloud/docs/help/local-mcp-servers/)
116
+ - **授权**:默认 90 天,`frely link on --days 1..365` 可提前续期,URL 永远不变。[详情](https://cli.frely.cloud/docs/help/authorization-expiry/)
117
117
 
118
118
  ## 更多功能
119
119
 
@@ -35,71 +35,71 @@ export declare const COMMANDS: readonly [{
35
35
  readonly effect: "read";
36
36
  readonly purpose: "Read this installed CLI's current Agent instructions.";
37
37
  }, {
38
- readonly id: "mcp.start";
39
- readonly usage: "frely mcp start [--workspace <path>] [--days 1..365] [--no-browser] [--json]";
38
+ readonly id: "link.on";
39
+ readonly usage: "frely link on [--workspace <path>] [--days 1..365] [--no-browser] [--json]";
40
40
  readonly auth: "account-and-browser-if-needed";
41
41
  readonly effect: "authorization-if-needed";
42
- readonly purpose: "Enable, renew, start and read device MCP. Without a stored login it first signs in through the browser (the page also registers new accounts; --no-browser only prints the sign-in URL and device code, which can be approved on any device signed in to Frely); that one approval also enables device MCP, so no second approval link is needed. Unconfigured: request browser approval for --workspace (default: the home directory), install and start the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise start the service if it is not running. With FRELY_INSTALL_TOKEN (the one-time install command from list_devices or the Frely console), it signs in to that account (replacing any stored login) and preapproves device MCP with no browser or prompt. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details. `frely mcp url` is a deprecated alias.";
42
+ readonly purpose: "Enable, renew, start and read device MCP. Without a stored login it first signs in through the browser (the page also registers new accounts; --no-browser only prints the sign-in URL and device code, which can be approved on any device signed in to Frely); that one approval also enables device MCP, so no second approval link is needed. Unconfigured: request browser approval for --workspace (default: the home directory), install and start the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise start the service if it is not running. With FRELY_INSTALL_TOKEN (the one-time install command from list_devices or the Frely console), it signs in to that account (replacing any stored login) and preapproves device MCP with no browser or prompt. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details.";
43
43
  }, {
44
- readonly id: "mcp.workspace.list";
45
- readonly usage: "frely mcp workspace list [--json]";
44
+ readonly id: "link.workspace.list";
45
+ readonly usage: "frely link workspace list [--json]";
46
46
  readonly auth: "mcp";
47
47
  readonly effect: "read";
48
48
  readonly purpose: "List workspace directories for this device; the primary is marked.";
49
49
  }, {
50
- readonly id: "mcp.workspace.add";
51
- readonly usage: "frely mcp workspace add [path]";
50
+ readonly id: "link.workspace.add";
51
+ readonly usage: "frely link workspace add [path]";
52
52
  readonly auth: "mcp";
53
53
  readonly effect: "local-write";
54
54
  readonly purpose: "Add an additional workspace directory for this device (default: current directory); takes effect on the running service without restart.";
55
55
  }, {
56
- readonly id: "mcp.workspace.remove";
57
- readonly usage: "frely mcp workspace remove <path>";
56
+ readonly id: "link.workspace.remove";
57
+ readonly usage: "frely link workspace remove <path>";
58
58
  readonly auth: "mcp";
59
59
  readonly effect: "local-write";
60
60
  readonly purpose: "Remove an additional workspace directory (the primary cannot be removed).";
61
61
  }, {
62
- readonly id: "mcp.local.list";
63
- readonly usage: "frely mcp local list [--json]";
62
+ readonly id: "link.local.list";
63
+ readonly usage: "frely link local list [--json]";
64
64
  readonly auth: "none";
65
65
  readonly effect: "read";
66
66
  readonly purpose: "List MCP servers on this device that remote clients could use: loopback HTTP servers found automatically plus ones added by hand. Every server is off for remote clients until the owner turns it on in the web console.";
67
67
  }, {
68
- readonly id: "mcp.local.add";
69
- readonly usage: "frely mcp local add <name> --url <http://127.0.0.1:port/path> [--header K=V] | frely mcp local add <name> [--env K=V] -- <command> [args...]";
68
+ readonly id: "link.local.add";
69
+ readonly usage: "frely link local add <name> --url <http://127.0.0.1:port/path> [--header K=V] | frely link local add <name> [--env K=V] -- <command> [args...]";
70
70
  readonly auth: "none";
71
71
  readonly effect: "local-write";
72
72
  readonly purpose: "Add a local MCP server by loopback URL or by the command that starts it (stdio). It is connected once to check it works; it stays off for remote clients until the owner turns it on in the web console.";
73
73
  }, {
74
- readonly id: "mcp.local.remove";
75
- readonly usage: "frely mcp local remove <name>";
74
+ readonly id: "link.local.remove";
75
+ readonly usage: "frely link local remove <name>";
76
76
  readonly auth: "none";
77
77
  readonly effect: "local-write";
78
78
  readonly purpose: "Remove a manually added local MCP server.";
79
79
  }, {
80
- readonly id: "mcp.status";
81
- readonly usage: "frely mcp status [--json]";
80
+ readonly id: "link.status";
81
+ readonly usage: "frely link status [--json]";
82
82
  readonly auth: "none";
83
83
  readonly effect: "read";
84
- readonly purpose: "Show whether device MCP is configured, its URL, workspace, authorization expiry and background service state. Makes no network request.";
84
+ readonly purpose: "Show the remote-control state (not enabled by default / on / off and locked here), its URL, workspace, authorization expiry and background service state. Makes no network request.";
85
85
  }, {
86
- readonly id: "mcp.stop";
87
- readonly usage: "frely mcp stop";
86
+ readonly id: "link.stop";
87
+ readonly usage: "frely link stop";
88
88
  readonly auth: "none";
89
89
  readonly effect: "local-service";
90
- readonly purpose: "Stop the local MCP background service without revoking authorization; frely mcp start resumes it. Supported updates restore running services without this command.";
90
+ readonly purpose: "Stop the local MCP background service without revoking authorization; frely link on resumes it. Supported updates restore running services without this command.";
91
91
  }, {
92
- readonly id: "mcp.auto-update";
93
- readonly usage: "frely mcp auto-update [on|off]";
92
+ readonly id: "link.auto-update";
93
+ readonly usage: "frely link auto-update [on|off]";
94
94
  readonly auth: "none";
95
95
  readonly effect: "local-write";
96
96
  readonly purpose: "Show or set whether this device's background service installs new stable versions of its own installation while idle and restarts itself. Off by default; macOS and Linux only.";
97
97
  }, {
98
- readonly id: "mcp.remove";
99
- readonly usage: "frely mcp remove";
98
+ readonly id: "link.off";
99
+ readonly usage: "frely link off";
100
100
  readonly auth: "account";
101
101
  readonly effect: "remote-write";
102
- readonly purpose: "Revoke device MCP for every connected client and uninstall the background service (kept running provider-only when local Providers exist).";
102
+ readonly purpose: "Turn remote control off and lock it on this computer: revoke the authorization for every connected client, uninstall the background service (kept running provider-only when local Providers exist) and write a local lock. The web page cannot turn it on again; only frely link on here can.";
103
103
  }, {
104
104
  readonly id: "mcp.stdio";
105
105
  readonly usage: "frely mcp stdio [--workspace <path>]";
@@ -480,71 +480,71 @@ export declare function agentHelp(): {
480
480
  readonly effect: "read";
481
481
  readonly purpose: "Read this installed CLI's current Agent instructions.";
482
482
  }, {
483
- readonly id: "mcp.start";
484
- readonly usage: "frely mcp start [--workspace <path>] [--days 1..365] [--no-browser] [--json]";
483
+ readonly id: "link.on";
484
+ readonly usage: "frely link on [--workspace <path>] [--days 1..365] [--no-browser] [--json]";
485
485
  readonly auth: "account-and-browser-if-needed";
486
486
  readonly effect: "authorization-if-needed";
487
- readonly purpose: "Enable, renew, start and read device MCP. Without a stored login it first signs in through the browser (the page also registers new accounts; --no-browser only prints the sign-in URL and device code, which can be approved on any device signed in to Frely); that one approval also enables device MCP, so no second approval link is needed. Unconfigured: request browser approval for --workspace (default: the home directory), install and start the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise start the service if it is not running. With FRELY_INSTALL_TOKEN (the one-time install command from list_devices or the Frely console), it signs in to that account (replacing any stored login) and preapproves device MCP with no browser or prompt. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details. `frely mcp url` is a deprecated alias.";
487
+ readonly purpose: "Enable, renew, start and read device MCP. Without a stored login it first signs in through the browser (the page also registers new accounts; --no-browser only prints the sign-in URL and device code, which can be approved on any device signed in to Frely); that one approval also enables device MCP, so no second approval link is needed. Unconfigured: request browser approval for --workspace (default: the home directory), install and start the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise start the service if it is not running. With FRELY_INSTALL_TOKEN (the one-time install command from list_devices or the Frely console), it signs in to that account (replacing any stored login) and preapproves device MCP with no browser or prompt. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details.";
488
488
  }, {
489
- readonly id: "mcp.workspace.list";
490
- readonly usage: "frely mcp workspace list [--json]";
489
+ readonly id: "link.workspace.list";
490
+ readonly usage: "frely link workspace list [--json]";
491
491
  readonly auth: "mcp";
492
492
  readonly effect: "read";
493
493
  readonly purpose: "List workspace directories for this device; the primary is marked.";
494
494
  }, {
495
- readonly id: "mcp.workspace.add";
496
- readonly usage: "frely mcp workspace add [path]";
495
+ readonly id: "link.workspace.add";
496
+ readonly usage: "frely link workspace add [path]";
497
497
  readonly auth: "mcp";
498
498
  readonly effect: "local-write";
499
499
  readonly purpose: "Add an additional workspace directory for this device (default: current directory); takes effect on the running service without restart.";
500
500
  }, {
501
- readonly id: "mcp.workspace.remove";
502
- readonly usage: "frely mcp workspace remove <path>";
501
+ readonly id: "link.workspace.remove";
502
+ readonly usage: "frely link workspace remove <path>";
503
503
  readonly auth: "mcp";
504
504
  readonly effect: "local-write";
505
505
  readonly purpose: "Remove an additional workspace directory (the primary cannot be removed).";
506
506
  }, {
507
- readonly id: "mcp.local.list";
508
- readonly usage: "frely mcp local list [--json]";
507
+ readonly id: "link.local.list";
508
+ readonly usage: "frely link local list [--json]";
509
509
  readonly auth: "none";
510
510
  readonly effect: "read";
511
511
  readonly purpose: "List MCP servers on this device that remote clients could use: loopback HTTP servers found automatically plus ones added by hand. Every server is off for remote clients until the owner turns it on in the web console.";
512
512
  }, {
513
- readonly id: "mcp.local.add";
514
- readonly usage: "frely mcp local add <name> --url <http://127.0.0.1:port/path> [--header K=V] | frely mcp local add <name> [--env K=V] -- <command> [args...]";
513
+ readonly id: "link.local.add";
514
+ readonly usage: "frely link local add <name> --url <http://127.0.0.1:port/path> [--header K=V] | frely link local add <name> [--env K=V] -- <command> [args...]";
515
515
  readonly auth: "none";
516
516
  readonly effect: "local-write";
517
517
  readonly purpose: "Add a local MCP server by loopback URL or by the command that starts it (stdio). It is connected once to check it works; it stays off for remote clients until the owner turns it on in the web console.";
518
518
  }, {
519
- readonly id: "mcp.local.remove";
520
- readonly usage: "frely mcp local remove <name>";
519
+ readonly id: "link.local.remove";
520
+ readonly usage: "frely link local remove <name>";
521
521
  readonly auth: "none";
522
522
  readonly effect: "local-write";
523
523
  readonly purpose: "Remove a manually added local MCP server.";
524
524
  }, {
525
- readonly id: "mcp.status";
526
- readonly usage: "frely mcp status [--json]";
525
+ readonly id: "link.status";
526
+ readonly usage: "frely link status [--json]";
527
527
  readonly auth: "none";
528
528
  readonly effect: "read";
529
- readonly purpose: "Show whether device MCP is configured, its URL, workspace, authorization expiry and background service state. Makes no network request.";
529
+ readonly purpose: "Show the remote-control state (not enabled by default / on / off and locked here), its URL, workspace, authorization expiry and background service state. Makes no network request.";
530
530
  }, {
531
- readonly id: "mcp.stop";
532
- readonly usage: "frely mcp stop";
531
+ readonly id: "link.stop";
532
+ readonly usage: "frely link stop";
533
533
  readonly auth: "none";
534
534
  readonly effect: "local-service";
535
- readonly purpose: "Stop the local MCP background service without revoking authorization; frely mcp start resumes it. Supported updates restore running services without this command.";
535
+ readonly purpose: "Stop the local MCP background service without revoking authorization; frely link on resumes it. Supported updates restore running services without this command.";
536
536
  }, {
537
- readonly id: "mcp.auto-update";
538
- readonly usage: "frely mcp auto-update [on|off]";
537
+ readonly id: "link.auto-update";
538
+ readonly usage: "frely link auto-update [on|off]";
539
539
  readonly auth: "none";
540
540
  readonly effect: "local-write";
541
541
  readonly purpose: "Show or set whether this device's background service installs new stable versions of its own installation while idle and restarts itself. Off by default; macOS and Linux only.";
542
542
  }, {
543
- readonly id: "mcp.remove";
544
- readonly usage: "frely mcp remove";
543
+ readonly id: "link.off";
544
+ readonly usage: "frely link off";
545
545
  readonly auth: "account";
546
546
  readonly effect: "remote-write";
547
- readonly purpose: "Revoke device MCP for every connected client and uninstall the background service (kept running provider-only when local Providers exist).";
547
+ readonly purpose: "Turn remote control off and lock it on this computer: revoke the authorization for every connected client, uninstall the background service (kept running provider-only when local Providers exist) and write a local lock. The web page cannot turn it on again; only frely link on here can.";
548
548
  }, {
549
549
  readonly id: "mcp.stdio";
550
550
  readonly usage: "frely mcp stdio [--workspace <path>]";
@@ -885,8 +885,8 @@ export declare function agentHelp(): {
885
885
  };
886
886
  export declare function cliUsage(): string;
887
887
  /**
888
- * A command group without a direct action (`frely mcp workspace`, `frely agent`,
888
+ * A command group without a direct action (`frely link workspace`, `frely agent`,
889
889
  * ...) prints the subcommands under it instead of running one.
890
890
  */
891
891
  export declare function subcommandUsage(group: string): string;
892
- export declare function mcpUsage(): string;
892
+ export declare function linkUsage(): string;
@@ -6,17 +6,17 @@ export const COMMANDS = [
6
6
  { id: "doctor", usage: "frely doctor [-v] [--json]", auth: "optional-account", effect: "diagnostic", purpose: "Show the signed-in account, installation, available updates, MCP and connection status; -v verifies the account online and runs detailed diagnostics." },
7
7
  { id: "update", usage: "frely update", auth: "none", effect: "local-write", purpose: "Update the current installation to the latest stable release. Windows prints a manual command; doctor checks versions." },
8
8
  { id: "help", usage: "frely help --agent --json", auth: "none", effect: "read", purpose: "Read this installed CLI's current Agent instructions." },
9
- { id: "mcp.start", usage: "frely mcp start [--workspace <path>] [--days 1..365] [--no-browser] [--json]", auth: "account-and-browser-if-needed", effect: "authorization-if-needed", purpose: "Enable, renew, start and read device MCP. Without a stored login it first signs in through the browser (the page also registers new accounts; --no-browser only prints the sign-in URL and device code, which can be approved on any device signed in to Frely); that one approval also enables device MCP, so no second approval link is needed. Unconfigured: request browser approval for --workspace (default: the home directory), install and start the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise start the service if it is not running. With FRELY_INSTALL_TOKEN (the one-time install command from list_devices or the Frely console), it signs in to that account (replacing any stored login) and preapproves device MCP with no browser or prompt. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details. `frely mcp url` is a deprecated alias." },
10
- { id: "mcp.workspace.list", usage: "frely mcp workspace list [--json]", auth: "mcp", effect: "read", purpose: "List workspace directories for this device; the primary is marked." },
11
- { id: "mcp.workspace.add", usage: "frely mcp workspace add [path]", auth: "mcp", effect: "local-write", purpose: "Add an additional workspace directory for this device (default: current directory); takes effect on the running service without restart." },
12
- { id: "mcp.workspace.remove", usage: "frely mcp workspace remove <path>", auth: "mcp", effect: "local-write", purpose: "Remove an additional workspace directory (the primary cannot be removed)." },
13
- { id: "mcp.local.list", usage: "frely mcp local list [--json]", auth: "none", effect: "read", purpose: "List MCP servers on this device that remote clients could use: loopback HTTP servers found automatically plus ones added by hand. Every server is off for remote clients until the owner turns it on in the web console." },
14
- { id: "mcp.local.add", usage: "frely mcp local add <name> --url <http://127.0.0.1:port/path> [--header K=V] | frely mcp local add <name> [--env K=V] -- <command> [args...]", auth: "none", effect: "local-write", purpose: "Add a local MCP server by loopback URL or by the command that starts it (stdio). It is connected once to check it works; it stays off for remote clients until the owner turns it on in the web console." },
15
- { id: "mcp.local.remove", usage: "frely mcp local remove <name>", auth: "none", effect: "local-write", purpose: "Remove a manually added local MCP server." },
16
- { id: "mcp.status", usage: "frely mcp status [--json]", auth: "none", effect: "read", purpose: "Show whether device MCP is configured, its URL, workspace, authorization expiry and background service state. Makes no network request." },
17
- { id: "mcp.stop", usage: "frely mcp stop", auth: "none", effect: "local-service", purpose: "Stop the local MCP background service without revoking authorization; frely mcp start resumes it. Supported updates restore running services without this command." },
18
- { id: "mcp.auto-update", usage: "frely mcp auto-update [on|off]", auth: "none", effect: "local-write", purpose: "Show or set whether this device's background service installs new stable versions of its own installation while idle and restarts itself. Off by default; macOS and Linux only." },
19
- { id: "mcp.remove", usage: "frely mcp remove", auth: "account", effect: "remote-write", purpose: "Revoke device MCP for every connected client and uninstall the background service (kept running provider-only when local Providers exist)." },
9
+ { id: "link.on", usage: "frely link on [--workspace <path>] [--days 1..365] [--no-browser] [--json]", auth: "account-and-browser-if-needed", effect: "authorization-if-needed", purpose: "Enable, renew, start and read device MCP. Without a stored login it first signs in through the browser (the page also registers new accounts; --no-browser only prints the sign-in URL and device code, which can be approved on any device signed in to Frely); that one approval also enables device MCP, so no second approval link is needed. Unconfigured: request browser approval for --workspace (default: the home directory), install and start the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise start the service if it is not running. With FRELY_INSTALL_TOKEN (the one-time install command from list_devices or the Frely console), it signs in to that account (replacing any stored login) and preapproves device MCP with no browser or prompt. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details." },
10
+ { id: "link.workspace.list", usage: "frely link workspace list [--json]", auth: "mcp", effect: "read", purpose: "List workspace directories for this device; the primary is marked." },
11
+ { id: "link.workspace.add", usage: "frely link workspace add [path]", auth: "mcp", effect: "local-write", purpose: "Add an additional workspace directory for this device (default: current directory); takes effect on the running service without restart." },
12
+ { id: "link.workspace.remove", usage: "frely link workspace remove <path>", auth: "mcp", effect: "local-write", purpose: "Remove an additional workspace directory (the primary cannot be removed)." },
13
+ { id: "link.local.list", usage: "frely link local list [--json]", auth: "none", effect: "read", purpose: "List MCP servers on this device that remote clients could use: loopback HTTP servers found automatically plus ones added by hand. Every server is off for remote clients until the owner turns it on in the web console." },
14
+ { id: "link.local.add", usage: "frely link local add <name> --url <http://127.0.0.1:port/path> [--header K=V] | frely link local add <name> [--env K=V] -- <command> [args...]", auth: "none", effect: "local-write", purpose: "Add a local MCP server by loopback URL or by the command that starts it (stdio). It is connected once to check it works; it stays off for remote clients until the owner turns it on in the web console." },
15
+ { id: "link.local.remove", usage: "frely link local remove <name>", auth: "none", effect: "local-write", purpose: "Remove a manually added local MCP server." },
16
+ { id: "link.status", usage: "frely link status [--json]", auth: "none", effect: "read", purpose: "Show the remote-control state (not enabled by default / on / off and locked here), its URL, workspace, authorization expiry and background service state. Makes no network request." },
17
+ { id: "link.stop", usage: "frely link stop", auth: "none", effect: "local-service", purpose: "Stop the local MCP background service without revoking authorization; frely link on resumes it. Supported updates restore running services without this command." },
18
+ { id: "link.auto-update", usage: "frely link auto-update [on|off]", auth: "none", effect: "local-write", purpose: "Show or set whether this device's background service installs new stable versions of its own installation while idle and restarts itself. Off by default; macOS and Linux only." },
19
+ { id: "link.off", usage: "frely link off", auth: "account", effect: "remote-write", purpose: "Turn remote control off and lock it on this computer: revoke the authorization for every connected client, uninstall the background service (kept running provider-only when local Providers exist) and write a local lock. The web page cannot turn it on again; only frely link on here can." },
20
20
  { id: "mcp.stdio", usage: "frely mcp stdio [--workspace <path>]", auth: "mcp", effect: "local-execution", purpose: "Serve authorized local tools over stdio for a local MCP client." },
21
21
  { id: "mcp.serve", usage: "frely mcp serve [--workspace <path>]", auth: "account-and-mcp", effect: "local-execution", purpose: "Foreground Device Relay client; the background service runs this. Not needed for normal use." },
22
22
  { id: "skill.install", usage: "frely skill install [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <project>] [--json]", auth: "none", effect: "local-write", purpose: "Install the `frely` Skill into the host Skill folder. It teaches the agent to sign in, use `frely api`, install marketplace items and Agents, and offer FrelyMCP only when a request needs it. Running it again refreshes the Skill; an edited copy is left alone. Does not enable device MCP." },
@@ -89,9 +89,9 @@ export function agentHelp() {
89
89
  "A Key amount limit is a spending cap. It reserves no funds and remains subject to its owner's available Plan allowance and Credit.",
90
90
  "Budget sources are independent constraints. Do not sum their remaining amounts or describe them as a Key balance.",
91
91
  "Installing a remote Agent Skill does not replace the host's current model provider.",
92
- "Device MCP exposes this computer to remote HTTP MCP clients with OAuth. Commands execute on the device, not on the calling computer.",
93
- "Use frely mcp start to enable device MCP, start it, or read its address; frely mcp status and frely doctor [-v] show status and diagnostics.",
94
- "If MCP is unconfigured or expired, frely mcp start requests browser approval; otherwise it only ensures the service is running and prints the URL. Existing workspaces stay unchanged.",
92
+ "Remote control lets other clients (HTTP MCP clients with OAuth, frely run from another computer, hosted Agents) use this computer. It is not enabled after install; the owner turns it on from the web page after two-step verification, or with frely link on. Commands execute on the device, not on the calling computer.",
93
+ "Use frely link on to enable remote control, start it, or read its MCP address; frely link off turns it off and locks it on this computer (only frely link on there lifts the lock); frely link status and frely doctor [-v] show status and diagnostics.",
94
+ "If MCP is unconfigured or expired, frely link on requests browser approval; otherwise it only ensures the service is running and prints the URL. Existing workspaces stay unchanged.",
95
95
  "Remote clients of one device share its workspace and managed processes. Shell uses the device OS account; it is not a workspace sandbox.",
96
96
  ],
97
97
  commands: COMMANDS,
@@ -100,7 +100,7 @@ export function agentHelp() {
100
100
  const GROUPS = [
101
101
  { title: "Control your devices", ids: ["devices", "run", "ps", "logs", "kill", "read", "ls", "grep", "edit", "permission", "tools", "call", "controller"] },
102
102
  { title: "Account", ids: ["login", "logout", "uninstall", "doctor", "update"] },
103
- { title: "Device MCP", ids: ["mcp.start", "mcp.workspace", "mcp.local", "mcp.lifecycle"] },
103
+ { title: "Let others control this computer", ids: ["link.on", "link.workspace", "link.local", "link.lifecycle"] },
104
104
  { title: "Agents", ids: ["agent.install", "agent.run", "agent.status", "agent.remove", "agent.local"] },
105
105
  { title: "Skills", ids: ["skill.install"] },
106
106
  { title: "Marketplace items", ids: ["item.install", "item.update", "item.run", "item.trust"] },
@@ -132,10 +132,10 @@ const SHORT_USAGE = {
132
132
  uninstall: "frely uninstall [--yes]",
133
133
  doctor: "frely doctor [-v] [--json]",
134
134
  update: "frely update",
135
- "mcp.start": "frely mcp start [--workspace <path>] [--days 1..365] [--no-browser] [--json]",
136
- "mcp.workspace": "frely mcp workspace list|add <path>|remove <path>",
137
- "mcp.local": "frely mcp local list|add <name> (--url <address>|-- <command>)|remove <name>",
138
- "mcp.lifecycle": "frely mcp status|stop|remove",
135
+ "link.on": "frely link on [--workspace <path>] [--days 1..365] [--no-browser] [--json]",
136
+ "link.workspace": "frely link workspace list|add <path>|remove <path>",
137
+ "link.local": "frely link local list|add <name> (--url <address>|-- <command>)|remove <name>",
138
+ "link.lifecycle": "frely link status|stop|remove",
139
139
  "skill.install": "frely skill install [--host <host>]",
140
140
  "item.install": "frely item install <username/name[@version]> [--host <host>]",
141
141
  "item.update": "frely item update [<folder>]",
@@ -179,7 +179,7 @@ export function cliUsage() {
179
179
  return lines.join("");
180
180
  }
181
181
  /**
182
- * A command group without a direct action (`frely mcp workspace`, `frely agent`,
182
+ * A command group without a direct action (`frely link workspace`, `frely agent`,
183
183
  * ...) prints the subcommands under it instead of running one.
184
184
  */
185
185
  export function subcommandUsage(group) {
@@ -188,12 +188,12 @@ export function subcommandUsage(group) {
188
188
  .map((command) => ` ${SHORT_USAGE[command.id] ?? command.usage}\n`);
189
189
  return `Usage:\n${lines.join("")}`;
190
190
  }
191
- export function mcpUsage() {
192
- return "Device MCP — use this computer from a remote MCP client.\n\nUsage:\n"
193
- + ["mcp.start", "mcp.workspace", "mcp.local", "mcp.lifecycle"].map((id) => " " + SHORT_USAGE[id] + "\n").join("")
194
- + "\nStatus: frely mcp status [--json]; diagnostics: frely doctor [-v] [--json]\n\n"
195
- + "Run frely mcp start on the computer to control. It asks for browser approval the first time (the home directory, or --workspace) and when authorization has expired, installs and starts the background service, and prints the MCP URL. Add that URL to ChatGPT, Claude Code on another computer, or another HTTP MCP client, then authorize with OAuth.\n"
191
+ export function linkUsage() {
192
+ return "Remote control — let others control this computer (MCP clients, frely run from another computer, hosted Agents).\n\nUsage:\n"
193
+ + ["link.on", "link.workspace", "link.local", "link.lifecycle"].map((id) => " " + SHORT_USAGE[id] + "\n").join("")
194
+ + "\nStatus: frely link status [--json]; diagnostics: frely doctor [-v] [--json]\n\n"
195
+ + "Run frely link on on the computer to control. It asks for browser approval the first time (the home directory, or --workspace) and when authorization has expired, installs and starts the background service, and prints the MCP URL. Add that URL to ChatGPT, Claude Code on another computer, or another HTTP MCP client, then authorize with OAuth.\n"
196
196
  + "Prompts go to stderr; stdout contains only the URL or JSON. --days 1..365 renews now; the URL stays the same.\n"
197
- + "frely mcp stop only stops the service; frely mcp remove revokes access for every client. Clients share the device workspace and managed processes. Shell runs under the device OS account.\n";
197
+ + "frely link stop only stops the service; frely link off revokes access for every client. Clients share the device workspace and managed processes. Shell runs under the device OS account.\n";
198
198
  }
199
199
  //# sourceMappingURL=agent-help.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-help.js","sourceRoot":"","sources":["../src/agent-help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-help.js","sourceRoot":"","sources":["../src/agent-help.ts"],"names":[],"mappings":"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"}
@@ -114,7 +114,7 @@ export function outcomeOf(result) {
114
114
  return { exitCode: EXIT.approval, note: `Approval needed. Approve here: ${error.url}` };
115
115
  }
116
116
  const text = resultText(result);
117
- if (/frely mcp start|device is offline|Offline:/u.test(text))
117
+ if (/frely link on|device is offline|Offline:/u.test(text))
118
118
  return { exitCode: EXIT.offline };
119
119
  if (error && typeof error.code === "string" && /limit|quota|insufficient/u.test(error.code))
120
120
  return { exitCode: EXIT.limit };
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/controller/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/controller/client.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { remoteLocked } from "../remote-lock.js";
1
2
  import { watchServiceInstallation } from "../update/service-refresh.js";
2
3
  import { readEffectiveAutoUpdate, setRemoteAutoUpdate, watchAutoUpdate } from "../update/auto-update.js";
3
4
  import { MaintenanceGate, serveMaintenance } from "../update/maintenance.js";
@@ -317,6 +318,9 @@ async function executeMcpRequest(request, session, lease) {
317
318
  if (!session || !lease || request.authorizationId !== lease.authorizationId)
318
319
  throw new Error("MCP execution authorization is missing or mismatched.");
319
320
  lease.assert();
321
+ // The local lock of the three-state remote link is checked on every request, so `frely link off` takes effect at once.
322
+ if (await remoteLocked())
323
+ throw new Error("Remote control is turned off on this computer. Run `frely link on` on it to allow it again.");
320
324
  // The owner's Web switch rides on every authorized MCP frame; absent means off.
321
325
  await setRemoteAutoUpdate(request.autoUpdate === true);
322
326
  return session.execute(request.payload, request.id, request.toolsets, request.localMcps);