I'm a frontend and AI-agent engineer based in Qingdao, China. At work I build browser products with the Fyde & Phi team (Phi Browser, FydeOS). Outside work I make small tools for people who spend their day in a terminal next to an AI coding agent, and I write about how LLMs actually behave.
- Koshell (source) is a human-centric shared terminal. It wraps the shell you already use, turns command boundaries, exit codes and output into structured context an AI can read on demand, and leaves every command under your control. Rust front process, Bun agent daemon, JSONL over a Unix socket. Still early; I write up the design and the negative results as I go.
- Teishoku is a versioned, opinionated menu of engineering decisions that coding agents can read and pin to, so a project does not re-litigate its stack every week.
- tmux-agent-watch: a read-only TUI that shows whether each AI coding agent in your tmux panes is working, blocked or idle.
- TmuxAgentWatch: the same idea as a native macOS menu bar app.
- k380-keepalive: keeps a flaky Logitech K380 Bluetooth link alive on macOS.
- LLM 与信息熵 (Chinese): an LLM is a probability cloud, not a wish-granting machine. Compression, transcription and completion as three ways information flows through it.
- More at sjdhome.com, mostly in Chinese.
- TypeScript, React and Node / Bun day to day. Rust for the system-level pieces. Python and Go when they fit better.
- I prefer mature abstractions, type safety, tests and graceful degradation over clever code, and I keep a written trail of why decisions were made.
- When something feels wrong, I would rather look at logs and reproduce it than argue from impression.
- Website: sjdhome.com
- X: @sjdhoome

