目录

工具

LetKite 的 MCP 服务器提供的每个工具:它的作用、只读还是可以做出更改,以及它的参数。本页由网关代码生成,因此列出的正是 AI 客户端看到的内容。

每个工具都带有标准的 MCP 标注:

  • 只读 readOnlyHint: true:不改变机器上或 LetKite 中的任何内容。
  • 破坏性 destructiveHint: true:可能更改或删除已有的内容,例如执行命令、写入或删除文件、停止后台任务,或在屏幕上输入。
  • 开启或关闭会话 两者都不是:添加或移除可撤回的东西,例如 shell 会话、日志订阅、隧道或 Web 分享。

每个工具都标注 openWorldHint: false:工具只作用于你自己 LetKite 账户中的机器。无论工具的标注是什么,连接的权限与审批都适用于每次调用,并且每次调用都会记录在审计日志中。

大多数工具接受一个 host:来自 list_hosts 的机器别名或节点 ID,而不是 IP 地址。

由网关代码生成(letkite/letkite@78168ef,2026-10-19)。共 47 个工具:17 个只读,22 个破坏性,8 个开启或关闭会话。工具说明以英文显示,与 AI 客户端收到的内容一致。

主机与命令
list_hostsList hosts只读
host_factsHost facts只读
fleet_statusGateway status只读
execRun command破坏性
exec_manyRun command on many hosts破坏性
shell_openOpen shell session开启或关闭会话
shell_runRun in shell session破坏性
shell_closeClose shell session开启或关闭会话
文件与传输
list_dirList directory只读
read_fileRead file只读
write_fileWrite file破坏性
delete_pathDelete path破坏性
copy_between_hostsCopy file between hosts破坏性
transfer_startStart file transfer破坏性
transfer_statusTransfer status只读
transfer_cancelCancel transfer破坏性
后台任务、日志、隧道与节点
job_startStart background job破坏性
job_statusJob status只读
job_outputRead job output只读
job_killKill job破坏性
job_purgePurge job破坏性
log_openOpen log subscription开启或关闭会话
log_readRead log lines只读
log_closeClose log subscription开启或关闭会话
tunnel_openOpen tunnel开启或关闭会话
tunnel_httpHTTP through tunnel破坏性
tunnel_closeClose tunnel开启或关闭会话
wake_nodeWake node破坏性
wake_deviceWake LAN device破坏性
approval_waitWait for approval只读
audit_tailAudit log tail只读
定时任务
schedule_createCreate schedule破坏性
schedule_listList schedules只读
schedule_deleteDelete schedule破坏性
schedule_runsSchedule run history只读
Web 分享
share_createCreate web share开启或关闭会话
share_listList web shares只读
share_deleteDelete web share破坏性
终端
terminal_openOpen terminal破坏性
terminal_sendType into terminal破坏性
terminal_readRead terminal output只读
terminal_askAsk person to type破坏性
terminal_resizeResize terminal开启或关闭会话
terminal_closeClose terminal破坏性
屏幕
gui_observeObserve screen只读
gui_zoomZoom into screen只读
gui_actAct on screen破坏性

主机与命令

list_hosts List hosts 只读

List every host in the fleet: node_id, alias, address, user, tags, scopes, notes.

Entry point for every other tool. Their host argument takes an alias or a node_id, never a bare IP. Aliases may repeat; if one is ambiguous the call fails and lists the candidate node_ids. Read-only.

参数类型必填说明
tagsarray of string (optional)否filter by tag

host_facts Host facts 只读

Collect basic facts: distro, kernel, load, memory, disk, current user, containers.

Run this before doing real work on a host so you do not send Debian commands to Alpine, or assume you are root. Read-only: a fixed set of probes that change nothing; needs fleet.read.

参数类型必填说明
hoststring是alias or node_id from list_hosts

fleet_status Gateway status 只读

Show the gateway's own state: SSH pool, shell sessions, log subscriptions, tunnels.

Read-only; lists this connection's handles only; needs fleet.read.

exec Run command 破坏性

Run one command on one host and wait for the result.

For work measured in seconds to a couple of minutes. Anything longer (builds, backups, large transfers) belongs in job_start, which survives SSH disconnects. Each call is a fresh process: cd and export do not carry over. Use shell_open when you need that state.

