I studied materials, where metals don't break all at once: they give way one row of atoms at a time. I build software the same way, in small verified steps.
- Building CommerceAgent, a self-hosted Claude Code workbench reachable from the browser and seven messaging channels.
- Building 康养日记, a WeChat Mini Program that keeps elderly patients on their medication schedule and tells their family when they fall off it.
- Exploring agent systems, MCP apps, developer tooling, and self-hosted software. Open to thoughtful collaboration on useful open-source projects.
Projects I started and maintain myself, the work I would want you to read first.
CommerceAgent, 面向电商场景的智能运营工作台
A self-hosted, multi-user, agent-first Claude Code workbench: one agent, workspace, and automation set, reachable from the browser and seven messaging channels.
- Wraps the Claude Agent SDK for TypeScript into a long-running service shared across Feishu, Telegram, QQ, DingTalk, WeChat, Discord, and WhatsApp.
- Tasks execute on the host or inside Docker sandboxes, with an explicit ACL matrix and CI on every push.
- Desktop builds bundle the backend, the web UI, and a Node runtime into a single Electron app, so installing it needs neither Node nor a database.
康养日记, medication care for elderly patients
Scheduled reminders, automatic missed-dose records, and a family alert after three missed doses in a row.
- Two scheduled cloud functions carry the whole reminder pipeline, a 5-minute reminder pass and a 10-minute missed-dose pass. Each is idempotent through its own log collection, so a retry never double-notifies a family.
- The "three missed doses in a row" streak is computed over a total order (business time, then
create_time, then_id), so the verdict cannot flip with the database's return order. - Timezone-safe by construction: the cloud runs on UTC and the client derives "today" in Asia/Shanghai, so the task list and the reminders cannot disagree by a day.
- Every query is owner-scoped and paged past the platform caps (100 documents per cloud query, 20 per client query); the naive version quietly read other patients' plans and truncated at 100 records.
- Ships a dependency-free suite:
node tests/regression.test.jsruns 11 invariants across three timezones, and each one goes red if the corresponding fix is reverted.
Projects with 1,000+ stars that have merged my pull requests upstream, refreshed automatically. Individual pull requests are not listed here.
| Project | ★ | Merged |
|---|---|---|
bytedance/deer-flow |
83.3k | 2 |
crewAIInc/crewAI |
59.3k | 1 |
agno-agi/agno |
42.5k | 1 |
deepset-ai/haystack |
26.6k | 1 |
TencentCloud/Octop |
6.3k | 7 |
VRSEN/agency-swarm |
4.6k | 1 |
Plus 1 more merge below the 1,000-star floor: llm-d/llm-d-inference-sim.
Merges only, counted per project above the 1,000-star floor. Checked automatically by .github/workflows/refresh.yml; last change 2026-10-02 08:45 UTC.
Generated daily from my contribution graph by .github/workflows/snake.yml. Artwork above is built by design/build.py.
If one of my projects is useful to you, a star or issue is always appreciated.

