I build the product layer around AI agents — the part that turns a capable model into something a team can actually inspect, run, recover, and ship. Local-first runtimes, multimodal workflows, Agent UX, and human review.
📍 Shanghai · building at @nexu-io and @refly-ai
| Project | What it is |
|---|---|
| Open Design | Local-first desktop app that turns your coding agent into a design engine. Prototypes, landing pages, dashboards, slides, images and video — as real files you can export to HTML, PDF, PPTX and MP4. TypeScript Electron BYOK |
| Nexu | Desktop client for OpenClaw. Bridges your agent into WeChat, Feishu, Slack and Discord in one click, so it stays reachable from your phone. TypeScript local-first |
| Refly | Open-source agent skills builder. Define a skill as a workflow, then run it on Claude Code, Cursor, Codex and more. Skills as infrastructure, not prompts. TypeScript multi-agent |
| agent-wiki | Local-first wiki runtime for coding agents — Rust core, JSON CLI, daemon refresh loop, thin MCP adapter. Rust MCP |
| caprika-agent-lab | Small, runnable AI product patterns pulled out of real agent work. One idea per folder, each one executable. patterns |
| director-frame-atlas | Reference-driven prompt studies that translate iconic film frames into original image-generation systems. prompt-systems |
Most of my day job lives in private repositories. Two threads worth naming.
Taking an AI product to paid. I built the commercial layer for a multi-tenant AI workspace end to end — a credit wallet, per-seat team plans running alongside personal subscriptions, upgrades that cross plan and billing interval, proration disclosed before anyone is charged, and a ledger that reconciles on a schedule instead of trusting a single write. The happy path was never the hard part. The hard part was checkout sessions that expire mid-flow, seat changes that must charge only the delta, and usage rollups that stay correct when the billing window moves underneath them.
A multimodal layer that survives its providers. I designed the control plane for image and video generation. Providers sit behind a kind-keyed registry, so the execution path carries no per-provider branching — adding one is a registration and a catalog row, not a new code path. On top of that: an idempotency state machine keyed on the provider call, so a retry can't double-charge or double-generate; pricing that stays correct when a request fails over to another provider or tier; and a hardened fetch policy for provider output, which is untrusted input like any other.
Systems over prompts. I design for inspection, recovery, and trust — end to end.
- Inspectable artifacts — every step leaves a clear trace: inputs, tools, outputs, decisions.
- Runnable slices — work stays modular, re-runnable, and safe to iterate on.
- Real repository survival — built for actual repos, teams, packaging, deployment, maintenance.
- Product + engineering + operations — one system from idea to capability.
I don't build chat experiences. I build systems people can inspect, run, recover, and trust.
I collaborate on open source that makes AI agents useful in real work — happy to talk about a project, trade feedback, or pair on something hard.
@alchemistklk · Shanghai, China




