iWorker
An open-source AI office assistant that runs on your own machine.
Ask for something once; it plans, does the work, checks it, and leaves a real
PPT / Word / Excel / web page on your disk — a file you can open, not a chat log.
An open-source alternative to Claude Cowork · use the Claude Code or Codex already on your machine as the engine
中文 · English
▶ Run it in three minutes · Download · Feature list (zh) · Docs · Commercial license · Services · Feishu group · Changelog
Free for personal non-commercial use, schools and non-profits. Company use (even internal only) and personal commercial use need a commercial license
Companies may evaluate free for 30 days (not yet in real business use); long-term use requires a license: contact@aijentra.com
We also offer enterprise FDE · AI training · AI adoption consulting — how to work with us ↓
You say it, it hands you the file
| You say | You get |
|---|---|
| "Build a Q3 review deck from this spreadsheet" | reads → computes → a .pptx you can present |
| "Research AI companion apps in China, write a report" | searches → reads each page → Markdown / Word |
| "Turn this material into a page I can read on my phone" | writes HTML → serves it locally → scan the QR |
| "Every day at 9, collect industry news and send it to me on Feishu" | cron + IM push; missed runs catch up |
| "Make a 30-second product promo, vertical and horizontal" | a form for length, aspect and sound → voice-over, motion, compositing → .mp4 |
Note
Also: parallel tasks, goal-based acceptance, 👍👎 feedback that feeds self-evolution, two-layer memory, permission tiers, remote control over Feishu / WeChat, a desktop pet… Full list (Chinese): 功能清单.
Commercial license · Enterprise services
Important
Free for personal non-commercial use, schools and non-profits. Company use (even internal only) and personal commercial use require a paid commercial license. Companies may evaluate it free for up to 30 days, as long as it isn't used in real business yet; long-term use requires a license. Email contact@aijentra.com with your company, how you plan to use it and roughly how many users; we'll get back to you soon. Terms: COMMERCIAL-LICENSE.md.
| Your situation | License needed? |
|---|---|
| Personal non-commercial use (learning, research, hobby projects) | Free |
| Schools, research institutions, non-profits, government bodies | Free |
| Company evaluation: up to 30 days, not yet used in real business | Free |
| A company or team using it in real business, even internal only | Required |
| Personal commercial use: freelancing, client work, paid products or services | Required |
| SaaS offered to others, bundling into products you sell, client delivery / outsourcing / custom work | Required |
A license unlocks no features: there is only this one codebase, with no feature locks, no countdowns and no online license checks. The software sends no usage data to the author or any third party; when it checks for updates, it asks the repo's Releases whether a new version is out (the repo server can see your IP). Commercial use without a license can be pursued by the rights holder under civil law, and removing or altering copyright notices without permission may itself infringe — legal basis and court cases in 未授权商用的法律后果 (Chinese).
Beyond licensing, we take on enterprise AI work:
| Service | What it covers |
|---|---|
| Enterprise FDE (forward-deployed engineering) | Engineers join your team, wire Agents into real business workflows, and hand over once it runs |
| AI training | In-house training so your team uses AI in everyday work, not just demos |
| AI adoption consulting | Pick the use cases, shape the plan, size the cost; private deployment and industry agents included |
The author is a former big-tech Agent engineer who has delivered AI solutions for cross-border e-commerce, manufacturing, AI startups, private funds, major consumer brands and state-owned enterprises. Based in Shenzhen — visits welcome.
Why this one
|
📄 The files are real. Decks, documents, spreadsheets and pages are actually generated — open them from the output panel and check. Claim a file was written when it isn't on disk and the run gets stopped and redone. |
🔌 Swap models freely; everything stays yours. DeepSeek / Qwen / GLM / Kimi / OpenRouter / Ollama switch with one click. Already have Claude Code or Codex on this machine? Use it as the engine — no second token bill. Sessions, files and keys never leave your disk; it listens on |
|
🧩 Adding a capability = dropping one Markdown file. Save it as |
🔍 It's also a readable agent. Model routing, tool calls, file acceptance, memory, permissions and local traces all live in one repo: for any real task you can see why it did what it did, which model it used, and what it finally handed over. |
📣 Want to tell someone about it? Copy this
iWorker: an open-source AI office assistant that runs on your own machine.
Ask once; it plans, does the work, checks it, and hands you a PPT / Word / Excel / web page you can open, not a chat log.
· Any model: DeepSeek, Qwen, Kimi, GLM, Ollama, or the Claude Code / Codex already on your machine
· Your data stays local and it listens on 127.0.0.1 by default; or run it on a server for your team, each person binding their own WeChat or Feishu
· Adding a capability = dropping in one Markdown file
Good for: people who live in decks, weekly reports and research docs; teams that want a self-hosted AI assistant; developers who want to see how an agent is built.
Free for personal non-commercial use: https://git.cetids.tech/twice/iWorker
Run it in three minutes
macOS (no dialogs at all):
curl -fsSL https://git.cetids.tech/twice/iWorker/raw/branch/main/install-mac.sh | bash
Windows: grab -win-setup.exe from Releases (x64 and ARM); on a locked-down machine use the portable -win-x64-portable.exe.
From source (Node.js 18+, no build step):
git clone https://git.cetids.tech/twice/iWorker.git
cd iWorker && npm install
npm run app # desktop app; or npm start → http://localhost:3800
Paste a model key, then just say what you want. Your data lives in ~/OpenWorkBuddy and survives uninstalls. Text size and themes: avatar menu → Appearance.
Your OS blocks the first launch
The signing certificate is still pending, so builds are ad-hoc signed: the OS is blocking an unknown developer, not malware.
- macOS, "could not be verified": click Done → System Settings → Privacy & Security → scroll down → Open Anyway. Or drag the .app into Applications and run
xattr -dr com.apple.quarantine /Applications/iWorker.app. The old "right-click → Open" trick only works on macOS 14 and earlier. - macOS, "is damaged": a cloud drive or unzip tool broke the signature — download again.
- Windows: "More info" → "Run anyway".
- Nothing happens: check
~/OpenWorkBuddy/logs/boot.log→ 安装与启动 (Chinese)
⭐ Got it running? Hit Star at the top right so you can find it again in your Stars list; for release alerts, use Watch → Custom → Releases.
What it looks like
"Same person, four different scenes, holding a hand-written sign — make it look like a snapshot, not an AI render."
The hard part isn't drawing a person — it's keeping the same person across all four and the Chinese on the sign legible. So it generates one, then actually looks at what it just made (a real vision call on its own output, not a claim from memory), and fans the rest out from there.
"Build me a Hunan travel guide site — all 14 prefectures, no skipping."
https://hunan-travel.pages.dev/ — it's live, go click around. One HTML file plus a folder of images, no external CDN. Drop it on any static host and it's a site. Not a mockup — the thing it actually handed over.
"I'm spending three days in Beijing — plan the trip for me, and use the map card."
The itinerary in the answer becomes a trip card: switch between days, every stop is pinned on the map in order, and the place cards on the right come with photos. "Open route" carries the day's stops into the map in order, under the same names as on the card; in China it opens AMap by default with a switch to Google (that's the second shot), abroad it opens Google Maps; "Send to phone" shows a QR code to carry on from your phone. Flip to "Timeline" at the top right and the day runs from morning to evening. Works without a Key; add an AMap Key in Settings → Map and places in China get more accurate.
"Every morning at seven, send me today's weather and what I should watch out for, on Feishu."
One sentence set this up. It runs whether or not anyone is at the machine, and every run keeps its full transcript under Automation → Run history. Feishu / WeCom / DingTalk / Telegram all take the same path.
How it pulled those off → 三个案例,拆开讲 (Chinese, but the screenshots speak for themselves)
AI short-drama infinite canvas
Script, characters, scenes, shots, reference images, video, voice and the edit timeline all sit on one canvas. The wires aren't decoration — they are what the next generation actually reads for character, first frame and sound. Change one shot and only that shot re-runs.
A whole AI short-drama episode from one sentence: ask for "an episode of 《不烧心》 as a vertical short drama" and it goes script → character sheets → storyboard → first frames → shot videos → final cut. This 75-second episode was made that way (click the cover to watch).
Open "Infinite canvas" in the left sidebar. Drag empty space to pan, Shift+drag to marquee-select, Shift/⌘+click to add or drop nodes from the selection, and @ any node or asset from the chat box at the bottom.
Put it on a server for your team: multi-user, self-hosted
git clone https://git.cetids.tech/twice/iWorker.git && cd iWorker
bash deploy.sh --domain buddy.example.com # Docker + automatic HTTPS
Multi-tenant, with seats, quotas and one-click offboarding. Register the admin first — the first account becomes super admin. → 部署 · ops handbook · 多人协作 · 账号与部署运维 (Chinese)
Models: DeepSeek, Qwen, Kimi, Ollama, Claude Code, Codex
Settings → Models: pick a preset (OpenAI / Anthropic / OpenRouter / DeepSeek / Qwen / Zhipu / Kimi / Volcengine Ark / Ollama), paste the key, save — it applies immediately. Image, voice and video models have their own table. Reference → 配置模型 (Chinese)
Important
Keys live only in
config.json, which is already in.gitignore. Don't commit it.
Command line
iworker shares one set of config, skills, memory, connectors and sessions with the desktop app — start something in the terminal and you can watch it and chime in from your phone; stop halfway on the desktop and iworker resume picks it up.
npm link # once: install the global command (or just run `node cli.js …`)
iworker "write my weekly report" # one-shot: runs and exits
iworker # interactive: type / for the command menu
cat error.log | iworker "what is this" # pipe: stdin becomes material
iworker -q "write my weekly report" > report.md # just the report, no progress bars
One-shot and pipe mode never ask you questions, so scripts and cron don't hang. Exit codes mean something: 0 success, 1 task failed, 2 bad arguments, 130 Ctrl+C — so iworker doctor && npm start stops a misconfigured machine before it starts.
sessions / resume / engines / doctor / pair (QR-pair your phone) / worktree, plus --mode --perm -C -f --json and the rest → 命令行用法 (Chinese)
How it's put together
flowchart TB
subgraph Entry["Your devices"]
Desktop["Desktop / Web"]
CLI["iworker CLI"]
IM["Feishu / WeChat and other remote entries"]
end
Entry --> Runtime["iWorker local runtime\nsessions · permissions · projects · API"]
Runtime --> Agent["Agent orchestration\nplanning · tool calls · file acceptance"]
Agent <--> Models["Model routing\ncloud LLM / Ollama / Claude Code / Codex"]
Agent <--> Capabilities["Capabilities\nMarkdown Skills · experts · MCP · plugins"]
Agent <--> Workspace["Local workspace\nfiles · assets · project context · memory"]
Agent --> Canvas["Executable infinite canvas\nscript · characters · shots · assets · timeline"]
Agent --> Trace["Local trace\nmodel · tools · latency · tokens · I/O"]
Trace -. optional .-> Langfuse["Langfuse"]
The diagram doubles as a reading order: start at server.js, then see how src/agent/agent.js orchestrates models and tools. Details → 实现细节, code layering → 代码架构 (both Chinese)
What's new
- Oct 15 Pin tasks to a Pinned group at the top of the history; pins follow you to other computers
- Oct 15 Accept in Self-evolve no longer reloads the page; Self-evolve and Agents open without a multi-second wait
- Oct 14 Every account can bind its own WeChat, Feishu, QQ, WeCom, Official Account, group bots and email: messages run as you, results go only to you
- Oct 14 Members on a shared server get their own setup: per-provider model sharing, their own API keys, their own experts, and their own assistant name and preferences
- Oct 14 Attachments with the Chinese enumeration comma (、) in their names are no longer split into two files that don't exist
- Oct 13 Sign up with an email: the part before @ becomes your username, and signing in with the email works too; failed sign-ups no longer count toward the limit
- Oct 13 New "Sandbox safety" switch in Settings → Security: turn it off and the AI can touch files outside the workspace and reach local and private addresses; locked on when several accounts share one install
- Oct 13 "Allowed local/private addresses" accepts wildcards: 192.168.1.: for a whole subnet, *.local:8080 for a family of hosts
- Oct 12 Your personal WeChat now gets scheduled-task results and reminders; messages keep arriving while a task runs, so "stop" works right away, and WeChat shows "typing…" while it works
- Oct 12 Local Codex / Claude Code can read files sent with a message: pasted text, images and documents now come with their full path, not just the file name
- Oct 10 Members, auditors and branch-org accounts can create multiple projects too: each gets its own folder inside their own working folder, and earlier outputs stay in the default project
- Oct 10 Drag from a canvas card's port onto another card to link them; cards that can't take the link turn red and say why. "+" adds a card that's already linked, and titles and prompts can be edited right on the card
Older entries → Changelog.
⚠️ This agent has a shell
It runs commands, edits files and goes online, so there are command approvals, file blocklists, a URL allowlist, an audit log and four permission levels; on macOS and Windows its commands also run in a system sandbox that can't read your Keys or ledger. Third-party skills get a static check before install and risky ones are refused by default — but it isn't antivirus; read the skill.md yourself.
Read 安全 before exposing it to the internet — defaults are tuned for local use.
Contributing
- Something broke? Open an issue, even if it's one line of error text. Scrub your API keys first.
- 10 minutes — write a skill: one Markdown file at
skills/<name>/skill.md, live on save. Template - One evening — pick an issue:
npm install && npm startruns it,npm testgoes green without any API key
Project layout, tests and PR conventions are in CONTRIBUTING.md. No need to open an issue first — send the PR.
Coming from another tool: open-source alternative to Claude Cowork, Codex and more
Looking for an open-source alternative to Claude Cowork, Codex, Doubao or Qwen office features, or a DeepSeek agent harness? Each has an honest comparison page, including when the other product is the better fit:
| You use / you're looking for | Comparison |
|---|---|
| Claude Cowork | Open-source Claude Cowork alternative — self-hosted, any model |
| Codex | Codex alternative for office work — and it can drive the Codex CLI |
| Doubao | Doubao office alternative — still runs Doubao models |
| Qwen | Qwen office alternative — runs Qwen via DashScope or Ollama |
| DeepSeek | DeepSeek agent harness — paste a key and it works |
iWorker is an independent open-source project, not affiliated with any of these companies.
Docs
Most docs are in Chinese; the code and comments are the source of truth.
| Doc | What's in it | Doc | What's in it |
|---|---|---|---|
| 功能清单 | Every capability, skill and tool | 部署 | Server / Docker / reverse proxy |
| 案例 | How the pictures above were made | 多人协作 | Multi-tenant, accounts, quotas |
| 安装与启动 | Installers, source, common snags | 安全 | Approval gates, allowlists, audit |
| 配置模型 | base_url / model names per provider | 数据同步与搬家 | Where data lives, moving machines |
| 命令行用法 | CLI flags, pipes, --json, cron |
开源与商业版边界 | What a licence actually buys |
| 扩展 | Skills, MCP, plugins, experts | 路线图 | What's next, what counts as done |
| IM与定时任务 | Feishu / QQ / WeCom / WeChat / DingTalk | 实现细节 | How the agent loop actually runs |
| 安全基线 | Where data lands, who can read it, what isn't covered | 远程访问 | Reaching your machine from outside; both switches off by default |
| 账号与部署运维 | Accounts, offboarding, password recovery, backups, running several orgs | 代码架构 | How the code is layered, who may require whom, where new code goes |
Also by the same author
- toolward — a static safety check for agent skills and MCP connectors: 37 rules in six families, zero runtime dependencies, Node 20.10+. Run
npm i -g toolwardand iWorker picks it up as a second ruler automatically; skip it and nothing changes. Like this project it is PolyForm Noncommercial.
License
Free for personal non-commercial use, schools and non-profits; company use (even internal only) and personal commercial use need a commercial license. Companies may evaluate free for 30 days. To buy one, email contact@aijentra.com.
PolyForm Noncommercial 1.0.0; terms and what unlicensed commercial use leads to are in COMMERCIAL-LICENSE.md. Deploy configs, scripts and skill templates are also MIT (the list); the name and logo aren't licensed.
Anyone who copies or redistributes any part of this software must keep the license terms (or their URL) and every line beginning with Required Notice: at the top of LICENSE.
Official releases are published only at twice/iWorker on git.cetids.tech and its Releases. Installers from other sources get no updates or support from the author; users' rights are those under the PolyForm Noncommercial License 1.0.0 and any commercial license.
KylinWork and others built on this project's code without the author's permission and changed its license; the author has demanded they be taken down everywhere.
Copyright (c) 2026 开发者猫叔 (DeveloperCatUncle)
Disclaimer
An independent open-source project, not affiliated with Tencent or its WorkBuddy product, containing none of its code or assets; IM integrations use public APIs only. Borrowed ideas are credited in NOTICE.md. Concerns → Issues.
Support this project
Pass it to one colleague who hand-builds decks, weekly reports and meeting notes — worth more than a hundred impressions.
Contributors
Thanks to everyone who has changed something here. Want to join them: CONTRIBUTING.md. The contributor list lives on the repo's activity page.








