Lima 項目團隊發佈了 Lima 的第二個重大版本。在此版本中,團隊將項目重點擴展到 AI 領域,同時繼續支持容器。
Lima(Linux Machines)是一個命令行工具,用於啓動本地 Linux 虛擬機,主要用於在筆記本上運行容器。該項目始於 2021 年 5 月,目標是向 Mac 用户推廣 containerd 和 nerdctl(contaiNERD CTL)。
v2.0 更新內容
插件支持
Lima 現提供插件架構,允許第三方實現新功能,無需修改 Lima 核心代碼:
- VM 驅動插件:支持更多虛擬機管理程序。
- CLI 插件:為
limactl命令增加子命令。 - URL 方案插件:支持
limactl create SCHEME:SPEC中傳入更多 URL 方案。
插件接口仍處於實驗階段,未來版本將穩定接口。
GPU 加速
Lima 新增 krunkit VM 驅動,支持 macOS 主機上的 Linux 虛擬機 GPU 加速。
截圖顯示 llama.cpp 在 Lima 中運行時,能夠識別 Apple M4 Max 處理器為虛擬 GPU。
模型上下文協議(MCP)
Lima 提供了 MCP 工具,通過 VM 沙箱安全地執行本地文件的讀寫和命令執行:
- glob
- list_directory
- read_file
- run_shell_command
- search_file_content
- write_file
這些工具靈感來自 Google Gemini CLI 自帶工具,可作為更安全的替代方案。配置指南見:https://lima-vm.io/docs/config/ai/outside/mcp/
其他改進
limactl start命令新增--progress標誌,顯示配置進度。limactl (create|edit|start)命令增加--mount-only DIR標誌,僅掛載指定主機目錄。v1.x 版本中需用複雜語法實現。limactl shell新增--preserve-env標誌,允許將主機環境變量傳入虛擬機。- 除了 TCP 端口之外,UDP 端口現在也默認轉發。
- 多個主機用户可同時運行 Lima,支持使用“Alcoholless” Homebrew 以獨立用户賬户運行,增強安全性。
詳見發佈説明:https://github.com/lima-vm/lima/releases/tag/v2.0.0 。
拓展重點:強化 AI 安全
Lima 最初旨在向 Mac 用户推廣 containerd,但已給證明適用於多種場景。其中最顯著的是在虛擬機內運行 AI 編碼代理,以隔離代理對主機文件和命令的直接訪問。這樣即使 AI 代理被網絡上的惡意指令誤導(如偽造軟件包安裝),潛在風險也侷限於虛擬機內部或僅限掛載的主機文件。
運行 AI 代理的兩種場景:Lima 內的 AI 和 Lima 外的 AI。
Lima 內的 AI
這是最常見的場景,在 Lima 虛擬機內運行 AI 代理。文檔提供了多個強化 AI 代理的示例:
- Aider
- Claude Code
- Codex
- Gemini CLI
- GitHub Copilot CLI
- Visual Studio Code 中的 GitHub Copilot
本地大型語言模型也可用,結合 krunkit VM 驅動的 GPU 加速功能。
Lima 外的 AI
指在主機進程中運行 AI 代理,脱離 Lima 虛擬機。Lima 通過提供 MCP 工具,攔截文件訪問和命令執行,支持此場景。
快速開始:Lima 內的 AI
介紹如何在 Lima 內運行 AI 代理(如 Gemini CLI),防止 AI 直接訪問主機文件和命令。
如果使用 Homebrew,可通過命令安裝 Lima:
brew install lima
其它安裝方法見:https://lima-vm.io/docs/installation/ 。
用limactl start創建並啓動 Lima 虛擬機實例。由於默認配置會掛載整個主目錄,強烈建議限制掛載範圍為當前目錄(.),尤其是運行 AI 代理時:
mkdir -p ~/test
cd ~/test
limactl start --mount-only .
如需允許寫權限,在掛載路徑後加:w後綴:
limactl start --mount-only .:w
例如可以安裝並運行 Gemini CLI,命令如下:
lima sudo snap install node --classic
lima sudo npm install -g @google/gemini-cli
lima gemini
Gemini CLI 可在虛擬機內任意讀寫執行文件,但只能訪問掛載的主機文件,無法直接訪問其他主機文件。
更多 AI 代理運行示例見:https://lima-vm.io/docs/examples/ai/