Developer & product designer. I build native apps and the tools I wish existed.
| App | What it does |
|---|---|
| 書房 | Ad-free novel, comic & RSS reader — paste a URL, read offline. No account, no tracking · Website |
| Simple CF | Fast, native iOS & iPadOS client for your Cloudflare account |
| AmbientSound | Ink-wash styled white noise & sleep app — play and mix ambient sounds |
| MiniGames | Four childhood arcade games, redesigned for touch |
| App | What it does |
|---|---|
| MarkNote | Local-first WYSIWYG Markdown editor (Tauri, React, CodeMirror 6) |
| Assistant | Private, fully local AI assistant for Apple Silicon Macs |
| DbClient | Native rewrite of a DBeaver-class database client — Rust core, Metal grid, no JVM. ~35 databases from Postgres and MySQL to ClickHouse, DuckDB, MongoDB and Snowflake |
| InputMethodEditor | Windows Chinese IME (Zhuyin & Pinyin) built on libchewing |
| macshot for Windows | Windows port of macshot: annotate, record, OCR + translate, scroll capture |
| LiteBrowser | Lightweight tabbed browser for low-memory Windows / VDI — keeps only a few tabs live, freezes or discards the rest. Chrome extensions, built-in MCP server |
| apitool | Portable Postman-style API client for low-memory machines — REST, GraphQL, WebSocket, gRPC, MQTT; Postman/OpenAPI import. Unzip and run |
Most install via Homebrew: brew tap linzeyan/tools && brew install --cask <name>
| Tool | What it does |
|---|---|
| Poly | One CLI + two VSCode extensions that replace a pile of per-language highlight / lint / format extensions |
| formatter | Multi-format file formatter CLI in pure Rust |
| pm | CLI for managing v2ray / sing-box / xray |
| redis-top-keys-analyzer | Find the biggest and hottest keys in Redis |
| nginx | Auto-built nginx / OpenResty .deb / .rpm packages, statically linked, tracking upstream releases |
| file-format-viewer | Browser extension that pretty-prints and syntax-highlights raw data and config files |
CLIs install via Homebrew: brew tap linzeyan/tools && brew install <name>
| Tool | What it does |
|---|---|
| draft | Paste a SQL schema, get an ER diagram you can pan, zoom and edit — runs entirely in your browser |
| transform | Developer toolbox in Rust/WASM: UUID, JWT, hashes, JSON ⇄ YAML/TOML/XML, and more |
| keybr 注音 | Zhuyin (Bopomofo) typing trainer — a keybr.com fork that drills your weakest keys |
| Project | What it does |
|---|---|
| PaperCut | Fold virtual paper, cut shapes, unfold to see the pattern, export as SVG |
| Pintu | Turn any image into a coloring page or jigsaw puzzle |
| Universe | Animated solar system & Milky Way — rotation and orbits |
- loadconf — Go: declare a config struct, load it from files, environment variables and etcd
- webp-go — Pure-Go WebP encoder (lossy, lossless, animation, alpha), no cgo
🗄 Earlier work
- ops-cli — A collection of useful tools for ops
- block — Block IPs manually or from Nginx logs
- gpgen — Generate GraphQL or protobuf schema from model files
- gd — Get DNS zones and records from AWS, Cloudflare, West
- k8s_cluster — Install a k8s cluster with just
vagrant up



