GPUI Agentation

io.github.emmanuel-defreitas由 GitHub 帳號 emmanuel-defreitas 發布v0.6.0更新於 Nov 2, 2026

Read and manage development annotations from a local GPUI app.

已驗證STDIO僅桌面效率與工作流開發者工具

概覽

AI 產生的概覽

由 GPUI 除錯應用程式提供的本機回環 MCP 伺服器,讓編碼代理讀取與管理介面標註,含元素邊界與 Rust 原始碼位置。

可以做什麼
  • 讀取執行中的 GPUI 除錯應用程式裡記錄的標註工作階段與備註,包括元素 ID、標籤、邊界和 Rust 呼叫位置
  • 把回饋匯出為 Markdown,方便貼到代理對話中
  • 依請求逐條處理回饋,並更新備註狀態(待處理、已確認、已解決、已忽略)與回覆串
  • 探索已連線的 MCP 工具,檢視已註冊的畫面與更細緻的目標
適用情境
適合在開發原生 GPUI(Rust)應用程式時使用:與其用文字描述介面問題或貼上截圖,不如直接指向介面元素,並讓編碼代理直接讀取這些備註。
執行需求
需要把這個 crate 加入自己的 GPUI 應用程式,並只在除錯建置中初始化;除錯應用程式須保持執行,並在 Settings → MCP 中開啟伺服器。需要安裝 Xcode 命令列工具的 macOS,以及透過 rustup 安裝的 Rust。端點執行於回環位址,只支援 stdio 的用戶端需使用橋接。未宣告驗證或環境變數。
安裝前請注意
這是開發工具:正式建置不包含標註 API,且只能標註已註冊的目標而非任意像素。備註會持久化到本機 JSON 檔案,代理可修改備註狀態與回覆串,寫入操作應加以核對。回環端點未宣告驗證。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 GPUI Agentation,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[Contributors] [Forks] [Stargazers] [Issues] [MIT License]


[gpui-agentation logo]

gpui-agentation

🎯 Point at a running GPUI app, leave a note, and your coding agent gets the element, its bounds, and its Rust source location.
Explore the docs »

View Demo · Report Bug · Request Feature

Version: 0.6.0. Debug builds only — release builds expose no annotation API. Pinned to gpui-pre =0.3.8.

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Try the Demo
  5. Roadmap
  6. Contributing
  7. License
  8. Contact
  9. Acknowledgments

About The Project

[gpui-agentation dashboard demo]

Agentation annotates web pages through the DOM. A native GPUI window has no DOM, so gpui-agentation registers screens (and optional finer targets) with an ID, label, bounds, and Rust call site, then attaches your note to that.

Use it when you would otherwise describe a UI bug to your agent in words or paste a screenshot. Notes persist to a local JSON file, carry a status (pending, acknowledged, resolved, dismissed) and a reply thread, and an agent reads them over a loopback MCP server or REST/SSE.

It is a development tool. It annotates registered targets, not arbitrary pixels (by default, the whole screen), and release builds do not include it. For production telemetry or session replay, use something else.

(back to top)

Built With

[Rust] [GPUI] [MCP]

(back to top)

Getting Started

Add gpui-agentation to your own GPUI app in three steps: install the crate, initialize once at launch, then mount and wrap your screen.

Prerequisites

  • macOS with Xcode command-line tools
  • Rust via rustup (the repository pins the toolchain)
  • Python 3 (only needed to run the bundled demo)

Ely is bundled, so there is nothing else to install.

Installation

  1. Add the crate with the native feature set:

    sh
    cargo add gpui-agentation --no-default-features --features native
  2. The crate does not exist in release builds, so every call sits behind #[cfg(debug_assertions)] and release returns your content unchanged:

    rust
    // Launch: serve Agentation's assets, then initialize.let app = gpui_platform::application();#[cfg(debug_assertions)]let app = app.with_assets(gpui_agentation::Assets);app.run(|cx| {    #[cfg(debug_assertions)]    gpui_agentation::init(cx).expect("initialize Agentation");    // ...open your window});
    // Window setup: app name, route, notes file, local port. Keep `feedback`// in a field of your root view that carries the same cfg.#[cfg(debug_assertions)]let feedback = gpui_agentation::Agentation::mount(    "My app", "gpui://my-app/home", "target/agentation/feedback.json", 4748, window, cx,)?;
    // Render: wrap the screen in debug builds; release keeps `content` as is.#[cfg(debug_assertions)]let content = self.feedback.root("home", "Home screen", content, window, cx);content
  3. Add target(id, label, child) only where you want finer inspection. Ordinary controls need no wrappers. Agentation handles its Ely setup, assets, and focus internally.

The consumer example keeps all of this in one devtools module. More: setup guide, setup skill for agents, and customization.

(back to top)

Usage

Inspect and annotate

Turn on the power switch, then choose Inspect, Box, Arrow, Pen, Comment, or Textbox. Select an element or draw on the screen. Inspect surfaces the element's ID, label, bounds, and Rust call site.

[Inspecting a registered element]

Draw an arrow (or a box or freehand pen stroke) to point your agent at exactly the right spot.

