frely-cli 0.23.0 → 0.23.2

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 (62) hide show
  1. package/README.md +31 -137
  2. package/README.zh-CN.md +34 -135
  3. package/dist/agent-help.d.ts +48 -0
  4. package/dist/agent-help.js +7 -0
  5. package/dist/agent-help.js.map +1 -1
  6. package/dist/cloud.d.ts +28 -2
  7. package/dist/cloud.js +32 -3
  8. package/dist/cloud.js.map +1 -1
  9. package/dist/computer/command.js +9 -2
  10. package/dist/computer/command.js.map +1 -1
  11. package/dist/computer/ocu.d.ts +7 -0
  12. package/dist/computer/ocu.js +16 -0
  13. package/dist/computer/ocu.js.map +1 -1
  14. package/dist/computer/server.js +2 -2
  15. package/dist/computer/server.js.map +1 -1
  16. package/dist/computer/toolset.d.ts +9 -1
  17. package/dist/computer/toolset.js +19 -1
  18. package/dist/computer/toolset.js.map +1 -1
  19. package/dist/device/protocol.d.ts +2 -0
  20. package/dist/device/protocol.js +3 -1
  21. package/dist/device/protocol.js.map +1 -1
  22. package/dist/device/relay-client.js +8 -13
  23. package/dist/device/relay-client.js.map +1 -1
  24. package/dist/device/stream-coalesce.d.ts +18 -0
  25. package/dist/device/stream-coalesce.js +94 -0
  26. package/dist/device/stream-coalesce.js.map +1 -0
  27. package/dist/index.js +34 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/mcp-command.js +6 -1
  30. package/dist/mcp-command.js.map +1 -1
  31. package/dist/runtime/git-config-guard.d.ts +51 -0
  32. package/dist/runtime/git-config-guard.js +257 -0
  33. package/dist/runtime/git-config-guard.js.map +1 -0
  34. package/dist/runtime/mcp.d.ts +2 -2
  35. package/dist/runtime/mcp.js +2 -2
  36. package/dist/runtime/mcp.js.map +1 -1
  37. package/dist/runtime/process-manager.js +3 -0
  38. package/dist/runtime/process-manager.js.map +1 -1
  39. package/dist/runtime/process-tree.d.ts +7 -1
  40. package/dist/runtime/process-tree.js +20 -1
  41. package/dist/runtime/process-tree.js.map +1 -1
  42. package/dist/runtime/sandbox-proxy.d.ts +39 -0
  43. package/dist/runtime/sandbox-proxy.js +134 -0
  44. package/dist/runtime/sandbox-proxy.js.map +1 -0
  45. package/dist/runtime/sandbox.d.ts +48 -4
  46. package/dist/runtime/sandbox.js +165 -17
  47. package/dist/runtime/sandbox.js.map +1 -1
  48. package/dist/runtime/ssh-proxy.d.ts +1 -0
  49. package/dist/runtime/ssh-proxy.js +12 -3
  50. package/dist/runtime/ssh-proxy.js.map +1 -1
  51. package/dist/runtime/tunnel.d.ts +30 -0
  52. package/dist/runtime/tunnel.js +56 -0
  53. package/dist/runtime/tunnel.js.map +1 -0
  54. package/dist/runtime/workspace.js +25 -6
  55. package/dist/runtime/workspace.js.map +1 -1
  56. package/dist/update/auto-update.d.ts +52 -0
  57. package/dist/update/auto-update.js +133 -0
  58. package/dist/update/auto-update.js.map +1 -0
  59. package/dist/update/update.d.ts +2 -2
  60. package/dist/update/update.js +2 -2
  61. package/dist/update/update.js.map +1 -1
  62. package/package.json +1 -1
package/README.md CHANGED
@@ -1,8 +1,10 @@
1
- # frely-cli
1
+ # Frely CLI
2
2
 
