xxz 3515226e7e
Some checks failed
ci-check-mac / 全套(含 e2e) (push) Waiting to run
release-mac / build (push) Waiting to run
release-mac / attach (push) Blocked by required conditions
release / release-prepare (push) Blocked by required conditions
ci-check / 快跑(除 e2e 外全跑) (push) Failing after 7m58s
release / build (win, windows-latest, dist:win) (push) Blocked by required conditions
release / release (push) Blocked by required conditions
ci-check / Windows 沙箱 (push) Successful in 6m17s
release / test (push) Has started running
CI:两个用例等一下时钟再改文件(Linux 的时间戳取自粗时钟,同一个 tick 里两次写看起来一模一样)
2026-11-07 11:49:34 +08:00

iWorker

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

Star License Skills Tools Connectors Experts

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 ↓

iWorker demo: say what you need, the agent does the work and hands you real files


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

Ask once; iWorker plans, executes and verifies, and hands back PPTX / DOCX / XLSX / HTML files

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.

📮 contact@aijentra.com

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 127.0.0.1 by default.

🧩 Adding a capability = dropping one Markdown file.

Save it as skills/<name>/skill.md and it's live on the next task — no code, no restart, no build.

🔍 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 same person at a cafe window, on a rainy night street, at an office desk and in a morning bedroom, each holding a wooden sign reading 关注 iWorker 项目

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."

Hunan travel guide: the ink-wash landing screen, and the index of all 14 prefectures grouped by region

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."

Map view of a three-day Beijing trip card: day 1's Temple of Heaven, Tiananmen, the Forbidden City, Jingshan and Qianmen pinned in order, with photo place cards on the right and “Open route” and “Send to phone” at the top

Day 1 after “Open route”, switched to Google Maps: the Temple of Heaven, Tiananmen Square, the Palace Museum, Jingshan Park and Qianmen Street joined into one route in order, under the same names as on the trip card

The same trip card switched to the timeline: day 3 from the Summer Palace in the morning to Nanluoguxiang

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."

A scheduled iWorker task pushing a morning briefing to Feishu: today's weather and UV, tomorrow's rain, plus two things worth doing today

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.

iWorker infinite canvas: character sheet, location plate and shot first-frames on one board, with purple wires labelled 「生成」 pointing at what the next generation actually reads

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).

Cover of the AI short drama 《不烧心》 EP01, vertical cut — click to play the 75-second episode

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 start runs it, npm test goes 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 toolward and 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

That Star button in the top-right corner — press it

Star this repo

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.

Description
No description provided
Readme 78 MiB
Languages
JavaScript 56.1%
Rust 41.7%
HTML 1.3%
CSS 0.6%
Python 0.1%
Other 0.1%