Side effects are whatever the command does. Needs fleet.exec; the connection's command rules and approvals apply (a high-risk command needs confirm=true). Output is capped (32 KB by default) and the timeout clamped (60 s by default, 900 s at most).

Batch several steps into one command rather than making many round trips.

参数类型必填说明
hoststring是alias or node_id from list_hosts
commandstring是bash in a login shell on SSH nodes; on agent nodes the node's default shell (PowerShell on Windows) unless shell= says otherwise
cwdstring (optional)否working directory
envobject of string (optional)否extra environment
timeoutinteger (minimum 1) (optional)否seconds
sudoboolean否run via sudo -n (host must allow it) (默认 false)
confirmboolean否confirm a high-risk command (默认 false)
shellstring (optional)否agent nodes only: sh, bash, zsh, pwsh, powershell or cmd; the node's default when omitted (host_facts lists them)

exec_many Run command on many hosts 破坏性

Run the same command on several hosts concurrently.

Use this for sweeps instead of looping over exec. One host failing does not stop the others. Same side effects and checks as exec on every target: the command rules check every target before any runs, and one approval covers the sweep. At most 8 hosts by default; each host's output is capped at half of exec's.

参数类型必填说明
commandstring是command to run on every target
hostsarray of string (optional)否aliases or node_ids
tagsarray of string (optional)否select by tag instead
timeoutinteger (minimum 1) (optional)否
concurrencyinteger (minimum 1, maximum 32)否 (默认 5)
confirmboolean否confirm a high-risk command (默认 false)

shell_open Open shell session 开启或关闭会话

Open a persistent shell session; cwd, variables and functions persist.

bash on SSH hosts; on agent nodes the node's shell (PowerShell on Windows). For continuous debugging: cd somewhere, source an env, activate a venv, then keep working. Close it with shell_close; idle sessions are reaped after 30 min. Starts a shell process and runs nothing else; needs fleet.exec; at most 4 sessions per host; refused when the command rules are an allowlist.

参数类型必填说明
hoststring是alias or node_id from list_hosts
cwdstring (optional)否initial working directory
envobject of string (optional)否initial environment
shellstring (optional)否agent nodes only: pwsh or powershell on Windows, bash, sh or zsh elsewhere; the node's default when omitted

shell_run Run in shell session 破坏性

Run a command in an open session; returns exit code, merged output and cwd.

A command inside a session cannot be interrupted on its own: a timeout destroys the session. Use job_start for long work. Side effects are whatever the command does; needs fleet.exec, and the command rules, approvals and output cap of exec apply.

参数类型必填说明
session_idstring是id from shell_open
commandstring是command to run in that session
timeoutinteger (minimum 1) (optional)否
confirmboolean否confirm a high-risk command (默认 false)

shell_close Close shell session 开启或关闭会话

Close a persistent shell session and end its shell process. Needs fleet.exec.

参数类型必填说明
session_idstring是session to close

文件与传输

list_dir List directory 只读

List a remote directory: type, size, mode, mtime. Optionally recursive.

Read-only; needs fleet.read. Recursion goes 4 levels deep at most and the answer holds at most 2000 entries.

参数类型必填说明
hoststring是alias or node_id from list_hosts
pathstring否absolute path, or relative to workdir (默认 ".")
depthinteger (minimum 1, maximum 4)否recursion depth (默认 1)
show_hiddenboolean否include dotfiles (默认 false)

read_file Read file 只读

Read a remote file. Text is decoded as UTF-8; set binary=true for base64.

Read-only; needs fleet.read. Returns at most max_bytes per call, never more than the gateway's file limit (4 MB by default); continue from next_offset.

参数类型必填说明
hoststring是alias or node_id from list_hosts
pathstring是remote file path
max_bytesinteger (minimum 1)否max bytes to read (默认 200000)
offsetinteger (minimum 0)否byte offset (默认 0)
binaryboolean否return base64 for binary files (默认 false)

write_file Write file 破坏性

Write a remote file: create, overwrite or append; parent directories are created.

Overwrites are backed up next to the file (<path>.bak-<time>) unless backup=false. Needs fleet.write and may need a person's approval; content is limited to the gateway's file limit (4 MB by default).

Config edits: read_file, write_file with backup, validate with exec (nginx -t, sshd -t), then reload.

