Building GitHub OAuth device flow in a Node.js CLI

When building a CLI tool that needs GitHub access, you have three options: