unkey-cli
CLI login example built with Unkey
Running this locally
This template involves a deployed Next.js web app in
examples/nextjs
and a command-line script in
/src/index.ts.
. To run through the auth flow locally:
pnpm install
at the root
- Create a new terminal window and navigate to to
web
pnpm install
pnpm dev
to run the web app
cd ..
to navigate back to the root
pnpm dev login
to run the CLI script in dev mode
- This will open the web app in your browser, where you can confirm or cancel the auth flow
About
How this works
- CLI spins up server on localhost
- CLI opens a page in the user's browser (/auth/devices) which is protected by an auth solution (Clerk, in this case)
- The user verifies that the code there matches the one shown in their terminal
- Upon verification, the Next.js app mints a new Unkey API key and sends it back to the local server
- The script writes the API key to a file and kills the server
See the diagram below:

Login
npx @unkey/cli-demo login
does the following:
- Opens a new browser window for your user to log in with your service
- If this is sucessful, queries Unkey for a new API key
- Stores the key locally in
.unkey
Example use case
Vercel has a CLI for deploying web applications (as well as a their more frequently used web app)
If you want to deploy your frontend with their CLI, you:
- Run
vercel login
to log in to the web app and set a local credential in .vercel
- Run
vercel deploy
which takes local files and uploads them to the Vercel CI/CD to be deployed.
This is a simplified example the kind of tool that you could build with this template.