AI会话本地控制中心

Agentify Desktop是一个本地AI会话控制中心,支持管理多个AI订阅的浏览器会话,并集成MCP工具进行自动化操作。

  • by agentify-sh
  • JavaScript
  • 本地部署
  • 571 星标
  • 更新于
在 GitHub 查看 agentify-sh/desktop

使用说明

代理桌面

Agentify Desktop是人工智能网络会话的本地控制中心。它允许支持MCP的工具(如Codex、Claude Code和OpenCode)使用您已经登录的AI订阅,同时在您的机器上保留浏览器状态、文件和自动化。

它的作用

  • 打开本地代理控制中心。
  • 管理ChatGPT、Claude、Perplexity、Gemini、Google AI Studio和Grok的登录浏览器会话。
  • 公开MCP工具,用于查询选项卡、读取页面、导航、上传文件、保存工件和重用稳定的选项卡键。
  • 支持并行选项卡,因此不同的代理或任务可以使用单独的会话。
  • 在请求时将本地repo/文件上下文打包到提示中。
  • 将生成的图像/文件保存在本地,以便在后续提示中重复使用。

MCP设置后的提示示例

一旦Agentify Desktop运行并注册到您的MCP客户端,您就可以请求以下工作流:

  • “使用带有密钥的代理 repo-triage 向ChatGPT询问对此错误的第二意见,然后将其答案与您自己的分析进行比较。”
  • “用键打开困惑选项卡 research-auth-flow 并研究桌面应用程序的当前OAuth最佳实践。”
  • “在单独的代理选项卡中将此实施计划发送给Claude,并总结发现的任何风险。”
  • 使用Agentify生成三个UI概念图像,将图像保存为工件,并返回本地文件路径
  • 在单独的“代理”选项卡中打开Grok和ChatGPT,要求两者审查此API设计,然后比较权衡
  • “将此仓库打包到上下文中,要求ChatGPT识别有风险的文件,并将对话保存在稳定的tab键下以供后续跟进。”
  • “通过Agentify阅读当前的ChatGPT页面,并将对话转化为可操作的TODO。”

需求

  • Node.js 20或更新版本
  • 如果你想集成工具,可以使用支持MCP的CLI:Codex、Claude Code或OpenCode

支持的网站

  • chatgpt.com
  • claude.ai
  • perplexity.ai
  • aistudio.google.com
  • gemini.google.com
  • grok.com

首选安装和运行

启动桌面GUI而不克隆此仓库:

npx @agentify/desktop

等效的显式GUI命令:

npx @agentify/desktop gui

如果您更喜欢全局安装:

npm install -g @agentify/desktop
agentify-desktop

如果你想要旧的仓库克隆和本地源工作流,请使用 开发_ FROM_SOURCE.md.

MCP服务器

通过stdio运行MCP服务器:

npx @agentify/desktop mcp

调试时显示新创建的浏览器选项卡:

npx @agentify/desktop mcp --show-tabs

全局安装:

agentify-desktop-mcp
agentify-desktop-mcp --show-tabs

注册MCP客户端

食品法典:

codex mcp add agentify-desktop -- npx -y @agentify/desktop mcp

克劳德代码:

claude mcp add --transport stdio agentify-desktop -- npx -y @agentify/desktop mcp

OpenCode配置示例:

{
  "mcp": {
    "agentify-desktop": {
      "type": "local",
      "command": ["npx", "-y", "@agentify/desktop", "mcp"],
      "enabled": true
    }
  }
}

使用 --show-tabs 在调试时的命令末尾:

codex mcp add agentify-desktop -- npx -y @agentify/desktop mcp --show-tabs

首次运行

  1. 启动应用程序:
npx @agentify/desktop
  1. 在控制中心,创建或显示ChatGPT选项卡。

  2. 在浏览器窗口中登录到目标供应商。

  3. 在CLI中注册MCP服务器。

  4. 请您的MCP客户使用Agentify:

Use Agentify Desktop with tab key repo-triage.
Ask ChatGPT to summarize this repo in 8 bullets and list the top 3 risky areas to change first.
Return the answer and keep the tab key stable for follow-ups.

核心回路是:

  • 在本地保持真正的登录浏览器会话打开
  • 从MCP客户端调用它
  • 在后续提示中重用稳定的制表符键

实用的MCP工具

MCP服务器注册 agentify_* 工具,包括:

  • agentify_query:向稳定选项卡发送提示并返回助手响应。
  • agentify_read_page:从选项卡中读取可见的页面文本。
  • agentify_navigate:将选项卡导航到URL。
  • agentify_ensure_ready:等待登录、验证码或用户界面准备就绪。
  • agentify_show / agentify_hide:将窗口向前或最小化。
  • agentify_status:检查选项卡和准备状态。
  • agentify_tabs, agentify_tab_create, agentify_tab_close:管理选项卡。
  • agentify_save_artifacts, agentify_list_artifacts, agentify_open_artifacts_folder:管理生成的文件/图像。
  • agentify_save_bundle, agentify_list_bundles:保存和重用上下文包。
  • agentify_add_watch_folder, agentify_list_watch_folders, agentify_remove_watch_folder:管理关注的文件夹。

工件工作流程

在稳定选项卡中生成图像或文件:

{
  "tool": "agentify_query",
  "arguments": {
    "key": "ui-concepts",
    "prompt": "Generate 3 clean UI concept images for a compact desktop developer tool. Keep backgrounds neutral and avoid text."
  }
}

将生成的图像保存在本地:

{
  "tool": "agentify_save_artifacts",
  "arguments": {
    "key": "ui-concepts",
    "mode": "images",
    "maxImages": 3
  }
}

在后续操作中重新附加一个返回的文件路径:

{
  "tool": "agentify_query",
  "arguments": {
    "key": "ui-concepts",
    "prompt": "Use the attached concept image and create a more minimal variant with stronger contrast.",
    "attachments": ["/absolute/path/to/concept.png"]
  }
}

代码库上下文工作流

要求Agentify将本地文件或文件夹打包到提示中:

{
  "tool": "agentify_query",
  "arguments": {
    "key": "repo-review",
    "prompt": "Summarize this codebase in 8 bullets and list the top 3 risky files to change first.",
    "contextPaths": ["/absolute/path/to/repo"]
  }
}

控件上下文大小:

{
  "tool": "agentify_query",
  "arguments": {
    "key": "repo-review",
    "prompt": "Focus only on rendering and state management.",
    "contextPaths": ["/absolute/path/to/repo"],
    "maxContextChars": 120000,
    "maxContextFiles": 80,
    "maxContextInlineFiles": 30
  }
}

工具结果包括 packedContextSummary 因此,您可以看到包含、附加或跳过的内容。

浏览器后端

Agentify Desktop支持两个浏览器后端:

  • chrome-cdp:通过Chrome DevTools协议启动或连接到Chrome系列浏览器。这是默认和推荐的后端。
  • electron:由代理桌面管理的嵌入式窗口。仅将此用作明确的回退。

Chrome CDP是默认设置,因为SSO提供商通常会阻止嵌入式Electron登录:

npx @agentify/desktop

可选的Chrome CDP设置:

AGENTIFY_DESKTOP_CHROME_DEBUG_PORT=9333 npx @agentify/desktop
AGENTIFY_DESKTOP_CHROME_BIN="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" npx @agentify/desktop

您还可以传递GUI标志:

npx @agentify/desktop gui --browser-backend chrome-cdp
npx @agentify/desktop gui --browser-backend electron
npx @agentify/desktop gui --chrome-debug-port 9333

Chrome CDP配置文件模式:

  • Agentify isolated profile:最安全的默认设置。
  • Existing Chrome profile:重复使用您的正常Chrome会话。请先完全退出Chrome,这样配置文件就不会被锁定。

验证码和登录策略

Agentify Desktop不会绕过验证码或使用第三方求解器。如果出现验证或登录挑战,自动化将暂停,将相关窗口向前移动,并等待您手动完成该步骤。

如果您的帐户使用谷歌、微软或苹果SSO,请在控制中心启用身份验证弹出窗口。如果嵌入式登录仍然不可靠,请使用Chrome CDP。

Windows笔记

在Windows上使用Node.js 20或22。Agentify Desktop在CI中针对Windows进行了测试,包括npm CLI启动器路径。

Chrome CDP仍然是Windows上推荐的后端,因为谷歌和微软SSO可以阻止嵌入式Electron登录。Agentify在通常的安装位置和上查找Chrome、Chromium、Brave和Microsoft Edge PATH.

如果Chrome CDP找不到您的浏览器,请显式设置可执行文件:

$env:AGENTIFY_DESKTOP_CHROME_BIN = "C:\Program Files\Google\Chrome\Application\chrome.exe"
npx @agentify/desktop

本地数据和隐私

Agentify Desktop首先是本地的:

  • 本地API绑定到 127.0.0.1.
  • 本地API需要存储在 ~/.agentify-desktop/.
  • 电子浏览器数据存储在 ~/.agentify-desktop/electron-user-data/.
  • Chrome CDP配置文件数据存储在 ~/.agentify-desktop/chrome-user-data/ 除非您选择现有的配置文件。
  • 工件、捆绑包、日志和状态存储在 ~/.agentify-desktop/.

任何有权访问您的计算机帐户的人都可以访问本地会话数据。将计算机帐户视为安全边界。

环境变量

  • AGENTIFY_DESKTOP_STATE_DIR:覆盖本地状态目录。
  • AGENTIFY_DESKTOP_PORT:选择本地API端口。
  • AGENTIFY_DESKTOP_SHOW_TABS=true:默认情况下显示新创建的选项卡。
  • AGENTIFY_DESKTOP_MAX_TABS:盖上平行标签。
  • AGENTIFY_DESKTOP_BROWSER_BACKEND=electron|chrome-cdp:选择浏览器后端。
  • AGENTIFY_DESKTOP_CHROME_BIN:选择Chrome/Chromium可执行文件。
  • AGENTIFY_DESKTOP_CHROME_DEBUG_PORT:选择Chrome调试端口。
  • AGENTIFY_DESKTOP_CHROME_PROFILE_MODE=isolated|existing:选择Chrome配置文件模式。
  • AGENTIFY_DESKTOP_CHROME_PROFILE_NAME:选择现有的Chrome配置文件名称。

从源头发展

源代码签出、快速启动脚本使用、本地构建命令和仅源代码调试说明 开发_ FROM_SOURCE.md.

程序包命令

npm包公开了以下命令:

  • agentify-desktop:默认GUI启动器,带 mcp 子命令支持。
  • agentify-desktop-gui:显式GUI别名。
  • agentify-desktop-mcp:显式MCP别名。

示例:

npx @agentify/desktop
npx @agentify/desktop mcp
npx -p @agentify/desktop agentify-desktop-mcp

许可和商标

该代码已获得许可 MPL-2.0该许可证中不包括代理商标和品牌。看 商标.md.