Minion
io.github.Apophisss由 GitHub 帳號 Apophisss 發布v1.1.1更新於 Nov 6, 2026
Featherweight Linux desktops for AI agents: read the screen as text, click, type, run any app.
概覽
為 AI 代理提供一個輕量級 Linux 桌面容器,讓它把畫面讀成文字、點擊、輸入並執行任何應用程式。
- 可以做什麼
- 讀取畫面:把視窗控制項列成帶穩定編號的文字,無障礙資訊缺少時以 OCR 補讀,並可截圖並標上編號
- 操作桌面:點擊、輸入、填寫欄位、按鍵、捲動、選擇下拉選項、執行選單指令、填寫開啟/儲存對話框
- 管理桌面:建立、複製、凍結、快照與還原容器,平行執行多個桌面,並在桌面內執行 Python 程式碼
- 使用應用程式與文件:依名稱開啟 130 多個應用程式、安裝套件、把 docx、xlsx、pptx、pdf 讀成文字並轉換格式
- 交還人工處理:開啟瀏覽器即時檢視以接管滑鼠鍵盤、傳輸檔案、共用剪貼簿,並等待人工完成登入
- 錄製與重播:匯出工作階段時間軸或 GIF,或把工作階段轉成不需模型的 Python 重播腳本
- 適用情境
- 適合代理需要操作沒有 API 的真實桌面軟體或網站(例如 LibreOffice、IDE、終端機、Windows 程式)的情況,也適合希望把這些操作隔離在一次性容器中、而不是在自己電腦上執行的情境。
- 執行需求
- 以本機 stdio 程序執行(uvx 或 npx minion-desktop mcp,或 Claude Desktop 擴充套件)。需要 Docker、OrbStack 或 Podman,或在 Linux 上原生執行,用來承載桌面容器。各設定檔首次使用時會下載映像(約 200 MB 至 720 MB)。未宣告任何 API 金鑰或環境變數。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Minion,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
[Minion: instant desktops for AI agents]
Give every AI agent its own computer.
Featherweight Linux desktops (office, dev, research, browser, data, Windows apps) that any agent can use:
Claude, ChatGPT, Gemini, Cursor, VS Code, LangChain, your own code, or a model running on your laptop.
Agents read the screen as text, act in batches or in code, and use any program or website.
[PyPI] [CI] [Python 3.11+] [Zero dependencies] [MCP] [MIT]
English · 简体中文 · 繁體中文 · 한국어 · 日本語 · עברית
Get started
All you need is Docker (or OrbStack or Podman). Then pick one:
1. One click in your AI app:
[Download the Claude Desktop extension] [Install in VS Code] [Add to Cursor] [Install in Visual Studio] [Add to LM Studio] [Install in Goose] [Add to Kiro]
Claude Code: claude plugin marketplace add apophisss/minion && claude plugin install minion@minion. Any other MCP
client: uvx minion-desktop mcp, or npx -y minion-desktop mcp. The buttons, uvx and npx start Minion with
uv (npx can use pipx instead); the Claude Desktop extension needs nothing else.
2. One line that installs Minion and connects every AI app on your computer (Claude Desktop, Claude Code, Cursor, VS Code, Windsurf/Devin, Gemini CLI, Codex, LM Studio, Cline, Kiro):
It ends with minion setup, which checks Docker, prepares a desktop and runs minion connect. Run either one again
any time.
3. From ChatGPT, Claude.ai or Le Chat in the browser: run minion share and paste the URL it prints into the
app's connector settings (how).
Then just ask: "Create an office desktop, write a one-page brief about our Q3 numbers in Writer and save it as brief.docx." Every way to install is in docs/install.md.
▶ Watch the one-minute demo: an agent researches a trip on Wikipedia, makes a budget with a chart and writes the plan as a PDF. 12 tool calls and 2,372 tokens of text; the same steps with screenshots would cost about 36,855. Recorded live with python scripts/demo_video.py, which makes the calls an agent would make.
Why Minion
- 🖥️ Any program, any website. Every desktop is a real Linux computer: browsers, LibreOffice, IDEs, terminals,
file dialogs and installers, plus Windows programs through the
windows(Wine) profile. Open any app by name and it is installed the first time (open gimp,open vscode,open dbeaver, any Debian package), web apps open in the browser (open gmail), and the first open answers with a few tips for the app. 130+ apps by name. - 🧭 Shortcuts through every app.
see --menuslists every menu command with its keyboard shortcut, andmenu "File > Export as PDF"runs one without opening a menu.path ~/out.pdffills any Open/Save dialog. Right-click menus show up insee,button:Savepicks one kind of control, and a button below the fold is scrolled into view. Any document reads as text (read report.docx, xlsx with formulas, pptx, pdf) and converts in one call (convert report.docx pdf). - 🧠 Agents read the screen as text.
seeturns any window into a list of controls with stable@ids, taken from the accessibility tree with OCR as a fallback:@12 button "Save" (210,62). Web pages, editors (with line numbers), terminals, dropdowns with their options, and spreadsheets (row by row:row 2: A2 North · B2 120) all come out as exact text. When pixels matter, screenshots can draw the@idsfor you. - 🎯 Honest actions. Every action waits for the screen to settle (for web pages to load, and while an app says "Loading…") and reports what happened: windows, a page's alert or prompt, files saved or downloaded, a pop-up that took the click. Text targets must really be on screen: a miss fails with the closest candidates instead of clicking something else. Tested on 93 everyday tasks done by AI agents.
- 🪙 Built to save tokens. You get diffs instead of re-reads (
see(changes=true): about 80 tokens instead of about 900). Code mode runs a 50-step GUI loop in one call, crops and half-size screenshots cut image cost, a compact mode shrinks the tool definitions from about 3,300 tokens to 450, and the Agent Skill costs about 100 tokens until it is used. - 🪶 Featherweight. One small container per desktop (Xvfb, a 2-process window manager and taskbar, a small agent), with no VNC and no desktop environment. Desktops are ready in about 1.5 s and use about 60 MB when idle. Idle desktops are frozen automatically (0% CPU) and wake in about 0.2 s.
- 🔌 Works with every agent. One toolset everywhere: MCP (local or remote), function calling for OpenAI, Anthropic, Gemini and local models, HTTP with OpenAPI, a CLI and an Agent Skill for shell agents, Python and TypeScript SDKs, and native adapters for Claude, OpenAI and Gemini computer use.
- ⚡ Parallel by design.
create count=8starts a desktop per worker,forkclones one before a risky step, and sessions keep agents apart. - 🙋 Humans in the loop. A live view in the browser offers one-click take control, moves files both ways (drop them on the screen) and shares the clipboard. Agents can hand off ("please sign in") and wait for Done, and a sign-in saved once by hand starts new desktops signed in.
- 🎞️ Teach once, replay forever. Every action is recorded. Export an HTML timeline or GIF, or turn the session into a Python script that replays it with no model at all.
- 📦 Zero dependencies. The host side is pure Python standard library. Desktops run in Docker or Podman (macOS, Windows, Linux), or natively on Linux.
A quick tour from the shell
Any agent with a terminal (Claude Code, Codex CLI, Aider, Open Interpreter, Goose) can use the CLI directly, and
minion skill --install teaches it how:
Menus, file dialogs and apps by name: menu "File > Export As > Export Directly as PDF", path ~/Documents/report.pdf, then open gimp, which installed GIMP in 16 s. Recorded by the flight recorder.
Works with every agent
A complete agent with any OpenAI-compatible model ("anthropic", "gemini" and "openai-responses" work
the same way):
Python, and code mode
script runs Python inside the desktop with click · write · key · scroll · fill · see · elements · cells · wait_for · launch · run. Loops cost one call, and only what the code prints comes back. The Desktop API also
has screenshot · see · act · open · run · upload · download · clipboard · windows · freeze · fork · snapshot · restore · recording · create_many. See docs/python.md.
Native computer use (Claude, OpenAI, Gemini)
Minion is a ready environment for each vendor's computer-use model, with screenshot scaling and coordinate mapping handled for you:
Claude's computer_toolset_20260801 (all 17 actions) and the earlier computer_20251124 are covered in
docs/computer-use.md. OpenAI and Gemini computer use are covered in
docs/computer-use-openai-gemini.md.
Profiles
Your own profile is a 5-line TOML file in ~/.config/minion/profiles/. It is built automatically the first time you use it:
Or add software at runtime: minion run "minion-install gimp https://example.com/tool.AppImage pip:yt-dlp".
See docs/profiles.md.
How agents see the screen
see is the agent's main sense. Here it is on a LibreOffice window:
After an action, observe="changes" (or see(changes=true)) returns only the difference:
Text that accessibility doesn't expose (a slideshow, a canvas app, a picture of text, a remote screen, a program
without an accessibility tree) is read with OCR, only where it is missing and in the screen's own language: the scripts
in the window's titles and labels choose it. Hebrew, Arabic, Russian, Chinese, Japanese, Korean and Hindi are built in,
and other languages install on first use. Large text and light text on colour get passes of their own, and a picture
that hasn't changed is never read twice. On 24 photographed Hebrew slides, see reads 94% of the words. Here it is on
a web page that shows a slide as an image:
When pixels matter, screenshot --marks labels every control with its @id:
[Screenshot with @id marks on every clickable element]
Efficiency, measured
Five real tasks (a PDF report, a spreadsheet, a Wikipedia lookup, a web form, reading a document) cost an agent
8,668 tokens with Minion and 50,505 with screenshots: 5.8× fewer. The full table and method are in
docs/benchmarks.md; reproduce it with python scripts/bench_tasks.py.
These were measured on a 2-vCPU VM. Reproduce them with python scripts/bench.py.
Watch, take over, hand off
minion view (or the view tool) opens a live view of any desktop in your browser. Click Take control to use
your own mouse and keyboard. An agent can call view(message="Please sign in to your Google account"): you get a
banner, sign in, press Done, and the agent continues. Files downloads from the desktop and uploads to it
(or drop files on the screen), Copy brings the desktop's clipboard to yours, and Keys sends the ones your
browser keeps (Ctrl+W, Alt+Tab).
Sign in once and start desktops signed in: minion login github https://github.com/login opens a desktop there
in the live view, you sign in and press Done, and from then on minion up --login github (or
desktop(action="create", login="github")) starts desktops already signed in. The sign-in stays in your
computer's Docker (details). minion serve adds a dashboard with live thumbnails:
[The Minion dashboard with live desktop thumbnails]
How it works
Read docs/design.md for the reasoning behind each choice, and docs/architecture.md for the internals.
Security
Each desktop is an unprivileged container with no host mounts by default. Use --offline to cut network access,
or limit resources with --memory and --cpus. The HTTP server binds to 127.0.0.1, needs a random token, and refuses
cross-site and DNS-rebinding requests. File transfers to and from your computer stay inside one folder, and minion share URLs carry a fresh token and stop working when you stop sharing. The desktop user has passwordless sudo inside the container, so agents
can install software. Treat everything on a screen as untrusted input (prompt injection), and keep credentials
out of desktops unless a human hands off. Read SECURITY.md.
Documentation
Website · Install · Connect your apps · Remote MCP · Design · Agents & MCP · Integrations · CLI · Python · HTTP API · Claude computer use · OpenAI & Gemini computer use · Profiles · Apps by name · Windows apps · Architecture · FAQ
Contributing
Questions and ideas are welcome in Discussions, and bugs in issues. To help build Minion, pick a good first issue (translations, apps, agent apps, benchmark tasks), read CONTRIBUTING.md, and see where it's going in the roadmap.
License
MIT. The desktops contain open-source software under their own licenses (Debian, Firefox, LibreOffice, Wine, …).
來源:README.md,提交 f63929e
工具
0版本歷史
2- v1.1.1最新Oct 16, 2026
- v1.0.0Oct 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分