参数类型必填说明
hoststring是alias or node_id from list_hosts
pathstring是target path; parent dirs are created
contentstring是file content
appendboolean否append instead of overwrite (默认 false)
base64_contentboolean否content is base64-encoded (默认 false)
modestring (optional)否octal mode, e.g. '0644'
backupboolean否back up before overwriting (默认 true)

delete_path Delete path 破坏性

Delete a remote file, or a directory tree with recursive=true.

Irreversible: nothing is backed up. Requires confirm=true and fleet.write, and may need a person's approval; refuses system directories (/, /etc, /usr, /home, ...).

参数类型必填说明
hoststring是alias or node_id from list_hosts
pathstring是absolute path to delete
recursiveboolean否recurse into directories (默认 false)
confirmboolean否must be true to proceed (默认 false)

copy_between_hosts Copy file between hosts 破坏性

Copy a file between two hosts through the gateway.

Replaces the destination file without a backup. Needs fleet.read on the source and fleet.write on the destination; the file must fit the gateway's file limit (4 MB by default). For large files use transfer_start between agent nodes, or exec with rsync/scp directly between the hosts.

参数类型必填说明
src_hoststring是source host
src_pathstring是source path
dst_hoststring是destination host
dst_pathstring是destination path

transfer_start Start file transfer 破坏性

Copy a file or a whole directory between two agent nodes, of any size.

Runs in the background through the gateway; returns when done or after wait_s with a transfer_id (follow it with transfer_status). Each file appears at its target only complete and checked (SHA-256); links are skipped. Writes on the destination node and replaces files already there only with overwrite=true. Both nodes' policies apply: read (fleet.read) at the source, write (fleet.write) at the destination. For SSH hosts use copy_between_hosts or rsync with exec.

参数类型必填说明
src_hoststring是source agent node
src_pathstring是a file or a directory there
dst_hoststring是destination agent node
dst_pathstring是where it goes: the file's new path (a directory that exists, or a path ending in / or \, receives the file inside it), or the directory to copy into
overwriteboolean否replace files already there (默认 false)
wait_sinteger (minimum 0, maximum 60)否wait this long for it to finish (默认 20)

transfer_status Transfer status 只读

Show a transfer's progress: files and bytes done, rate, what failed or was skipped.

Read-only; optionally waits up to wait_s for the transfer to finish.

参数类型必填说明
transfer_idstring是from transfer_start
wait_sinteger (minimum 0, maximum 60)否wait this long for it to finish (默认 0)

transfer_cancel Cancel transfer 破坏性

Stop a transfer. Files already finished stay; the one in progress does not appear.

参数类型必填说明
transfer_idstring是from transfer_start

后台任务、日志、隧道与节点

job_start Start background job 破坏性

Start a detached job on the node and return a job_id immediately.

The job outlives the SSH connection, the gateway restart and this conversation. stdout/stderr land in ~/.letkite/jobs/<job_id>/ on the node. Use this for builds, backups, bulk transfers, benchmarks. Side effects are whatever the command does; needs fleet.exec, and the command rules and approvals of exec apply.

参数类型必填说明
hoststring是alias or node_id from list_hosts
commandstring是command to run in the background
labelstring否human-readable label
cwdstring (optional)否working directory
envobject of string (optional)否extra environment
confirmboolean否confirm a high-risk command (默认 false)
shellstring (optional)否agent nodes only: sh, bash, zsh, pwsh, powershell or cmd; the node's default when omitted (host_facts lists them)

job_status Job status 只读

Show a job's state: running / finished / aborted, plus exit code and output sizes.

Omit job_id to list every job on the host. Read-only; needs fleet.read.

参数类型必填说明
hoststring是alias or node_id from list_hosts
job_idstring (optional)否omit to list all jobs on the host

job_output Read job output 只读

Read a job's stdout or stderr. Returns next_offset for a gap-free incremental follow-up.

Read-only; needs fleet.read; at most 32 KB per call by default.

参数类型必填说明
hoststring是alias or node_id from list_hosts
job_idstring是id from job_start
streamstring否stdout or stderr (默认 "stdout")
offsetinteger (minimum 0)否byte offset; pass back next_offset for incremental reads (默认 0)
max_bytesinteger (minimum 1)否max bytes to return (默认 64000)
tailboolean否ignore offset, return the tail (默认 false)

