mcpField
L
lasso

lasso

github.com/execution-associatesAgent 工作流7126 次安装1 天前更新
代码仓库

关于 lasso

lasso 面向 Agent,可管理可连接主机上的编码 Agent,并通过浏览器界面供人类查看。它提供 MCP 工具来管理 Agent 和主机、通知人类、展示文件,以及控制共享的 Chromium 浏览器。

主要功能

  1. 01创建和管理编码 Agent
  2. 02查看 Agent 与可连接主机
  3. 03通知人类并展示文件
  4. 04控制共享的 Chromium 浏览器
  5. 05管理浏览器配置和标签页

适用场景

  1. 01跨多个仓库启动编码 Agent
  2. 02查看 Agent 状态并关闭 Agent
  3. 03展示文件供人类审阅
  4. 04在共享 Chromium 中执行浏览器任务

MCP 相关

lasso 提供两个 MCP 服务:一个用于管理 Agent、主机、通知、文件和浏览器标签页;另一个提供导航、点击、截图和网络检查等浏览器工具。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/execution-associates/lasso --skill lasso

安装后在 Claude Code 中输入/lasso确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
README.md
NOTICE
.gitignore
CLAUDE.md
.claude/
settings.json
.github/workflows/
release.yml
ci.yml
brand/icon/
build.py
docs/assets/architecture/
lasso.reladraw
docs/concepts/
agents.md
notifications.md
shared-browser.md
index.md
hosts.md
docs/deployment/
cloudflare.md
index.md
tailnet.md
systemd.md
updating.md
docs/design/
agent-records.md
input-dial.md
file-viewer-host.md
chat-view.md
mcp-cli.md
agent-scope.md
per-tab-hosts.md
shared-browser.md
notifications.md
sidebar-layout.md

详细介绍

将 lasso 用作 Agent

lasso 在一台机器上运行,并管理一组服务:通过 herdr 为人类提供浏览器 UI,并为你提供 MCP 服务。通过它,你可以在 lasso 能访问的任意主机上创建其他编码 Agent,查找并关闭 Agent(包括你自己),通知人类,向他们展示文件,并操控他们可以实时观看的真实 Chromium。

完整文档:本仓库中的 docs/,从 docs/index.md 开始。工具参考见 docs/mcp/tools.md。

如何连接

通常由 lasso connect 注册两个 MCP 服务:

服务URL用途
lasso<lasso>/mcpAgent、主机、notify、open_file、浏览器配置文件和标签页
lasso-browser<lasso>/browser-mcp针对共享浏览器使用 chrome-devtools-mcp 的工具(navigate、click、fill、screenshot、console、network)

如果缺少工具,请检查 claude mcp list(或你的 CLI 对应命令),并请人类运行 lasso connect。每个 MCP 工具也有对应的 shell 命令:lasso mcp 会列出这些工具,lasso mcp <tool> -h 会显示标志;lasso notify、lasso open 和 lasso closeme 是常用工具的快捷命令。

重要规则

  • lasso 不会与 Agent 通信。 它会创建、列出、检查并关闭 Agent。若要向其他 Agent 提示词发送内容、读取其屏幕或等待它,请使用 herdr(herdr agent prompt / read / wait)或你所用框架自带的 Agent 消息功能。
  • 你必须自行传入 $HERDR_PANE_ID。 MCP 服务运行在 lasso 进程中,无法读取你的环境变量。将其作为 pane_id 传给 whoami、notify、open_file 和 close_agent。
  • host 默认为你自己的主机,而非 lasso 所在主机。只有要在其他机器上操作时才传入主机,而且只能传入 list_hosts 返回的主机。
  • 列表为空通常是作用范围受限,并非服务中断。 你的凭据会限制你可查看的主机。
  • 使用 close_agent(或 lasso closeme)关闭 lasso Agent,切勿使用 herdr pane close。 直接关闭窗格会留下 Agent 记录和已暂存的提示词文件。

创建 Agent

  1. 使用 list_hosts 选择一台主机(不传 host 表示选择你自己的主机)。状态为 probing 或 timeout 的条目并不代表主机已宕机;稍后重试,或传入 refresh: true。
  2. 对于 git Agent,使用 list_repos 获取仓库路径,并使用 list_branches 获取基础分支。
  3. 使用 create_agent:
    • type:git(基于 base_branch 新建分支并创建全新的工作树;默认使用仓库的 HEAD)或 scratch(空工作区)。
    • agent:claude(默认)、codex、opencode、omp 或 pi。可选参数:model、effort、extra_args。
    • prompt:初始任务。省略后,CLI 会以空闲状态启动,供人类使用。
    • title、branch_name、branch_prefix、notes(写入工作目录中的 NOTES.md)、plan_mode(claude、opencode、omp)、advisor(omp)。
    • focus: true 会将人类的视图切换到新窗格;默认情况下视图保持不变。

