I'm an AI product engineer based in Guangdong, China. I make AI feel useful—from agentic interfaces and document intelligence to privacy-first developer tools.
My best work sits where product taste, interaction design, and engineering depth meet: reduce ambiguity, make the interface feel inevitable, and ship the details that make a product hold together.
Make AI feel useful.
Current inquiry: how AI agents can work with visual canvases instead of only replying in chat.
Inkling · Agent-native visual thinking
Inkling is an AI mind-mapping canvas. Muse reads your PDFs and draws editable maps live—skeleton first, details grafting in—then sees the nodes you edit by hand and builds on those changes instead of regenerating the whole map.
React · Hono · Vercel AI SDK · AntV X6
| Project | What it does | Built with |
|---|---|---|
| MindGeniusAI |
A self-hostable AI agent that reads PDFs and draws editable mind maps with visible tool calls, built-in RAG, multi-provider support, and bring-your-own-key privacy. The open-source predecessor to Inkling. | React Hono Vercel AI SDK RAG |
| flutter-motion-kit · Live ↗ | Previewable Flutter animations with traceable pitfalls, real running web demos, an interactive parameter playground, and remote MCP reuse. | Astro Flutter MCP |
| gpt-image-2-tools · Live ↗ | A free, privacy-first, multi-provider image playground for text-to-image, image-to-image, inpainting, and voice control. Your key stays in the browser. | Astro React BYOK |
| apidoc2MCP | Parses OpenAPI, Swagger, Markdown, and HTML API docs, then generates MCP service definitions that AI tools can call directly. | Python TypeScript MCP |
Earlier work: vue3-pdf-viewer / @xianjianlf2/vue-pdf-viewer, an archived PDF.js viewer for Vue 3.
I work upstream in the active projects I use—especially agent runtimes, developer tools, and infrastructure. Browse the live list of open pull requests →
| Project | Current contribution |
|---|---|
| Mastra | Abort A2A streams when tasks are canceled |
| Qwen Code | Scope startup warnings to development sessions |
| GitHub Copilot SDK | Support bracketed IPv6 runtime URLs |
More active upstream work
Curated snapshot checked on 7 Aug 2026; the live GitHub query above is the source of truth.
| Project | Merged contribution |
|---|---|
| Qwen Code | Fail closed on zero-inode file-cache entries |
| Mastra | Retry empty working-memory extraction |
| pnpm | Apply the publishedBy cutoff to the held-back update baseline |
More recent and earlier merged work
I rebuild familiar tools—and now agent runtimes—from scratch to understand the decisions beneath their APIs. Each project develops one system incrementally, commit by commit.
super-agent · Tool-using agents, chapter by chapter
A branch-by-branch study of streaming, tool calling, MCP clients, deferred tool loading, session persistence, and context compaction.
TypeScript · Vercel AI SDK v6 · Qwen · MCP
Explore the 6-project mini-* source-code series
| Project | Systems explored |
|---|---|
| mini-vue | Reactivity, virtual DOM diffing, template compilation, lifecycle hooks |
| mini-koa | Middleware composition, onion model, context, router layering |
| mini-react | Fiber, reconciliation, useState, useEffect |
| mini-webpack | Module bundling, dependency graphs, loaders, plugins |
| mini-compiler | Tokenization, parsing, AST traversal, code generation |
| ts-axios | Interceptors, config merging, data transforms, cancellation, and other HTTP-client internals |
Have an interesting product idea or open-source problem?
See what I've shipped · GitHub activity · Juejin · Say hello