job_kill Kill job 破坏性

Send a signal (TERM by default) to the job's whole process group.

Usually ends the job and everything it started. Needs fleet.exec.

参数类型必填说明
hoststring是alias or node_id from list_hosts
job_idstring是job to terminate
signalstring否TERM / KILL / INT / HUP (默认 "TERM")

job_purge Purge job 破坏性

Delete a finished job's directory and logs. Running jobs are left alone.

Its output cannot be read afterwards. Needs fleet.write.

参数类型必填说明
hoststring是alias or node_id from list_hosts
job_idstring是finished job to purge

log_open Open log subscription 开启或关闭会话

Start collecting a log on the gateway; read it later with log_read.

Subscribe first, trigger something with exec, then read what appeared. That ordering is not possible with exec alone. On a Windows agent node a channel gives one line per event: time, level, provider, id and message. Starts a tail (journalctl, logread, an event log reader) on the node and changes nothing else; needs fleet.read. Close it with log_close.

参数类型必填说明
hoststring是alias or node_id from list_hosts
pathstring (optional)否log file path (or unit, or channel)
unitstring (optional)否systemd unit (Linux)
channelstring (optional)否Windows event log on agent nodes: System, Application, Security, or a channel such as Microsoft-Windows-PowerShell/Operational
syslogboolean否the system log of an agent node without journald: OpenWrt routers (logread) (默认 false)
grepstring (optional)否line filter, ERE
initial_linesinteger (minimum 0, maximum 500)否initial history lines (默认 50)

log_read Read log lines 只读

Read new log lines. dropped_lines > 0 means the ring buffer overflowed.

Read-only; needs fleet.read; at most 2000 lines per call.

参数类型必填说明
sub_idstring是id from log_open
since_seqinteger (minimum 0)否next_seq from the previous call, 0 to start (默认 0)
limitinteger (minimum 1, maximum 2000)否max lines (默认 300)

log_close Close log subscription 开启或关闭会话

Close a subscription and kill the remote tail/journalctl.

参数类型必填说明
sub_idstring是subscription to close

tunnel_open Open tunnel 开启或关闭会话

Forward a node-local port to the gateway.

Pair with tunnel_http to reach admin interfaces bound to 127.0.0.1 on the node (Grafana, Prometheus, pprof, database HTTP gateways), or a device on the node's network. On agent nodes the node's ceiling.toml (tunnel_targets) and this connection's policy decide which addresses and ports are reachable; a refusal says so. The gateway listens on its own loopback only and closes the tunnel after 1 hour; needs fleet.admin and may need a person's approval.

参数类型必填说明
hoststring是alias or node_id from list_hosts
remote_portinteger (minimum 1, maximum 65535)是remote port
remote_hoststring否target address as seen from the node (默认 "127.0.0.1")

tunnel_http HTTP through tunnel 破坏性

Send one HTTP request through an open tunnel; returns status, headers and body.

Any method goes: a POST, PUT or DELETE changes whatever the service behind the tunnel does with it. Needs fleet.admin; the body read back is cut at 32 KB by default.

参数类型必填说明
tunnel_idstring是id from tunnel_open
pathstring否request path (默认 "/")
methodstring否HTTP method (默认 "GET")
headersobject of string (optional)否extra headers
bodystring (optional)否request body
timeoutinteger (minimum 1, maximum 120)否 (默认 20)

tunnel_close Close tunnel 开启或关闭会话

Close a tunnel; requests through it stop working. Needs fleet.admin.

参数类型必填说明
tunnel_idstring是tunnel to close

wake_node Wake node 破坏性

Wake a sleeping agent node with Wake-on-LAN, through another node of the account.

The other node must be online on the same network (same subnet, same public address) and the sleeping machine's network card set to wake on a magic packet. Powers the machine on; needs fleet.exec on it and may need a person's approval.

参数类型必填说明
hoststring是a sleeping agent node (list_hosts says asleep or offline)
waitinteger (minimum 0, maximum 180)否seconds to wait for it to connect (默认 60)

wake_device Wake LAN device 破坏性

Wake a machine with no agent (a NAS, a PC) by Wake-on-LAN.

