GetMeACoffee CLI
A terminal-based creator tipping tool that integrates Khalti payments, allowing users to send virtual coffees, attach messages, and track contributions directly from the command line.

A reason to build
Most creator-support platforms rely on graphical web interfaces. This project explores whether developers can support creators directly from their terminals while still using a conventional payment gateway. The main technical challenge is bridging CLI interactions with external payment flows and maintaining trustworthy transaction records.
What I worked on
Independently developed a command-line tipping application with a Node.js CLI, Express backend, and SQLite database. Integrated Khalti's ePayment API for payment initiation and verification, implemented username-based creator registration, contribution tracking, and backend rate limiting.
How the pieces fit
- Built an interactive command-line interface using Node.js and readline/promises.
- Implemented username-based creator registration and lookup.
- Developed Express API endpoints for registration, contributions, payment verification, and contribution history.
- Integrated Khalti ePayment API v2 to initiate payments and generate payment links.
- Used Khalti's payment lookup API to verify transaction status before marking contributions as completed.
- Stored creator information and contribution records in SQLite without an ORM.
- Supported anonymous contributions with optional sender names and messages.
- Added rate limiting to sensitive endpoints and documented a sandbox testing workflow.
The detail that matters
Separated the terminal interface from payment processing by using an Express backend. Chose SQLite for lightweight persistence and Khalti's hosted payment flow to avoid collecting sensitive payment credentials directly in the CLI.
Where it stands
Built a functional CLI prototype supporting creator registration, username-based tipping, payment initiation, transaction verification, and contribution history. Published the source code with a demonstration GIF and Khalti sandbox setup instructions.
Learned how to design interactive command-line applications and connect them to external services. Gained practical experience with payment initiation, server-side transaction verification, API design, lightweight persistence, and protecting financial workflows from untrusted client responses.
Localify
Have a useful problem to solve?
Let’s talk