3
- [English](README.md) · [简体中文](README.zh-CN.md)
3
+ [![Frely CLI: let agents access your device from any location](site/assets/og.png)](https://cli.frely.cloud/)
4
4
 
5
- `frely-cli` turns a computer you choose into a device that AI agents can work on from anywhere. ChatGPT, Claude, Codex and other MCP clients connect through **FrelyMCP** and use the files, shell commands and processes in the folders you allow. The computer connects out to Frely, so you open no ports.
5
+ [Website](https://cli.frely.cloud/) · [Docs](https://cli.frely.cloud/docs/) · [Frely](https://frely.cloud/) · [English](README.md) · [简体中文](README.zh-CN.md)
6
+
7
+ Frely CLI (`frely-cli`) connects a computer you choose to **FrelyMCP**, so ChatGPT, Claude, Codex and other MCP clients can work on it from anywhere. They use the files, shell commands and processes in the folders you allow. The computer connects out to Frely, so you open no ports.
6
8
 
7
9
  It is also the command line for your Frely account:
8
10
 
@@ -15,20 +17,13 @@ It is also the command line for your Frely account:
15
17
 
16
18
  ### A server, with a Frely account (no browser)
17
19
 
18
- Get a one-time install command and paste it on the server. It installs `frely`, signs in to your account, enables Device MCP and starts the background service. Nothing opens in a browser and nothing asks a question.
19
-
20
- Get the command in either place:
21
-
22
- - On the Frely website: **My Devices → Add a computer → Create install command**.
23
- - In ChatGPT or Claude connected to FrelyMCP: ask it to add a computer. `list_devices` returns the command.
24
-
25
- It looks like this:
20
+ Get a one-time install command on the Frely website (**My Devices → Add a computer → Create install command**), or ask ChatGPT or Claude connected to FrelyMCP to add a computer. Paste it on the server:
26
21
 
27
22
  ```sh
28
23
  curl -fsSL https://frely.cloud/start.sh | FRELY_INSTALL_TOKEN=fit_... sh
29
24
  ```
30
25
 
31
- The token works once and expires after 15 minutes. It is not saved on the computer. If the computer already has Frely installed or signed in, the command updates it and switches the sign-in to your account. On Linux, run `sudo loginctl enable-linger $USER` so the service stays online after you log out of SSH.
26
+ 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/)
32
27
 
33
28
  ### A computer with a browser
34
29
 
@@ -42,23 +37,21 @@ curl -fsSL https://frely.cloud/start.sh | sh
42
37
  curl.exe -fsSLo "$env:TEMP\frely-start.ps1" https://frely.cloud/start.ps1; powershell -NoProfile -ExecutionPolicy Bypass -File "$env:TEMP\frely-start.ps1"
43
38
  ```
44
39
 
45
- The script installs the latest `frely`, then runs `frely mcp start`: it opens the browser to sign in (new accounts can register on the same page), asks you to approve this device and prints your MCP URL. Run it again any time to update; it restarts the background service on the new version.
46
-
47
- The workspace is your home directory by default (credential and shell start-up files stay protected). Set `FRELY_WORKSPACE=/path` to share another folder, and `FRELY_INSTALL_DIR` to install somewhere other than `~/.local/bin`.
40
+ The script installs the latest `frely`, opens the browser to sign in (new accounts can register there), asks you to approve this device and prints your MCP URL. Run it again any time to update. The workspace is your home directory by default; set `FRELY_WORKSPACE=/path` to share another folder. [More](https://cli.frely.cloud/docs/help/how-do-i-install/)
48
41
 
49
- ### Let your agent set it up (no device access)
42
+ ### Let your agent set it up
50
43
 
51
- Ask an agent that has a shell (Claude Code, Codex, pi) to install the CLI, sign in with `frely login --email`, and run `frely skill install --host <host>` (add `--scope project --dir <project>` for one project). The `frely` Skill it installs teaches the agent to use your account (`frely api`), install marketplace items and Agents, and to offer FrelyMCP only when a request needs it (another computer, Cloud MCPs, a browser, a client without a shell). This path does not open this computer to remote clients; `frely mcp start` does.
44
+ Ask an agent that has a shell (Claude Code, Codex, pi) to install the CLI, sign in with `frely login --email`, and run `frely skill install --host <host>`. 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.
52
45
 
53
46
  ### Install only
54
47
 
55
- `install.sh` and `install.ps1` (same URLs, `https://frely.cloud/install.sh`) only install the program, for scripts, Skills and agents that need the CLI. Or use npm (Node.js 22 or newer):
48
+ `https://frely.cloud/install.sh` and `install.ps1` only install the program, for scripts and agents that need the CLI. Or use npm (Node.js 22 or newer):
56
49
 
57
50
  ```sh
58
51
  npm install --global --ignore-scripts frely-cli@latest
59
52
  ```
60
53
 
61
- The installers pick the right executable for your platform, check its SHA-256 and install into your user directory without Node.js. They download from GitHub Releases first and fall back to npmmirror and npmjs (`@frelyhq/cli-<platform>`) when GitHub is slow or unreachable. `FRELY_INSTALL_SOURCES` changes the order.
54
+ The installers check the SHA-256 and download from GitHub Releases first, then npmmirror and npmjs. [More](https://cli.frely.cloud/docs/help/install-only/)
62
55
 
63
56
  ## Common commands
64
57
 
@@ -68,147 +61,48 @@ The installers pick the right executable for your platform, check its SHA-256 an
68
61
  | `frely mcp status` | Show the MCP URL, workspace, authorization expiry and service state. |
69
62
  | `frely mcp workspace add <path>` | Share another folder. `frely mcp workspace list` shows them all. |
70
63
  | `frely mcp stop` / `frely mcp start` | Pause or resume the background service. |
64
+ | `frely mcp auto-update [on\|off]` | Let the background service update itself while idle (macOS/Linux, off by default). |
71
65
  | `frely mcp remove` | Revoke access for every client and uninstall the service. |
72
66
  | `frely doctor` | Check sign-in, installation, service and connection. `-v` for details. |
73
67
  | `frely update` | Update to the latest version in place. |
74
68
  | `frely login` / `frely logout` | Sign in or out of your Frely account. |
69
+ | `frely sandbox proxy <url>` | Forward the command sandbox's network traffic to your own HTTP(S) proxy. Without it the CLI uses `HTTPS_PROXY` / `HTTP_PROXY` / `ALL_PROXY` and, on macOS, the system proxy. `--clear` removes it; restart the service to apply. |
70
+ | `frely tunnel <host>:<port>` | Inside a sandboxed command: listen on `127.0.0.1` and forward TCP connections to `host:port` through the sandbox, for database and redis clients. `--local-port N` picks the local port. |
75
71
  | `frely uninstall` | Remove Frely from this computer (lists everything first). |
76
72
 
77
- Run any command group without a subcommand (for example `frely mcp` or `frely agent`) to see what it offers.
73
+ All commands and options: [command reference](https://cli.frely.cloud/docs/help/commands/). `frely help --agent --json` prints the full machine-readable contract.
78
74
 
79
- ## Use frely-cli with FrelyMCP
75
+ ## Use with FrelyMCP
80
76
 
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. `frely-cli` runs the tools on each computer; the AI client only needs the URL.
77
+ 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.
82
78
 
83
- ### Connect a client
84
-
85
- 1. On the computer to control, run `frely mcp start` (the install scripts above already do this). It prints the MCP URL.
79
+ 1. On the computer to control, run `frely mcp start` (the install scripts above already do this).
86
80
  2. Add the URL to your client as a remote MCP server with OAuth:
87
81
  - ChatGPT or Claude: add a custom connector with the URL.
88
82
  - Claude Code on another computer: `claude mcp add --transport http frely "https://mcp.frely.cloud/mcp"`, then open `/mcp` to authorize.
89
83
  3. Sign in to Frely and approve the client.
90
84
 
91
- To check the connection, ask the client to list the top-level names in your workspace. A result that matches the folder means it works.
92
-
93
- ### What the AI can do
94
-
95
- - `list_devices` shows your computers, whether each is online and its workspaces. If you have none, it gives the install command above.
96
- - Device tools take a `device` argument and run on that computer:
97
- - `read`: list, read, search and find files in the workspace.
98
- - `edit_file`: write whole files or edit lines, atomically.
99
- - `process`: run shell commands, or start and manage long-running processes.
100
- - `web_fetch`: read public web pages.
101
- - `local_mcp_list` and `local_mcp_call` reach MCP servers on that computer that you turned on (see below).
102
- - `local_models` (background service only) lists model servers on that computer (Ollama, LM Studio, vLLM, llama.cpp) and shares them as a Frely Provider; it uses one Provider slot. Shared models appear in `models_list` marked `local: true`.
103
- - `frely_list` and `frely_call` manage your Frely account (API keys, credits, plans, orders). `frely api list|describe|call` is the same set from the terminal.
104
-
105
- The AI client's own shell still runs where the client runs; ask it to use the Frely tools for work on your computer. All clients share each computer's workspaces and running processes.
106
-
107
- ### Local MCP servers on this computer
85
+ To check the connection, ask the client to list the top-level names in your workspace.
108
86
 
109
- Servers that listen only on loopback are found automatically (`frely mcp local list`). Add others with:
110
-
111
- ```sh
112
- frely mcp local add <name> --url http://127.0.0.1:<port>/mcp
113
- frely mcp local add <name> [--env KEY=VALUE] -- <command> [args...] # stdio
114
- ```
115
-
116
- Each server stays hidden from remote clients until you turn it on, one by one, on the Frely connections page. Enabled servers run outside the command sandbox with your user account. Only loopback addresses are contacted, and headers and environment values never leave the computer.
117
-
118
- ### Authorization
119
-
120
- Device MCP access lasts 90 days by default; `frely mcp start --days 1..365` renews early. When it expires, `frely mcp start` asks for approval again. The URL never changes. Manage your computers on the Frely website under **My Devices**.
87
+ - **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/)
88
+ - **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/)
89
+ - **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/)
121
90
 