via sends the magic packet to the broadcast address of one of its own networks. Nothing confirms the machine woke: check it after a minute, e.g. exec ping on via. Its card must be set to wake on a magic packet. Needs fleet.exec on via and may need a person's approval.

参数类型必填说明
viastring是an online agent node on the device's LAN, e.g. the router
macstring是the device's hardware address, aa:bb:cc:dd:ee:ff
networkstring (optional)否which of via's networks the device is on (192.168.1.0/24, or an address in it); needed when via is on more than one

approval_wait Wait for approval 只读

Wait for a person to approve or turn down a call that needs approval.

Approved: call the same tool again with exactly the same arguments; the approval is for that call, once. Turned down or expired: do not retry, ask the user instead. Read-only: it only reports the decision.

参数类型必填说明
approval_idstring是the id a call said it is waiting for
wait_sinteger (minimum 0, maximum 60)否wait this long at most for a decision (默认 40)

audit_tail Audit log tail 只读

Tail the gateway audit log: who ran what, where, when (newest last).

Read-only; needs fleet.admin; at most 500 records per call. The gateway's own records are all there; the sign-in service's may arrive up to 100 ms late.

参数类型必填说明
limitinteger (minimum 1, maximum 500)否how many records (默认 50)
eventstring (optional)否only these events: "tool", "agent" (agent.*), "console" ...
hoststring (optional)否only records about this host

定时任务

schedule_create Create schedule 破坏性

Run a command on a node on a schedule, e.g. a backup every night.