[Drawing an annotation arrow]

While annotation mode is on, use I / B / A / P / C / T to select a tool. Hover a tool to see its shortcut as an Ely keycap in the tooltip. Ctrl/Cmd+S saves the current draft; Ctrl/Cmd+Z and Ctrl/Cmd+Shift+Z undo and redo annotation changes. Delete/Backspace removes a selected annotation when its text field is not being edited. Text fields retain their ordinary typing and text undo behavior.

Textboxes use plain text with one style and size, preceded by a numbered pin. Click to select and show the bounding box; drag the text or pin to move both. Double-click or press Enter on the selected textbox to edit it. Saving displays the text directly on the canvas without opening a comment. Other numbered pins can be dragged independently of their drawings.

In a floating comment, type @ to choose an existing note or #12 to preview pin 12. Hovering a suggestion or using the arrow keys animates its pin; click, Enter or Tab inserts an @#12 reference. Escape dismisses the list. Right-click an annotation for Edit, Delete and Color actions, with undo support.

Include gpui_agentation::debug_menu() in your host's cx.set_menus(...) list to expose the controls in the native Debug menu. Agentation::root routes those menu commands to the active window. Settings → Toolbar → None hides the embedded toolbar. Toolbar placement persists per application in its notes file and is shared by windows mounted against that file.

Capture feedback

Write a comment and save it. Open Comments → Copy to copy your feedback as Markdown, ready to paste to your agent.

[Copying comments as Markdown]

Move the toolbar out of the way whenever it overlaps the UI you are inspecting.

[Repositioning the toolbar]

Connect your agent

  1. Keep the debug app running.
  2. Open Settings → MCP and turn the server on.
  3. Copy the config into your MCP client.

The endpoint runs on loopback. Clients that require stdio can use the MCP bridge.

  • MCP Registry name: mcp-name: io.github.emmanuel-defreitas/gpui-agentation

For more examples, please refer to the Reference.

Agent skills

Give your coding agent a reusable workflow for installation or exploring a running app's feedback. Both skills live under skills/:

SkillUse it to
gpui-agentation-setupIntegrate the native library into a GPUI app, register screens, and verify debug and release builds.
gpui-agentation-exploreDiscover the connected MCP tools, read sessions and notes, export Markdown, and work through requested feedback with verified status updates.

From a clone of this repository, copy either skill directory into your host project's .agents/skills/ directory, or into ~/.agents/skills/ for personal use across projects. For example, to install the exploration skill in a host:

sh
mkdir -p /path/to/your-app/.agents/skillscp -R skills/gpui-agentation-explore /path/to/your-app/.agents/skills/

In Zed, start a new conversation after copying, then invoke /gpui-agentation-explore or /gpui-agentation-setup. Other agents can load the linked SKILL.md directly or use their supported skill directory. Try: “Use gpui-agentation-explore to discover my app's MCP tools and summarize pending feedback without changing notes.” Skills provide instructions; connect the running debug app's MCP server separately using the steps above.

(back to top)

Try the Demo

Clone the repository and run the bundled demo app:

sh
git clone https://github.com/emmanuel-defreitas/gpui-agentationcd gpui-agentationmake dev
  1. Choose Inspect, Box, Arrow, or Pen.
  2. Select an element or draw, then write a comment and save.
  3. Open Comments → Copy to copy your feedback as Markdown.

For rebuilds on save, enable Settings → Hot reload → Server status. It rebuilds and restarts the app after a successful build; in-memory state resets, saved annotations survive. Demo details

(back to top)

Roadmap

  • Inspect, Box, Arrow, and Pen annotation tools
  • Loopback MCP server plus REST/SSE access
  • Hot reload for rebuild-on-save
  • Add text annotation tool
  • Update Comment annotation UX
  • Add gpui-devtools features from joris-gallot/gpui-devtools
  • Extends AI features from hexuria/gpui-agent
  • Stabilize the API toward 1.0
  • Port MCP tools to a standalone macOS companion app

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/123-amazing-feature)
  3. Commit your Changes (git commit -m 'feat: add amazing feature')
  4. Push to the Branch (git push origin feature/123-amazing-feature)
  5. Open a Pull Request

Changes target dev, then promote through next to main. Run make ci for checks or make help for available commands.

Before promotion, run make release-prepare to calculate the next stable version from conventional commits and synchronize Cargo, the lockfile, Registry metadata, documentation, skills, and site references. Settings, CLI, and MCP versions derive from Cargo at build time. Review that diff and update CHANGELOG.md before committing through the promotion PRs. CI and release tagging reject mismatched versions. See the release policy.

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

Emmanuel De Freitas — @emmanuel-defreitas

Project Link: https://github.com/emmanuel-defreitas/gpui-agentation

(back to top)

Acknowledgments

(back to top)

來源:README.md,提交 b0a8442

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:該軟體包類型無法在沙箱中執行。

版本歷史

5
  1. v0.6.0最新Oct 26, 2026
  2. v0.5.1Oct 23, 2026
  3. v0.4.0Oct 21, 2026
  4. v0.3.0Oct 21, 2026
  5. v0.2.0Oct 20, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分