命令会立即返回 Agent 的 id、工作区和根窗格;Agent 会异步启动。使用 get_agent 查看状态(working、idle、blocked、unknown 或 failed)。list_agents 也会显示 lasso 未创建的外部 herdr 会话;可通过 sidebar_name 或 root_pane 操作这些会话。

若要让多个仓库更新到最新状态,请对每个仓库分别调用一次 create_agent。

完成工作并关闭自己

lasso closeme                 # close the calling agent (uses $HERDR_PANE_ID)

或者通过 MCP 操作:使用 close_agent,将 pane_id 设为你的 $HERDR_PANE_ID;也可以先调用 whoami,然后使用返回的 id 和 host 调用 close_agent。remove_worktree: true 还会删除 git Agent 的工作树并丢弃未提交的工作,因此只有在工作已提交或推送后才使用此选项。

联系人类

notify 会向他们的手机发送通知,即使手机处于锁定状态也一样。只有在确实需要联系他们时才使用:需要由他们做出的决定、阻塞进度的问题,或他们离开期间完成的长时间任务。此工具没有频率限制,因此每次调用都会让手机振动。

lasso notify "the migration drops 2 columns. Safe to run on prod?"

检查结果:sent: false(或 CLI 返回非零退出码)表示没有注册设备,也没有人收到通知。不要声称已通知他们。

open_file 会在他们终端旁边的 Files 面板中打开文件,该面板会显示在每个可见的 lasso 标签页中。当他们说“帮我打开”或你希望他们查看某些内容时,可使用此工具。传入绝对路径或 ~/ 路径(CLI 会解析相对路径),以及可选的 line。传入目录会在该目录下打开文件树。检查 delivered:0 表示没有打开的 lasso 标签页,他们也没有看到文件。

lasso open docs/plan.md -line 40

状态卡片。 在 herdr 侧边栏和 lasso 窗格切换器中的窗格卡片上,用一行文字概述你正在做的事情,并在阶段变化时更新:

herdr pane report-metadata "$HERDR_PANE_ID" --source agent:self --token summary="<what you're doing>" --ttl-ms 1800000

不要使用 herdr pane report-agent;它会覆盖 herdr 自带的状态检测。

共享浏览器

运行在 lasso 设备上的真实 Chromium,人类可以通过 lasso 的 Browser 标签页查看并点击操作。

  • 调用 shared_browser 启动浏览器并获取 /browser-mcp URL(mcp_endpoint)、原始 CDP WebSocket(用于 Playwright 的 connectOverCDP)、profiles_url(普通 GET 请求,用于列出每个配置及其各自的 CDP WebSocket),以及已打开的页面。available: false 或 mcp_available: false 会附带原因。
  • 打开自己的页面(在 lasso-browser 上调用 new_page),不要导航到并非由你打开的页面。人类的标签页会显示最近打开的页面,因此打开页面会让他们切换到该页面。
  • 完成后关闭自己打开的页面。
  • 浏览器中的 localhost 指的是 lasso 的设备,而不是你的设备。
  • 已登录的账号属于人类。 可以阅读;发布、发送、接受或购买则需要先征得他们同意。
  • 配置是彼此独立的 Chromium 实例,各自拥有独立的 Cookie、登录信息和代理。每个 lasso-browser 工具都接受可选的 profile(ID 或显示名称;省略时使用默认配置)。页面 ID 仅属于某个配置,因此每次调用涉及某个页面时,都要传入相同的 profile。使用 list_browser_profiles、create_browser_profile、update_browser_profile、delete_browser_profile 管理配置。
  • 要通过 /mcp 将页面显示在人类的屏幕上,请使用 open_browser_tab;使用 show_browser_tab、list_browser_tabs 和 close_browser_tab 管理已有标签页。

插件工具

已启用的插件会向 /mcp 添加名为 <plugin>__<tool> 的工具。它们会出现在你的工具列表和 lasso mcp 中。在 lasso 上像使用其他工具一样使用它们。

评论

支持 Markdown