Every run starts the command as a detached job, with the same effects as job_start; needs fleet.exec and a plan that includes schedules. Runs under this connection: its policy, command rules and approvals apply at every run (a command that needs a person's approval asks at each run and is skipped if nobody approves). Revoking the connection stops it. Failed and missed runs are emailed to the user. Tell the user what you scheduled and when it next runs.

参数类型必填说明
hoststring是alias or node_id from list_hosts
namestring是what it is, e.g. nightly backup
cronstring是five fields "minute hour day-of-month month day-of-week", e.g. "0 3 * * *" (03:00 every day), "*/15 9-17 * * 1-5", or @daily / @hourly
commandstring是the command; it runs as a detached job
tzstring否IANA time zone of the times, e.g. Asia/Singapore (默认 "UTC")
shellstring (optional)否agent nodes only: sh, bash, zsh, pwsh, powershell or cmd; the node's default when omitted (host_facts lists them)
timeout_sinteger (minimum 10, maximum 86400)否stop the run after this long (默认 3600)
wakeboolean否wake the machine first when it sleeps (Wake-on-LAN through a node on its network) (默认 true)
catch_upboolean否a run missed while the gateway was down runs late instead of being skipped (默认 false)
confirmboolean否confirm a high-risk command (默认 false)

schedule_list List schedules 只读

List the schedules this connection made, with their next and last run.

schedule_delete Delete schedule 破坏性

Remove a schedule this connection made; no further runs, a run in progress finishes.

参数类型必填说明
schedule_idstring是from schedule_create or schedule_list

schedule_runs Schedule run history 只读

List a schedule's recent runs: when, how (woken?), exit code, the end of the output.

Also says why a run failed, was missed or skipped. Read-only.

参数类型必填说明
schedule_idstring是from schedule_create or schedule_list
limitinteger (minimum 1, maximum 50)否most recent first (默认 5)

Web 分享

share_create Create web share 开启或关闭会话

Publish a web service running on a node at an https address, for this account.

A dev server or an admin page, for the people of this account: they sign in to open it. No ports opened on the node's router. The policy's tunnel_targets and the node's ceiling decide what can be shared; the person who connected you needs the permission shares.create there, and it may need a person's approval. Delete it with share_delete when done; it expires by itself after hours (24 by default, 30 days at most).

参数类型必填说明
hoststring是alias or node_id of the node the service runs on
portinteger (minimum 1, maximum 65535)是the service's port on that node
target_hoststring否the service's address as the node sees it (默认 "127.0.0.1")
namestring (optional)否the address's first label: https://<name>.<share domain>; random when omitted
hoursnumber (maximum 720)否how long it stays up (默认 24)

share_list List web shares 只读

List the web shares this connection created.

share_delete Delete web share 破坏性

Take a web share down: its address stops answering at once.

参数类型必填说明
sharestring是share_id or name from share_create

终端

terminal_open Open terminal 破坏性

Open an interactive terminal (a shell on a pseudo-terminal) on a node.

For programs that need one: prompts that ask, menus, sign-ins (gh auth login), REPLs, top, less. Prefer exec or shell_run for plain commands. Give command= to start one right away. Type with terminal_send, close with terminal_close. Starts a shell, and with command= runs that command at once (command rules and approvals apply as for exec); needs fleet.exec; at most 8 terminals per connection; refused when the command rules are an allowlist.

Each answer has the output since the last call and, when the program looks like it asks something, waiting_for: {kind: choice | confirm | password | device_code | text, prompt, ...} with how to answer.

参数类型必填说明
hoststring是alias or node_id: an agent node (Linux, macOS, Windows) or an SSH node
colsinteger (minimum 20, maximum 500)否width (默认 120)
rowsinteger (minimum 5, maximum 200)否height (默认 40)
shellstring (optional)否sh, bash or zsh; pwsh, powershell or cmd on Windows; the node's default when omitted (bash over SSH, PowerShell on Windows)
cwdstring (optional)否working directory
commandstring (optional)否typed at the prompt once it shows, as terminal_send would (enter included)
untilstring (optional)否wait until this shows up in the output (any case), or regex:<expression>; the call returns once it does, when the terminal ends, when the program stops to ask something else, or after wait_ms (up to 10 minutes); with command
wait_msinteger (minimum 0, maximum 600000)否how long to wait for the prompt (for the command's output with command) (默认 3000)
confirmboolean否confirm a high-risk command (默认 false)

terminal_send Type into terminal 破坏性

Type into a terminal and return what it printed since the last call.

Returns once the output stops with the cursor after a prompt (or a menu) on screen, or with until once that text shows up. waiting_for says what the program asks, if it asks. Keystrokes act as typed (enter runs a command, ctrl+c interrupts); typed text passes the command rules and approvals; needs fleet.exec.

参数类型必填说明
terminal_idstring是from terminal_open
textstring (optional)否typed as is; end a command with keys=["enter"] or \r
keysarray of string (optional)否pressed after the text, in order: enter, tab, escape, backspace, up, down, left, right, home, end, pageup, pagedown, delete, f1-f12, ctrl+c, ctrl+d, alt+x
untilstring (optional)否wait until this shows up in the output (any case), or regex:<expression>; the call returns once it does, when the terminal ends, when the program stops to ask something else, or after wait_ms (up to 10 minutes)
wait_msinteger (minimum 0, maximum 600000)否wait this long at most: for the output to stop with a prompt on screen, or for until (默认 3000)
confirmboolean否confirm a high-risk command (默认 false)

terminal_read Read terminal output 只读

Show what a terminal printed since the last call, without typing.

With until, wait for it: a sign-in finishing, a build printing "done". Read-only; needs fleet.read.

参数类型必填说明
terminal_idstring是from terminal_open
untilstring (optional)否wait until this shows up in the output (any case), or regex:<expression>; the call returns once it does, when the terminal ends, when the program stops to ask something else, or after wait_ms (up to 10 minutes)
wait_msinteger (minimum 0, maximum 600000)否wait this long at most for output (for until) (默认 0)

terminal_ask Ask person to type 破坏性

Hand the program's next answer to the person who connected you.

A password, a passphrase, a one-time code, anything that should not pass through the conversation. They get a notification (phone, email) and type it in the LetKite console; it goes into the terminal followed by enter. You get what the program printed after it and how many characters were typed, never the text (masked if the program shows it). Needs fleet.exec.

Waits for them up to wait_ms, sending progress meanwhile; if they have not answered by then, call terminal_ask again to keep waiting for the same request (it stays open 15 minutes). Tell the user in the conversation that the console is waiting for them.

参数类型必填说明
terminal_idstring是from terminal_open
promptstring (maxLength 300) (optional)否what to tell the person, when the program's own prompt does not say it
untilstring (optional)否wait until this shows up in the output (any case), or regex:<expression>; the call returns once it does, when the terminal ends, when the program stops to ask something else, or after wait_ms (up to 10 minutes); after the answer
wait_msinteger (minimum 1000, maximum 600000)否how long to wait for the person (then for the output) (默认 300000)

terminal_resize Resize terminal 开启或关闭会话

Change a terminal's size; full-screen programs redraw.

参数类型必填说明
terminal_idstring是from terminal_open
colsinteger (minimum 20, maximum 500)是width
rowsinteger (minimum 5, maximum 200)是height

terminal_close Close terminal 破坏性

Close a terminal; its shell and what runs in it end. Needs fleet.exec.

参数类型必填说明
terminal_idstring是from terminal_open

屏幕

gui_observe Observe screen 只读

仅当连接的策略开启屏幕工具时才会列出。

Look at a window on an agent node (Windows), or the whole screen: who and what is on it.

The tree lists elements with short ids (e3) to use in gui_act; prefer it to images, which cost far more context. The first line says whether the desktop is active, locked or taken over at the machine. Read-only: nothing on the desktop changes; needs the connection's gui level observe or act.

参数类型必填说明
hoststring是alias or node_id of an agent node (list_hosts)
windowstring (optional)否window id from a previous gui_observe (w1); default: the focused window
appstring (optional)否or the app whose window to use, as the window list names it
screenboolean否or the whole screen, every display: a picture only, and only for a connection that may see every app; a point in it works in gui_act on the window there (默认 false)
modestring否tree: the accessibility tree, cheapest (default); text: OCR words with positions, for canvases and remote desktops; image: a screenshot; marks: both (默认 "tree")
regionarray of integer (optional)否[x, y, width, height] in screen pixels: only this part
tree_rootstring (optional)否only this element's subtree, e.g. the next page of a long list
child_offsetinteger (minimum 0)否with tree_root: from this child on (默认 0)
max_nodesinteger (minimum 10, maximum 2000) (optional)否elements at most
include_textboolean否also static text elements (默认 false)
last_image_idstring (optional)否image id you already have: if nothing changed, no new image is sent
max_long_edgeinteger (minimum 200, maximum 2576) (optional)否image size limit, pixels

gui_zoom Zoom into screen 只读

仅当连接的策略开启屏幕工具时才会列出。

Capture part of a window (or of the screen) at its own resolution, to read small text.

Read-only; same permission as gui_observe.

参数类型必填说明
hoststring是alias or node_id of an agent node (list_hosts)
regionarray of integer是[x, y, width, height] in screen pixels
windowstring (optional)否window id from a previous gui_observe (w1); default: the focused window
appstring (optional)否or the app whose window to use, as the window list names it
screenboolean否or the whole screen, every display: a picture only, and only for a connection that may see every app; a point in it works in gui_act on the window there (默认 false)

gui_act Act on screen 破坏性

仅当连接的策略开启屏幕工具时才会列出。

Click, type and press keys in a window on an agent node, by element ids from gui_observe.

Points in an image gui_observe sent work too. This acts as a person at the machine would: whatever a click or keystroke does (send, delete, close) happens. Needs the connection's gui level act and may need a person's approval.

Batch the steps of one task; waiting happens on the node ({"wait": ..}), so there is no need to observe in between. Returns what changed.

参数类型必填说明
hoststring是alias or node_id of an agent node (list_hosts)
stepsarray of object是run in order on the node, stopping at the first that fails: {"click": "e3"} (or "double_click", "right_click"; "button", "count", "modifiers"), {"click": {"image": "i2", "x": 40, "y": 12}}, {"type": "text", "into": "e2", "replace": true}, {"key": "ctrl+s", "repeat": 1}, {"scroll": "e4", "dy": 3} (or "until_visible": "e40"), {"drag": "e10", "to": "e20"}, {"set_value": "e2", "value": "x"}, {"focus": "w2"}, {"launch": "app", "args": []}, {"close": "w2"} (or true: the target window; as its close button does), {"wait": {"appears": "e7"}} (or {"role": "dialog", "name": "Save"}; "disappears", "title": "regex", "stable_ms": 500; "timeout_ms")
windowstring (optional)否window id from a previous gui_observe (w1); default: the focused window
appstring (optional)否or the app whose window to use, as the window list names it
observestring否what to return afterwards: delta (what changed, default), tree, image or none (默认 "delta")
base_snapshotstring (optional)否the delta is against this snapshot; default: the latest
timeoutinteger (minimum 1, maximum 300)否seconds for all steps (默认 60)