一个本地优先的可视化 AI 工作台桌面应用,把一个目标一次性产出可继续编辑的代码、文档、演示稿、网站、设计和视频,并把 DeepSeek Harness 接为可选子代理。
- 语言
- TypeScript
- License
- NOASSERTION
- 分支
- main
安装
$ dsh plugin --profile web add github:Devin-AXIS/iPolloWork在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
一句话定位
iPolloWork 是一个本地优先的可视化 AI 工作台,它把一个目标直接产出可以继续编辑的代码、文档、演示稿、网站、设计和视频,同时把 DeepSeek Harness 作为可选子代理协作,它既可以作为单独的桌面应用使用,也可以作为 DSH profile 的扩展仓库加载。
核心能力
- 集中一个工作区处理代码仓库、本地文件、浏览器任务、文档、演示稿、网站、设计和视频,不必在不同工具之间切换上下文
- 让 AI 智能体规划任务、调用工具、读写文件、运行命令,并从当前状态继续推进,而不是只交付一段聊天记录
- 输出保持可编辑:生成文档、网站、演示稿、设计和视频之后,文字、图片、布局和画面仍然能继续手动精调
- 通过 Skills、plugins、MCP、本地服务与浏览器自动化扩展 AI 能力,插件清单统一以
ipollowork.plugin.json描述 - 可选接入 iPolloCloud 完成账户、组织、托管 worker 生命周期与商业 Apps;纯本地模式下不要求任何账号
- 将 DeepSeek Harness 作为 sidecar 运行时注入,允许把代码审查、开发和研究任务委派为 DSH 子任务并查看进度
技术实现
- 语言: TypeScript + JavaScript(混合)
- 关键依赖: Electron 35(桌面宿主)、@opencode-ai/sdk 1.18.16(模型与工具桥)、better-sqlite3 11(本地存储)、@lydell/node-pty(本地终端)、drizzle-orm(关系映射)
- 架构模式: pnpm monorepo,主体由 apps/app(React UI)、apps/desktop(Electron 壳)、apps/server(文件 API)、apps/orchestrator(无头编排)、apps/installer(打包)构成;桌面壳对 OpenCode、Orchestrator、DSH 都以 sidecar 形式加载,通过
examples/plugin-packages/*/ipollowork.plugin.json描述插件资源,DSH 子代理以cordis.patch.yml与dsh.bundle.patch注入 DSH Cordis 容器 - 入口文件:
apps/desktop/electron/main.mjs(Electron 主进程)、apps/server/src/cli.ts(服务器 CLI)、apps/orchestrator/bin/(headless orchestrator)
适用场景
适合非技术用户、设计师、内容创作者与开发者:在一个应用里描述"做一个海报 / 写一份报告 / 跑通某个仓库的功能",然后在同一个地方继续让 AI 或自己修改,而不是拿到一张截图就结束。已经在用 DSH、希望把可视化设计、文档、PPT、视频能力并入工作流的人也会受益,因为这个仓库同时携带 DSH 的子代理协作示例(examples/plugin-packages/deepseek-harness)和发布级 DSH 插件(external-plugins/deepseek-harness/design-studio 等)。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| Node.js | ^22.19.0 或 >=24.0.0 | 由 .nvmrc 锁定 24,README 要求 22+;用于源码构建、UI 开发与服务器 |
| pnpm | 11.4.0(<12) | 由根 package.json#packageManager 与 engines.pnpm 强制;monorepo 用它来安装 |
| Bun | 1.3.10+ | 用作本地 Orchestrator sidecar 与部分脚本(README 强制) |
| DSH | 0.1.0-rc.6 | 由 apps/desktop/dsh-runtime/package.json 锁定的 sidecar;发布级插件要求 @deepseek-ai/dsh-client-runtime 等运行时在 0.1.0-rc.x 之间 |
| 平台 | macOS / Windows / Linux | 三端可跑,macOS 需要 Xcode Command Line Tools,Windows 需要 VS2022 C++ 桌面开发与 Windows SDK,Linux 需要 C/C++ 工具链与 Python 3 |
| 原生模块 | better-sqlite3、@lydell/node-pty、@ffmpeg-installer/ffmpeg、@ffprobe-installer/ffprobe | 由 apps/desktop/package.json 直接依赖,在打包时跟随应用产出 |
安装方式
dsh plugin --profile web add github:Devin-AXIS/iPolloWork
配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| DSH_RUNTIME_BIN | 环境变量 | 指向本地 DSH CLI 可执行文件路径,委派任务时启动 | 未声明 |
| DSH_CORDIS_CONFIG | 环境变量 | 子代理 Cordis 配置文件路径,在子进程启动前注入 | 未声明 |
| DEEPSEEK_API_KEY | 环境变量 | DeepSeek 模型服务的 API Key,仅当 DSH_PROVIDER=deepseek-official 时启用 | 未声明 |
| DEEPSEEK_BASE_URL | 环境变量(可选) | 自定义 DeepSeek API Base URL,缺省指向官方 | 未声明 |
| IPOLLOWORK_API_KEY | 环境变量 | iPolloWork 推理网关使用的 API Key,仅当 DSH_PROVIDER=ipollowork 时启用 | 未声明 |
| IPOLLOWORK_INFERENCE_BASE_URL | 环境变量 | iPolloWork 推理网关地址 | 未声明 |
| IPOLLOWORK_DSH_CLI / _VERSION | 环境变量 | 覆盖内置 DSH CLI 路径与版本号,通常无需手动设置 | 未声明 |
| 界面模式 | 应用内设置 | 桌面应用默认启动方式,不需要手动配置,适合大多数用户 | 未声明 |
常见问题
Q: 装上以后能直接双击打开吗?
A: 能,但要先按 README 三种官方安装方式之一(macOS 的 .dmg、Windows 的 .exe 安装器、Linux 的 .AppImage)把桌面应用装到系统上。DSH profile 这次加载只是把仓库代码纳入插件列表,不会替你安装系统级桌面应用。
Q: iPolloWork 是怎么与 DSH 配合的?
A: 它通过 apps/desktop/dsh-runtime 把 DSH 0.1.0-rc.6 打包成本地 sidecar,然后在 examples/plugin-packages/deepseek-harness/ipollowork.plugin.json 中声明一组合约:capabilities、runtime_status、runtime_install、runtime_update、runtime_remove、start、status、cancel,允许 iPolloWork 把边界清晰的任务交给 DSH 子代理。
Q: 我需要付费或者登录才能用吗?
A: 不必须。桌面应用的本地模式不需要任何账号,iPolloCloud 是可选的连接,只有当你主动连上远程 worker 组织或商业 Apps 时才参与。
Q: 它会 fork 掉 OpenCode 吗?
A: 不会。OpenCode 仍作为独立组件下载和升级,iPolloWork 不重写或分叉它的代码,sidecar 边界清楚。
Q: 数据存在哪里?
A: 工作文件落在当前工作区的 design/、design/<sessionId>-ippt/、video/ 三个子目录下;会话、设置和 token 在本地 DSH home;iPolloCloud 只在显式登录后参与。
Q: 它用的是开源协议吗?
A: 不是,它使用 iPolloWork Source Available License 1.0:仅少于三人的个人自用和小规模内部使用免费,任何三人及以上的使用、商用、SaaS、白标分发都需要书面授权;第三方组件继续遵循各自许可。
Q: 我能在 Linux 上拿到完整功能吗?
A: 桌面应用本体可在 Linux 上跑,但构建一次需要完整的 C/C++ 工具链;Windows 的代码签名/SmartScreen 提示、macOS 的签名/公证体验需要分别在对应平台验证。
上手难度
进阶 — 单看使用只需双击安装包,但运行 ./ipollowork CLI 或自行打包要同时配齐 Node 22+、pnpm 11、bun 1.3.10+ 和系统级 C/C++ 工具链,还要理解 monorepo 的 dev/build/package 三层命令。
已知问题与限制
- 当前最新稳定版尚未包含 DeepSeek Harness 子代理协作能力,DSH 集成的源代码已在仓库中可用,但
README.md:39-45明确指出仍在积极开发中 - 在 Windows 上执行
./ipollowork.cmd dev不会自动注册ipollowork://协议处理器,通过外部浏览器测试 Cloud 登录时需要手动切换,然后恢复生产协议处理 - 当前只打包当前操作系统与 CPU 架构的产物,跨平台矩阵需要走 GitHub Releases 流程;无 Apple/Windows 签名凭据时本地产物未签名,不适合作为正式发布
- 本地发布序列从
0.0.0起,正式版按 0.1.0–0.99.0 然后 1.0.0 走,本地 packaging 不会自动 push 或 git tag,新版本需要手动触发流程 - 源码中存在 4 处 TODO:
apps/app/src/react-app/domains/settings/pages/recovery-view.tsx三次提及"恢复禁用的条件状态",apps/app/src/components/chat/message-list.tsx提及"为文件消息加入语气" - 协议为 iPolloWork Source Available License 1.0,不是 OSI 开源许可;三人以上使用、商用、SaaS、白标都需要书面授权
external-plugins/deepseek-harness/design-studio等 DSH 子插件的dsh.bundle.patch范围是>=0.0.1-rc.1 <0.2.0-0,DSH 0.2.0+ 之前需要等待插件发版跟进
A local-first visual AI workbench that turns one goal into editable code, documents, presentations, websites, designs, and videos—an open alternative to Codex and Claude Code.
https://github.com/user-attachments/assets/201b561a-22ec-4c8e-a4e8-f34172cf0aa3
iPolloWork gives agents one workspace for repositories, local files, browser tasks, documents, presentations, websites, design, and video. Describe the outcome; the agent plans and executes; you inspect the work, approve actions, and keep editing the result in the same place.
Codex-style coding is only the starting point. When the output is a deck, web page, visual design, or video, iPolloWork keeps it editable instead of handing you a finished file or a chat transcript.
Join the official iPolloWork WeChat community
Scan with WeChat to join the official group for product updates and community discussions.
What makes it different
- Agent-first execution — plan work, use tools, read and modify files, run commands, and continue from the current state.
- Editable results — move from code to documents, websites, presentations, design, and video; keep changing text, images, layout, and scenes after generation.
- Local control — run on your machine, bring your own model or provider, approve permissions, and extend the workspace with Skills, plugins, MCP servers, and browser automation.
- Two agent ecosystems, one workflow — native DeepSeek Harness subagent collaboration is in active development, designed to let iPolloWork delegate focused work to DSH while both sides keep their own Skills and plugins.
DeepSeek Harness subagent collaboration
iPolloWork is integrating DeepSeek Harness (DSH) as an optional subagent runtime. The integration is in active development and is not included in the latest stable release yet.
The collaboration model keeps iPolloWork as the primary workspace: a task can delegate bounded work to DSH subagents when useful, then bring structured results back into the same task. iPolloWork and DSH retain their own Skills and plugin ecosystems, so users can benefit from both without replacing either runtime.
Install iPolloWork
Download the desktop app
Official installers are published on GitHub Releases. If you prefer a manual download, choose the file that matches both your operating system and CPU:
| System | CPU | Installer to use |
|---|---|---|
| macOS | Apple Silicon (M-series) | ipollowork-mac-arm64-<version>.dmg |
| macOS | Intel | ipollowork-mac-x64-<version>.dmg |
| Windows | Intel/AMD 64-bit | ipollowork-win-x64-<version>.exe |
| Windows | ARM64 | ipollowork-win-arm64-<version>.exe |
| Linux | Intel/AMD 64-bit | ipollowork-linux-x64-<version>.AppImage |
| Linux | ARM64 | ipollowork-linux-arm64-<version>.AppImage |
The macOS .zip and Linux .tar.gz files are portable/update artifacts; most users should choose .dmg, .exe, or .AppImage. If the Releases page does not yet contain an installer for your system, run or package the app from source below.
Installation after downloading:
- macOS: open the
.dmg, then drag iPolloWork into Applications. - Windows: run the
.exeinstaller. A locally built, unsigned installer may trigger Microsoft Defender SmartScreen. - Linux: make the AppImage executable with
chmod +x ipollowork-*.AppImage, then run it. The.tar.gzpackage can be extracted and run without installation.
Requirements for source development and packaging
- Git
- Node.js 22 or newer
- pnpm 11, enabled through Corepack with
corepack enable - Bun 1.3.10 or newer, used to build the local Orchestrator sidecar
- macOS: Xcode Command Line Tools (
xcode-select --install) - Windows: Visual Studio 2022 Build Tools with Desktop development with C++ and the Windows SDK; use PowerShell or Command Prompt
- Linux: a standard Electron build environment with a C/C++ toolchain, Python 3,
pkg-config, and the desktop libraries required by Electron; the release build uses Ubuntu 22.04
OpenCode is downloaded and prepared as a separate sidecar during the first desktop build. iPolloWork does not fork or rewrite OpenCode, and OpenCode can continue to be upgraded independently.
Start from source
macOS and Linux
git clone https://github.com/Devin-AXIS/iPolloWork.git
cd iPolloWork
corepack enable
./ipollowork setup
./ipollowork dev
Windows PowerShell
git clone https://github.com/Devin-AXIS/iPolloWork.git
Set-Location iPolloWork
corepack enable
.\ipollowork.cmd setup
.\ipollowork.cmd dev
The setup command installs the locked workspace dependencies. The dev command prepares the OpenCode and Orchestrator sidecars, starts the UI, and opens the Electron desktop client. Development mode uses isolated iPolloWork/OpenCode state and does not overwrite the user's normal OpenCode configuration.
Development commands
| Purpose | macOS / Linux | Windows |
|---|---|---|
| Start desktop app | ./ipollowork dev | .\ipollowork.cmd dev |
| Start browser UI only | ./ipollowork dev:ui | .\ipollowork.cmd dev:ui |
| Connect local Cloud | ./ipollowork dev:cloud http://localhost:3100 | .\ipollowork.cmd dev:cloud http://localhost:3100 |
| Type checks and desktop tests | ./ipollowork check | .\ipollowork.cmd check |
| Production build | ./ipollowork build | .\ipollowork.cmd build |
Windows development builds do not register the production ipollowork://
handler automatically. When testing Cloud sign-in through an external browser,
use the repository's protocol switcher and restore the production handler when
you finish. See Windows protocol switching.
Build and package
There are three different build levels:
| Command | Result |
|---|---|
build | Compiles the production UI, server, Electron shell, and sidecars; does not create an installer |
package:dir | Creates the fastest unpacked desktop app for local verification; does not change the release version |
package | Runs checks, advances the client version, then creates native installer and portable/update artifacts for the current system and CPU without publishing them |
macOS and Linux
./ipollowork check
./ipollowork package:dir
./ipollowork package
Windows PowerShell
.\ipollowork.cmd check
.\ipollowork.cmd package:dir
.\ipollowork.cmd package
All outputs are written to apps/desktop/dist-electron/:
package is the local release command. It keeps the App, Desktop, Orchestrator, and Server versions in sync, and uses the sequence 0.1.0 through 0.99.0, then 1.0.0 (the source checkout starts at the unshipped baseline 0.0.0). Use ./ipollowork package --dry-run to inspect the next version, or --skip-check only when the checks have already passed. Local packaging never commits, tags, pushes, or publishes a release.
- macOS:
.dmg,.zip, and an unpacked.app - Windows: NSIS
.exeandwin-unpacked/ - Linux:
.AppImage,.tar.gz, andlinux-unpacked/
Local packaging targets the machine's current operating system and CPU architecture. Use the GitHub release workflow to produce the complete signed/notarized matrix for macOS ARM64/x64, Windows ARM64/x64, and Linux ARM64/x64. Local packages are unsigned unless the appropriate Apple or Windows signing credentials are supplied; they are suitable for development testing but should not be presented as official releases.
Connect to iPolloCloud
Start your local iPolloCloud control plane first, then run:
./ipollowork dev:cloud http://localhost:3100
This command creates an isolated development profile, points authentication and Cloud APIs at the supplied URL, and requires Cloud sign-in. It does not change the normal local iPolloWork profile. A remote or self-hosted Cloud URL works the same way:
./ipollowork dev:cloud https://cloud.example.com
Architecture boundary
iPolloWork desktop/UI ── local API ──> iPolloWork server ──> OpenCode
│
└── optional account/control requests ──> iPolloCloud
- Agent execution and streaming stay on the Work/Worker path.
- iPolloCloud handles identity, organizations, entitlements, hosted worker lifecycle, administration, and commercial Apps.
- The Cloud connection is optional. Local iPolloWork works without an account or commercial service.
- OpenCode remains its own component and can continue to be upgraded independently.
Repository layout
apps/app— shared React user interfaceapps/desktop— Electron desktop shell and packagingapps/server— iPolloWork server APIapps/orchestrator— headless runtime orchestrationpackages— shared types, components, docs, and integrationsdocs— maintained engineering notes, platform guides, and generated reportsevals— executable product flows and validation toolingexamples— complete example plugin packagesexternal-plugins— independently released plugins for external agent hostspackaging— release and installer metadatascripts— development, build, audit, and release automationspecs— product and architecture specificationsvendor— pinned third-party source that is built as part of iPolloWork
Contributing
Read AGENTS.md, CONTRIBUTING.md, and
apps/app/src/react-app/ARCHITECTURE.md before making product changes. Run the
narrow relevant test first, followed by:
./ipollowork check
git diff --check
See CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md for contribution, community, and security policies.
License
iPolloWork uses the iPolloWork Source Available License 1.0:
- Free only for individual personal self-use and for small internal use by fewer than three total users.
- Prior written authorization is required for any use by three or more users, regardless of whether the use is personal, internal, commercial, non-commercial, individual, or organizational.
- Prior written authorization is required for any sale, resale, paid service, SaaS, hosting, white-label distribution, marketplace use, or customer-facing use, regardless of whether it is done by an individual or a company.
- The iPolloWork name, logo, and product attribution must remain visible in user-facing frontend displays unless prior written authorization expressly permits different branding.
- Separately licensed third-party components and code previously released under MIT retain their original licenses and existing rights.
See LICENSE for the controlling terms and LICENSES/MIT-legacy.txt for the historical MIT notice. This is a source-available license, not an OSI-approved open-source license.