122
91
  ## More features
123
92
 
124
- ### Invoke a Frely-hosted Agent
125
-
126
- ```sh
127
- frely agent install <distribution-id> --host claude-code --scope global
128
- printf '%s' 'Your complete task' | frely agent run <distribution-id> --input-stdin --json
129
- ```
130
-
131
- `--host` is one of `chatgpt`, `codex`, `claude-code`, `pi` or `generic`. A full manifest URL also works in place of the id. To use a Creator's sponsored API key instead of your account, pass it on stdin with `--api-key-stdin`; it is stored in the secure credential store, never in the Skill. Use short-lived, single-model keys with a bounded quota. `frely agent status <id>` shows the Skill and the key's budget; `frely agent remove <id>` removes both.
93
+ - **Frely-hosted Agents**: `frely agent install <distribution-id> --host claude-code` installs an Agent as a local Skill; `frely agent run` calls it. [More](https://cli.frely.cloud/docs/help/install-agents-and-items/)
94
+ - **Marketplace Prompts and Skills**: `frely item install <item-id> --host claude-code`. Paid parts install only when your account holds a pass. [More](https://cli.frely.cloud/docs/help/install-agents-and-items/)
95
+ - **Local model sharing**: `frely provider share ollama` publishes a loopback model server as your personal Frely Provider. [More](https://cli.frely.cloud/docs/help/share-local-model/)
96
+ - **Your account from the terminal**: `frely api list|describe|call`. [More](https://cli.frely.cloud/docs/help/manage-account-from-cli/)
132
97
 
133
- ### Install marketplace Prompts and Skills
134
-
135
- ```sh
136
- frely item install <item-id> --host claude-code
137
- ```
138
-
139
- The first call opens a browser for Frely Cloud authorization. A paid part is installed only if your account holds a pass; otherwise the command says how to buy one. Skills go to the host's Skill folder under their own name (with `--scope project`, `--dir` is the project root; default: current directory), Prompts to `--dir`, and scripts are saved without execute permission. Nothing is added to the Skill folder: what Frely wrote is tracked under `~/.config/frely`. Frely never overwrites a folder it did not install or a file you edited. A Skill that Frely's scan has not passed is reported as such: read it before use, then `frely item trust <folder>` remembers the review; a new version needs a new review.
140
-
141
- Cloud MCPs you buy are not installed on the computer: enable them for a connection on the Frely website and their tools appear in FrelyMCP.
142
-
143
- ### Local model sharing
144
-
145
- ```sh
146
- frely provider share ollama
147
- frely provider share openai-compatible --url http://127.0.0.1:8080/v1 --models model-a,model-b --name "Local GPU"
148
- frely provider list
149
- ```
150
-
151
- This publishes a loopback OpenAI-compatible endpoint (Ollama by default at `http://127.0.0.1:11434/v1`) as a personal Frely Provider, using one empty personal Provider slot. With no empty slot, or with `--creator`, it creates a Creator Provider counted against your Creator plan, and its models can be the base of Agents you publish. Keep the computer online while it is used, and make sure the runtime returns `usage`. If setup stops halfway, run the same command again to resume.
152
-
153
- ## Local execution boundaries
154
-
155
- - **Files**: file tools stay inside the shared workspaces, reject symlink escapes, cap reads and writes at 1 MiB and write atomically. Credential stores and shell start-up files are protected even inside the home directory.
156
- - **Commands**: `process` runs as your OS user inside an OS sandbox. Credential folders are unreadable, writes are limited to the workspace and the temp directory, and network goes through a proxy. If the computer cannot sandbox (Windows, or Linux without `bubblewrap`, `socat` and `ripgrep`), commands are refused rather than run unsandboxed. You can open more on the Frely connections page: credential folders to read, extra folders to write, or a time-limited run without the sandbox. `FRELY_SANDBOX=off` turns the sandbox off on the device.
157
- - **Credentials**: the MCP URL contains no secret. Clients hold OAuth tokens; the CLI holds a separate MCP execution key, encrypted with a master key in macOS Keychain, Windows Credential Manager or Linux Secret Service. Headless machines can set `FRELY_CREDENTIAL_KEY` (32 bytes) with `FRELY_CREDENTIAL_STORE=encrypted-file`. When authorization expires, requests and queued work stop; finished writes are not undone.
158
-
159
- Details: [credential and installation boundaries](docs/credential-storage.md).
160
-
161
- ## Update, diagnose and uninstall
162
-
163
- ```sh
164
- frely doctor # account, installation, latest version, MCP and service state
165
- frely doctor -v # + config paths, authorization expiry, last heartbeat, sanitized errors
166
- frely update # update in place, keeping your login, device, URL and workspace
167
- frely uninstall # list everything, then remove it after you type yes (--yes for scripts)
168
- ```
169
-
170
- `frely update` keeps the original install method and never downgrades. It pauses the background service, replaces the program after checking it, and restarts the service. On Windows it prints a PowerShell command to run in a local terminal. See [self-update](docs/self-update.md) and [service maintenance](docs/service-maintenance.md).
171
-
172
- `frely uninstall` revokes this computer's access on the Frely side, removes the service, saved login, device identity, settings, caches and the Agent Skills Frely installed, and finally removes the `frely` program. It keeps the Frely App, your Providers and Agents in your account, the PATH lines the installer added, Skills you edited and marketplace items. Run it in a local terminal, not through Device MCP.
173
-
174
- ## All commands
175
-
176
- ```text
177
- frely login [--relay <https-url>] [--no-browser]
178
- frely login --email <address> [--mcp] [--workspace <path>] then frely login --code <6-digit code>
179
- frely logout
180
- frely uninstall [--yes] [--json]
181
- frely doctor [-v] [--json]
182
- frely update
183
- frely mcp start [--workspace <path>] [--days 1..365] [--no-browser] [--json]
184
- frely mcp status [--json]
185
- frely mcp stop|remove
186
- frely mcp workspace list [--json]
187
- frely mcp workspace add|remove <path>
188
- frely mcp local list [--json]
189
- frely mcp local add <name> (--url <address> | [--env KEY=VALUE] -- <command> [args...])
190
- frely mcp local remove <name>
191
- frely agent install <distribution-id|manifest-url> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <project>] [--api-key-stdin] [--json]
192
- frely agent run <distribution-id> (--input <text>|--input-stdin) [--json]
193
- frely agent status (<distribution-id>|--api-key-stdin [--relay <url>]) [--json]
194
- frely agent remove <distribution-id> [--json]
195
- frely skill install [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <project>] [--json]
196
- frely item install <item-id> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <path>] [--json]
197
- frely item trust <folder> [--check]
198
- frely provider share [ollama|openai-compatible] [--url <loopback-v1-url>] [--models <a,b>] [--slot <slot-id> | --creator] [--name <name>]
199
- frely provider list [--json]
200
- frely api list|describe|call
201
- ```
98
+ ## Safety
202
99
 
203
- `frely help --agent --json` prints the full machine-readable contract, including commands not shown in `frely --help`: `frely mcp stdio` (serve the tools over stdio to a local client), `frely mcp serve` (the foreground process the service runs) and `frely network` (preview).
100
+ File tools stay inside the shared workspaces and protect credential and shell start-up files. Commands run as your OS user inside an OS sandbox, and are refused where the computer cannot sandbox them. Clients hold OAuth tokens; the CLI keeps its own key in the system credential store. [Is it safe?](https://cli.frely.cloud/docs/help/is-it-safe/) · [Sandbox and permissions](https://cli.frely.cloud/docs/help/sandbox-and-permissions/) · [Credential storage](docs/credential-storage.md)
204
101
 
205
102
  ## Documentation
206
103
 
207
- - [Device MCP](docs/device-mcp.md)
208
- - [Device Relay transport](docs/device-transport.md)
209
- - [MCP OAuth contract](docs/mcp-oauth-relay-contract.md)
210
- - [`frely api`](docs/api.md)
211
- - [Frely Network (preview)](docs/frely-network.md)
104
+ - Help: [cli.frely.cloud/docs](https://cli.frely.cloud/docs/) ([update](https://cli.frely.cloud/docs/help/update/), [doctor](https://cli.frely.cloud/docs/help/doctor/), [uninstall](https://cli.frely.cloud/docs/help/uninstall/))
105
+ - Contracts, for contributors: [Device MCP](docs/device-mcp.md) · [Device Relay transport](docs/device-transport.md) · [MCP OAuth contract](docs/mcp-oauth-relay-contract.md) · [`frely api`](docs/api.md) · [Frely Network (preview)](docs/frely-network.md) · [self-update](docs/self-update.md) · [service maintenance](docs/service-maintenance.md)
212
106
 
213
107
  ## License and trademarks
214
108
 
package/README.zh-CN.md CHANGED
@@ -1,8 +1,10 @@
1
- # frely-cli
1
+ # Frely CLI
2
2
 
3
- [English](README.md) · [简体中文](README.zh-CN.md)
3
+ [![Frely CLI:让 Agent 从任何地方访问你的设备](site/assets/og.png)](https://cli.frely.cloud/zh/)
4
4
 
5
- `frely-cli` 把你指定的一台电脑变成 AI Agent 可以在任何地方操作的设备。ChatGPT、Claude、Codex 等 MCP 客户端通过 **FrelyMCP** 连接,使用你授权的文件夹里的文件、Shell 命令和进程。电脑主动向 Frely 发起连接,不需要开放任何端口。
5
+ [官网](https://cli.frely.cloud/zh/) · [文档](https://cli.frely.cloud/docs/) · [Frely](https://frely.cloud/) · [English](README.md) · [简体中文](README.zh-CN.md)
6
+
7
+ Frely CLI(`frely-cli`)把你指定的一台电脑连接到 **FrelyMCP**,让 ChatGPT、Claude、Codex 等 MCP 客户端可以在任何地方操作它,使用你授权的文件夹里的文件、Shell 命令和进程。电脑主动向 Frely 发起连接,不需要开放任何端口。
6
8
 
7
9
  它也是 Frely 账号的命令行工具:
8
10
 
@@ -15,20 +17,13 @@
15
17
 
16
18
  ### 服务器,已有 Frely 账号(无需浏览器)
17
19
 
18
- 拿到一条一次性安装命令,粘贴到服务器上运行。它会安装 `frely`、登录你的账号、开启设备 MCP 并启动后台服务,全程不打开浏览器,也不会提问。
19
-
20
- 在以下任一处获取命令:
21
-
22
- - Frely 网站:**My Devices → Add a computer → Create install command**。
23
- - 已连接 FrelyMCP 的 ChatGPT 或 Claude:让它添加一台电脑,`list_devices` 会返回这条命令。
24
-
25
- 命令形如:
20
+ 在 Frely 网站 **My Devices → Add a computer → Create install command** 获取一次性安装命令,或让已连接 FrelyMCP 的 ChatGPT、Claude 添加一台电脑。粘贴到服务器上运行:
26
21
 
27
22
  ```sh
28
23
  curl -fsSL https://frely.cloud/start.sh | FRELY_INSTALL_TOKEN=fit_... sh
29
24
  ```
30
25
 
31
- 令牌只能用一次,15 分钟内有效,不会保存在电脑上。如果这台电脑已经安装或登录过 Frely,命令会更新它,并把登录切换到你的账号。Linux 上请运行 `sudo loginctl enable-linger $USER`,退出 SSH 后服务才能保持在线。
26
+ 它会安装 `frely`、登录你的账号、开启设备 MCP 并启动后台服务。令牌只能用一次,15 分钟内有效。Linux 上请运行 `sudo loginctl enable-linger $USER`,退出 SSH 后服务才能保持在线。[详情](https://cli.frely.cloud/docs/help/install-on-a-server/)
32
27
 
33
28
  ### 有浏览器的电脑
34
29
 
@@ -42,167 +37,71 @@ curl -fsSL https://frely.cloud/start.sh | sh
42
37
  curl.exe -fsSLo "$env:TEMP\frely-start.ps1" https://frely.cloud/start.ps1; powershell -NoProfile -ExecutionPolicy Bypass -File "$env:TEMP\frely-start.ps1"
43
38
  ```
44
39
 
45
- 脚本安装最新版 `frely`,然后运行 `frely mcp start`:打开浏览器登录(新账号可在同一页面注册),请你批准这台设备,最后输出 MCP URL。随时可以再运行一次来升级,它会用新版本重启后台服务。
40
+ 脚本安装最新版 `frely`,打开浏览器登录(新账号可在同一页面注册),请你批准这台设备,最后输出 MCP URL。随时可以再运行一次来升级。工作区默认是用户主目录,设置 `FRELY_WORKSPACE=/path` 可共享其他文件夹。[详情](https://cli.frely.cloud/docs/help/how-do-i-install/)
41
+
42
+ ### 让 Agent 帮你安装
46
43
 
47
- 工作区默认是用户主目录(凭据和 Shell 启动文件仍受保护)。设置 `FRELY_WORKSPACE=/path` 可共享其他文件夹,`FRELY_INSTALL_DIR` 可改变安装位置(默认 `~/.local/bin`)。
44
+ 让有 Shell 的 Agent(Claude Code、Codex、pi)安装 CLI,用 `frely login --email` 登录,再运行 `frely skill install --host <host>`。安装的 `frely` Skill 会教 Agent 使用你的账号,只在需要时才建议 FrelyMCP。这种方式不会把这台电脑开放给远程客户端,`frely mcp start` 才会。
48
45
 
49
46
  ### 只安装
50
47
 
51
- `install.sh` 和 `install.ps1`(同一域名,`https://frely.cloud/install.sh`)只安装程序,供脚本、Skill 和 Agent 使用。也可以用 npm(需要 Node.js 22 或更新版本):
48
+ `https://frely.cloud/install.sh` 和 `install.ps1` 只安装程序,供脚本和 Agent 使用。也可以用 npm(需要 Node.js 22 或更新版本):
52
49
 
53
50
  ```sh
54
51
  npm install --global --ignore-scripts frely-cli@latest
55
52
  ```
56
53
 
57
- 安装器会选择对应平台的可执行文件,校验 SHA-256,安装到用户目录,不需要 Node.js。下载先走 GitHub Releases,GitHub 过慢或连不上时改用 npmmirror 和 npmjs(`@frelyhq/cli-<平台>`)。`FRELY_INSTALL_SOURCES` 可调整顺序。
54
+ 安装器会校验 SHA-256,下载先走 GitHub Releases,再回退到 npmmirror 和 npmjs。[详情](https://cli.frely.cloud/docs/help/install-only/)
58
55
 
59
56
  ## 常用命令
60
57
 
61
58
  | 命令 | 作用 |
62
59
  | --- | --- |
63
- | `frely mcp start` | 需要时先登录,开启设备 MCP,启动服务并输出 MCP URL。可重复运行。 |
60
+ | `frely mcp start` | 需要时登录,开启设备 MCP,启动服务并输出 MCP URL。可重复运行。 |
64
61
  | `frely mcp status` | 显示 MCP URL、工作区、授权到期时间和服务状态。 |
65
- | `frely mcp workspace add <path>` | 再共享一个文件夹。`frely mcp workspace list` 列出全部。 |
62
+ | `frely mcp workspace add <path>` | 共享另一个文件夹。`frely mcp workspace list` 列出全部。 |
66
63
  | `frely mcp stop` / `frely mcp start` | 暂停或恢复后台服务。 |
67
64
  | `frely mcp remove` | 撤销所有客户端的访问并卸载服务。 |
68
- | `frely doctor` | 检查登录、安装、服务和连接状态。加 `-v` 看详情。 |
69
- | `frely update` | 原地升级到最新版。 |
65
+ | `frely doctor` | 检查登录、安装、服务和连接。`-v` 显示详情。 |
66
+ | `frely update` | 原地升级到最新版本。 |
70
67
  | `frely login` / `frely logout` | 登录或退出 Frely 账号。 |
68
+ | `frely sandbox proxy <url>` | 让命令沙箱的网络流量转发到你自己的 HTTP(S) 代理。未设置时使用 CLI 进程的 `HTTPS_PROXY` / `HTTP_PROXY` / `ALL_PROXY`,macOS 上还会读系统代理。`--clear` 删除;重启服务后生效。 |
69
+ | `frely tunnel <host>:<port>` | 在沙箱命令内使用:监听 `127.0.0.1`,把 TCP 连接经沙箱转发到 `host:port`,供数据库、redis 客户端使用。`--local-port N` 指定本地端口。 |
71
70
  | `frely uninstall` | 从这台电脑移除 Frely(先列出全部内容)。 |
72
71
 
73
- 只输入命令组而不带子命令(如 `frely mcp`、`frely agent`)会列出该组的子命令。
72
+ 全部命令和参数见[命令参考](https://cli.frely.cloud/docs/help/commands/)。`frely help --agent --json` 输出完整的机器可读契约。
74
73
 
75
74
  ## 与 FrelyMCP 配合使用
76
75
 
77
- FrelyMCP 是整个账号共用的一个 MCP 地址:`https://mcp.frely.cloud/mcp`。每台运行过 `frely mcp start` 的电脑都在它后面。`frely-cli` 在各台电脑上执行工具,AI 客户端只需要这个 URL。
76
+ FrelyMCP 是整个账号共用的一个 MCP 地址:`https://mcp.frely.cloud/mcp`。每台运行过 `frely mcp start` 的电脑都在它后面。
78
77
 
79
- ### 连接客户端
80
-
81
- 1. 在要被控制的电脑上运行 `frely mcp start`(上面的安装脚本已经包含这一步),它会输出 MCP URL。
78
+ 1. 在要被控制的电脑上运行 `frely mcp start`(上面的安装脚本已经包含这一步)。
82
79
  2. 把 URL 作为使用 OAuth 的远程 MCP 服务加到客户端:
83
80
  - ChatGPT 或 Claude:用这个 URL 添加自定义连接器。
84
81
  - 另一台电脑上的 Claude Code:`claude mcp add --transport http frely "https://mcp.frely.cloud/mcp"`,然后打开 `/mcp` 完成授权。
85
82
  3. 登录 Frely 并批准该客户端。
86
83
 
87
- 验证连接:让客户端列出工作区的顶层文件名,结果与文件夹一致即表示连通。
88
-
89
- ### AI 能做什么
90
-
91
- - `list_devices` 列出你的电脑、是否在线及其工作区。没有电脑时,它会给出上面的安装命令。
92
- - 设备工具带 `device` 参数,在那台电脑上执行:
93
- - `read`:在工作区内列出、读取、搜索和查找文件。
94
- - `edit_file`:原子地写入整个文件或按行修改。
95
- - `process`:运行 Shell 命令,或启动和管理长时间运行的进程。
96
- - `web_fetch`:读取公开网页。
97
- - `local_mcp_list` 和 `local_mcp_call` 访问那台电脑上你已开启的 MCP 服务(见下文)。
98
- - `frely_list` 和 `frely_call` 管理你的 Frely 账号(API Key、Credit、套餐、订单)。终端里的 `frely api list|describe|call` 是同一套操作。
99
-
100
- AI 客户端自带的 Shell 仍在客户端所在的电脑上运行;要在你的电脑上工作,请让它使用 Frely 工具。所有客户端共享每台电脑的工作区和正在运行的进程。
101
-
102
- ### 本机 MCP 服务
84
+ 验证连接:让客户端列出工作区的顶层文件名。
103
85
 
104
- 只监听本机回环地址的服务会被自动发现(`frely mcp local list`)。其他服务这样添加:
105
-
106
- ```sh
107
- frely mcp local add <name> --url http://127.0.0.1:<port>/mcp
108
- frely mcp local add <name> [--env KEY=VALUE] -- <command> [args...] # stdio
109
- ```
110
-
111
- 每个服务默认对远程客户端隐藏,需要在 Frely 连接页面逐个开启。开启后的服务在命令沙箱之外、以你的用户身份运行。只会连接回环地址,headers 和环境变量不会离开这台电脑。
112
-
113
- ### 授权
114
-
115
- 设备 MCP 授权默认 90 天;`frely mcp start --days 1..365` 可提前续期。到期后 `frely mcp start` 会再次请求批准。URL 永远不变。在 Frely 网站的 **My Devices** 管理你的电脑。
86
+ - **AI 能做什么**:先 `list_devices`,再在选定的电脑上用 `read`、`edit_file`、`process`、`web_fetch`,账号操作用 `frely_list` 和 `frely_call`。[详情](https://cli.frely.cloud/docs/help/what-can-the-ai-do/)
87
+ - **本机 MCP 服务**:只监听回环地址的服务会被自动发现(`frely mcp local list`),每个都要在 Frely 上逐个开启才对远程可见。[详情](https://cli.frely.cloud/docs/help/local-mcp-servers/)
88
+ - **授权**:默认 90 天,`frely mcp start --days 1..365` 可提前续期,URL 永远不变。[详情](https://cli.frely.cloud/docs/help/authorization-expiry/)
116
89
 
117
90
  ## 更多功能
118
91
 
119
- ### 调用 Frely 托管的 Agent
120
-
121
- ```sh
122
- frely agent install <distribution-id> --host claude-code --scope global
123
- printf '%s' 'Your complete task' | frely agent run <distribution-id> --input-stdin --json
124
- ```
125
-
126
- `--host` 可选 `chatgpt`、`codex`、`claude-code`、`pi` 或 `generic`。也可以用完整的 manifest URL 代替 id。要用 Creator 提供的赞助 API Key 而不是你的账号,用 `--api-key-stdin` 从 stdin 传入;Key 存入安全凭据库,不会写进 Skill。请使用短期、单模型、限额的 Key。`frely agent status <id>` 显示 Skill 和 Key 的额度;`frely agent remove <id>` 同时移除两者。
92
+ - **Frely 托管的 Agent**:`frely agent install <distribution-id> --host claude-code` 安装为本地 Skill,`frely agent run` 调用。[详情](https://cli.frely.cloud/docs/help/install-agents-and-items/)
93
+ - **市场里的 Prompt 和 Skill**:`frely item install <item-id> --host claude-code`,付费部分需要账号持有通行证。[详情](https://cli.frely.cloud/docs/help/install-agents-and-items/)
94
+ - **本地模型共享**:`frely provider share ollama` 把本机模型服务发布为你的个人 Frely Provider。[详情](https://cli.frely.cloud/docs/help/share-local-model/)
95
+ - **在终端管理账号**:`frely api list|describe|call`。[详情](https://cli.frely.cloud/docs/help/manage-account-from-cli/)
127
96
 
128
- ### 安装市场里的 Prompt 和 Skill
129
-
130
- ```sh
131
- frely item install <item-id> --host claude-code
132
- ```
133
-
134
- 首次调用会打开浏览器进行 Frely Cloud 授权。账号持有通行证时才安装付费部分,否则命令会告诉你如何购买。Skill 装到宿主的 Skill 目录,Prompt 装到 `--dir`(默认当前目录),脚本保存时不带执行权限。Frely 不会覆盖不是它安装的文件夹,也不会覆盖你改过的文件。审查过已安装的条目后,`frely item trust <folder>` 会记住;新版本需要重新审查。
135
-
136
- 你购买的云端 MCP 不会安装到电脑上:在 Frely 网站为某个连接开启后,它们的工具会出现在 FrelyMCP 里。
137
-
138
- ### 本地模型共享
139
-
140
- ```sh
141
- frely provider share ollama
142
- frely provider share openai-compatible --url http://127.0.0.1:8080/v1 --models model-a,model-b --name "Local GPU"
143
- frely provider list
144
- ```
145
-
146
- 把本机回环地址上的 OpenAI 兼容端点(默认 Ollama `http://127.0.0.1:11434/v1`)发布为 Frely 个人 Provider,占用一个空的个人 Provider 名额。没有空名额或使用 `--creator` 时,会创建 Creator Provider,计入你的 Creator 套餐,其模型可作为你发布的 Agent 的底座。使用期间请保持电脑在线,并确保运行时在响应中返回 `usage`。设置中途停止时,再次运行同一命令即可继续。
147
-
148
- ## 本地执行边界
149
-
150
- - **文件**:文件工具只在共享的工作区内操作,拒绝符号链接逃逸,单次读写上限 1 MiB,写入是原子的。即使在主目录内,凭据库和 Shell 启动文件也受保护。
151
- - **命令**:`process` 以你的系统用户身份在系统级沙箱中运行。凭据目录不可读,写入限于工作区和临时目录,网络经代理。电脑无法使用沙箱时(Windows,或 Linux 缺少 `bubblewrap`、`socat`、`ripgrep`),命令会被拒绝而不是在沙箱外运行。可以在 Frely 连接页面开放更多:可读的凭据目录、可写的其他目录,或限时无沙箱运行。在设备上设置 `FRELY_SANDBOX=off` 可关闭沙箱。
152
- - **凭据**:MCP URL 不含任何密钥。客户端持有 OAuth 令牌;CLI 持有独立的 MCP 执行密钥,用 macOS 钥匙串、Windows 凭据管理器或 Linux Secret Service 中的主密钥加密。无界面的机器可设置 `FRELY_CREDENTIAL_KEY`(32 字节)并配合 `FRELY_CREDENTIAL_STORE=encrypted-file`。授权到期后,请求和排队的工作会停止;已完成的写入不会撤销。
153
-
154
- 详情:[凭据与安装边界](docs/credential-storage.md)。
155
-
156
- ## 升级、诊断与卸载
157
-
158
- ```sh
159
- frely doctor # 账号、安装、最新版本、MCP 与服务状态
160
- frely doctor -v # 另含配置路径、授权到期、最后心跳、脱敏错误
161
- frely update # 原地升级,保留登录、设备、URL 和工作区
162
- frely uninstall # 先列出全部内容,输入 yes 后移除(脚本用 --yes)
163
- ```
164
-
165
- `frely update` 保持原有安装方式,不会降级。它暂停后台服务,校验后替换程序,再重启服务。Windows 上它会输出一条 PowerShell 命令,请在本地终端运行。见[自更新](docs/self-update.md)和[服务维护](docs/service-maintenance.md)。
166
-
167
- `frely uninstall` 在 Frely 端撤销这台电脑的访问,移除服务、保存的登录、设备身份、设置、缓存和 Frely 安装的 Agent Skill,最后移除 `frely` 程序本身。它会保留 Frely App、账号里的 Provider 和 Agent、安装器添加的 PATH 行、你改过的 Skill 和市场条目。请在本地终端运行,不要通过设备 MCP 运行。
168
-
169
- ## 全部命令
170
-
171
- ```text
172
- frely login [--relay <https-url>] [--no-browser]
173
- frely login --email <address> [--mcp] [--workspace <path>] then frely login --code <6-digit code>
174
- frely logout
175
- frely uninstall [--yes] [--json]
176
- frely doctor [-v] [--json]
177
- frely update
178
- frely mcp start [--workspace <path>] [--days 1..365] [--no-browser] [--json]
179
- frely mcp status [--json]
180
- frely mcp stop|remove
181
- frely mcp workspace list [--json]
182
- frely mcp workspace add|remove <path>
183
- frely mcp local list [--json]
184
- frely mcp local add <name> (--url <address> | [--env KEY=VALUE] -- <command> [args...])
185
- frely mcp local remove <name>
186
- frely agent install <distribution-id|manifest-url> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--api-key-stdin] [--json]
187
- frely agent run <distribution-id> (--input <text>|--input-stdin) [--json]
188
- frely agent status (<distribution-id>|--api-key-stdin [--relay <url>]) [--json]
189
- frely agent remove <distribution-id> [--json]
190
- frely item install <item-id> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <path>] [--json]
191
- frely item trust <folder> [--check]
192
- frely provider share [ollama|openai-compatible] [--url <loopback-v1-url>] [--models <a,b>] [--slot <slot-id> | --creator] [--name <name>]
193
- frely provider list [--json]
194
- frely api list|describe|call
195
- ```
97
+ ## 安全
196
98
 
197
- `frely help --agent --json` 输出完整的机器可读契约,包括 `frely --help` 中未列出的命令:`frely mcp stdio`(通过 stdio 向本地客户端提供工具)、`frely mcp serve`(后台服务运行的前台进程)和 `frely network`(预览)。
99
+ 文件工具只在共享的工作区内工作,凭据和 Shell 启动文件受保护。命令以你的系统用户身份在系统沙箱中运行,无法沙箱时直接拒绝。客户端持有 OAuth 令牌,CLI 的密钥保存在系统凭据库中。[安全吗?](https://cli.frely.cloud/docs/help/is-it-safe/) · [沙箱与权限](https://cli.frely.cloud/docs/help/sandbox-and-permissions/) · [凭据存储](docs/credential-storage.md)
198
100
 
199
101
  ## 文档
200
102
 
201
- - [设备 MCP](docs/device-mcp.md)
202
- - [Device Relay 传输](docs/device-transport.md)
203
- - [MCP OAuth 契约](docs/mcp-oauth-relay-contract.md)
204
- - [`frely api`](docs/api.md)
205
- - [Frely Network(预览)](docs/frely-network.md)
103
+ - 帮助:[cli.frely.cloud/docs](https://cli.frely.cloud/docs/)([升级](https://cli.frely.cloud/docs/help/update/)、[诊断](https://cli.frely.cloud/docs/help/doctor/)、[卸载](https://cli.frely.cloud/docs/help/uninstall/))
104
+ - 契约(面向贡献者):[设备 MCP](docs/device-mcp.md) · [Device Relay 传输](docs/device-transport.md) · [MCP OAuth 契约](docs/mcp-oauth-relay-contract.md) · [`frely api`](docs/api.md) · [Frely Network(预览)](docs/frely-network.md) · [自升级](docs/self-update.md) · [服务维护](docs/service-maintenance.md)
206
105
 
207
106
  ## 许可与商标
208
107
 
@@ -88,6 +88,12 @@ export declare const COMMANDS: readonly [{
88
88
  readonly auth: "none";
89
89
  readonly effect: "local-service";
90
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.";
91
+ }, {
92
+ readonly id: "mcp.auto-update";
93
+ readonly usage: "frely mcp auto-update [on|off]";
94
+ readonly auth: "none";
95
+ readonly effect: "local-write";
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.";
91
97
  }, {
92
98
  readonly id: "mcp.remove";
93
99
  readonly usage: "frely mcp remove";
@@ -166,6 +172,18 @@ export declare const COMMANDS: readonly [{
166
172
  readonly auth: "account";
167
173
  readonly effect: "read";
168
174
  readonly purpose: "List configured local Providers.";
175
+ }, {
176
+ readonly id: "tunnel";
177
+ readonly usage: "frely tunnel <host>:<port> [--local-port N]";
178
+ readonly auth: "none";
179
+ readonly effect: "local-execution";
180
+ readonly purpose: "Run inside a sandboxed command (run_command): listen on 127.0.0.1:<local-port> (default: the same port) and forward each TCP connection to host:port through the command sandbox's proxy, so database and redis clients connect to 127.0.0.1 without turning the sandbox off. Start it in the same command as the client, for example `frely tunnel db.example.com:5432 & sleep 1; psql -h 127.0.0.1 ...`. Prints the local address and runs until killed.";
181
+ }, {
182
+ readonly id: "sandbox.proxy";
183
+ readonly usage: "frely sandbox proxy [<http://host:port> [--no-proxy <list>] | --clear]";
184
+ readonly auth: "none";
185
+ readonly effect: "local-write";
186
+ readonly purpose: "Show, save or remove the HTTP(S) proxy that the command sandbox forwards its network traffic to (your own proxy, for example Clash). Without one saved it uses the HTTPS_PROXY / HTTP_PROXY / ALL_PROXY of the CLI process and, on macOS, the system proxy. Your proxy settings are never changed. Takes effect when the MCP service restarts.";
169
187
  }, {
170
188
  readonly id: "api";
171
189
  readonly usage: "frely api list|describe|call [--help]";
@@ -208,6 +226,12 @@ export declare const COMMANDS: readonly [{
208
226
  readonly auth: "local";
209
227
  readonly effect: "local-write";
210
228
  readonly purpose: "Lift the local block set by `frely computer disable` and pre-install the computer-use runtime. Computer use (desktop control by a remote MCP client) is built in and stays off until the owner turns it on for the device on the Frely connections page (passkey or authenticator code required). On macOS the first use asks that Mac for Accessibility and Screen Recording permission.";
229
+ }, {
230
+ readonly id: "computer.doctor";
231
+ readonly usage: "frely computer doctor";
232
+ readonly auth: "local";
233
+ readonly effect: "local-execution";
234
+ readonly purpose: "Check and request the OS permissions computer use needs (macOS Accessibility and Screen Recording; Windows as applicable) by running the installed runtime's doctor. `frely computer enable` runs it automatically, and a computer-use call that fails for missing permission starts it too.";
211
235
  }, {
212
236
  readonly id: "computer.disable";
213
237
  readonly usage: "frely computer disable";
@@ -329,6 +353,12 @@ export declare function agentHelp(): {
329
353
  readonly auth: "none";
330
354
  readonly effect: "local-service";
331
355
  readonly purpose: "Stop the local MCP background service without revoking authorization; frely mcp start resumes it. Supported updates restore running services without this command.";
356
+ }, {
357
+ readonly id: "mcp.auto-update";
358
+ readonly usage: "frely mcp auto-update [on|off]";
359
+ readonly auth: "none";
360
+ readonly effect: "local-write";
361
+ 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.";
332
362
  }, {
333
363
  readonly id: "mcp.remove";
334
364
  readonly usage: "frely mcp remove";
@@ -407,6 +437,18 @@ export declare function agentHelp(): {
407
437
  readonly auth: "account";
408
438
  readonly effect: "read";
409
439
  readonly purpose: "List configured local Providers.";
440
+ }, {
441
+ readonly id: "tunnel";
442
+ readonly usage: "frely tunnel <host>:<port> [--local-port N]";
443
+ readonly auth: "none";
444
+ readonly effect: "local-execution";
445
+ readonly purpose: "Run inside a sandboxed command (run_command): listen on 127.0.0.1:<local-port> (default: the same port) and forward each TCP connection to host:port through the command sandbox's proxy, so database and redis clients connect to 127.0.0.1 without turning the sandbox off. Start it in the same command as the client, for example `frely tunnel db.example.com:5432 & sleep 1; psql -h 127.0.0.1 ...`. Prints the local address and runs until killed.";
446
+ }, {
447
+ readonly id: "sandbox.proxy";
448
+ readonly usage: "frely sandbox proxy [<http://host:port> [--no-proxy <list>] | --clear]";
449
+ readonly auth: "none";
450
+ readonly effect: "local-write";
451
+ readonly purpose: "Show, save or remove the HTTP(S) proxy that the command sandbox forwards its network traffic to (your own proxy, for example Clash). Without one saved it uses the HTTPS_PROXY / HTTP_PROXY / ALL_PROXY of the CLI process and, on macOS, the system proxy. Your proxy settings are never changed. Takes effect when the MCP service restarts.";
410
452
  }, {
411
453
  readonly id: "api";
412
454
  readonly usage: "frely api list|describe|call [--help]";
@@ -449,6 +491,12 @@ export declare function agentHelp(): {
449
491
  readonly auth: "local";
450
492
  readonly effect: "local-write";
451
493
  readonly purpose: "Lift the local block set by `frely computer disable` and pre-install the computer-use runtime. Computer use (desktop control by a remote MCP client) is built in and stays off until the owner turns it on for the device on the Frely connections page (passkey or authenticator code required). On macOS the first use asks that Mac for Accessibility and Screen Recording permission.";
494
+ }, {
495
+ readonly id: "computer.doctor";
496
+ readonly usage: "frely computer doctor";
497
+ readonly auth: "local";
498
+ readonly effect: "local-execution";
499
+ readonly purpose: "Check and request the OS permissions computer use needs (macOS Accessibility and Screen Recording; Windows as applicable) by running the installed runtime's doctor. `frely computer enable` runs it automatically, and a computer-use call that fails for missing permission starts it too.";
452
500
  }, {
453
501
  readonly id: "computer.disable";
454
502
  readonly usage: "frely computer disable";