My Open Source CLI Arsenal: A Tour of Published Packages
Why do developers love CLIs? Because GUIs are for people who like clicking around—we prefer to get straight to the point.
I've been on a CLI-building spree lately, and I realized I should document the tools I've released into the wild. These packages span both npm and PyPI, built with TypeScript and Python respectively, and designed to bring powerful APIs directly to your terminal.
Here's the current lineup.
NPM Packages
Ghost CLI

Package: @agileguy/ghost-cli | Version: 1.0.0 | Runtime: Bun/TypeScript
A powerful CLI for managing Ghost CMS deployments. If you're tired of clicking through the Ghost admin panel for routine tasks, this tool brings the full Ghost Admin API to your terminal.
Why did the Ghost CLI cross the terminal? To get to the other site—because it manages multiple Ghost instances.
Features:
- Complete CRUD for posts, pages, members, and tags
- Batch operations with concurrency control
- Multi-profile configuration for managing multiple Ghost sites
- Advanced filtering with type-safe query builder
- Media upload with automatic markdown generation
npm install -g @agileguy/ghost-cli
ghost posts list
ghost posts create --title "New Post" --status draft
GitHub: agileguy/ghost-cli
Bluesky CLI

Package: bsky-cli | Version: 1.0.2 | Runtime: Bun/TypeScript
A full-featured command-line interface for the Bluesky social network, built on the AT Protocol. Post, interact, and manage your Bluesky presence without leaving the terminal.
Why did the developer use bsky-cli? Because opening a browser to post "Hello World" felt like overkill.
Features:
- Authentication with secure session management
- Posting with images, replies, and quotes
- Timeline viewing for home feed and notifications
- Social features - follow/unfollow, search, profiles
- Direct messages - send and receive DMs
npm install -g bsky-cli
bsky login
bsky post "Hello from the command line!"
bsky timeline
GitHub: agileguy/bluesky-cli
PyPI CLI

Package: pypkg-cli | Version: 1.0.0 | Runtime: Bun/TypeScript
A command-line interface for the Python Package Index. Search packages, view statistics, check vulnerabilities, and even publish packages—all from your terminal.
Why is pypkg-cli written in TypeScript instead of Python? Because sometimes the best Python tool is one that doesn't require a virtual environment.
Features:
- Package discovery with search and filters
- Detailed info - metadata, versions, dependencies
- Statistics - download trends and charts
- Security scanning via OSV API
- Publishing to PyPI or TestPyPI
npm install -g pypkg-cli
pypi search django --limit 10
pypi info requests
pypi stats numpy --period month
GitHub: agileguy/pypi-cli
Resend CLI

Package: resend-email-cli | Version: 1.0.1 | Runtime: Bun/TypeScript
A command-line interface for the Resend email API. Send emails, manage domains, contacts, audiences, and broadcasts directly from your terminal.
Why did the email go to the terminal? Because it wanted to be sent without all the GUI drama.
Features:
- Email sending - single, batch, and scheduled
- Domain management - add, verify, configure
- Audience and contact management
- Broadcast campaigns - bulk email to audiences
- Webhook integration for delivery events
npm install -g resend-email-cli
resend emails send --from "[email protected]" --to "[email protected]" --subject "Hello!"
GitHub: agileguy/resend-cli
PyPI Packages
LogView

Package: logview-ag | Version: 0.8.0 | Runtime: Python
A testable, responsive log viewer TUI with pluggable log source contexts. Built with Textual for a beautiful terminal interface.
Why did the developer build LogView? Because tail -f is great until you need to search, filter, and not go blind staring at scrolling text.
Features:
- Multiple log sources: local files, syslog, Docker, GCP Cloud Logging, GKE
- Format auto-detection: plain text, JSON Lines, syslog
- Tree-based context switcher with collapsible folders
- Flexible filtering: time range, severity, text search
- Server-side filtering for GCP/GKE (80-90% data transfer reduction)
- Memory efficient batch processing for large files
pip install logview-ag
logview /var/log/syslog
logview --gcp-project my-project
GitHub: agileguy/logview
Sequel

Package: sequel-ag | Version: 1.6.1 | Runtime: Python
A TUI for browsing Google Cloud resources. Navigate your GCP projects, instances, and services with a keyboard-driven terminal interface.
Why is it called Sequel? Because after you browse your cloud resources, there's always a sequel—like "why is this instance still running?"
Features:
- Browse GCP projects and resources
- Tree-based navigation
- Keyboard-first interface
- Resource details and metadata viewing
pip install sequel-ag
sequel
GitHub: dan-elliott-appneta/sequel
Rally CLI

Package: rally-cli | Version: 2.0.3 | Runtime: Python
A command-line client for Rally (now Broadcom) agile project management. Query stories, defects, and tasks without leaving your terminal.
Why did the scrum master use Rally CLI? Because they finally found a way to update tickets without accidentally clicking "Accept All Cookies" first.
Features:
- Query user stories and defects
- View sprint/iteration data
- Create and update work items
- Export data for reporting
pip install rally-cli
rally stories --project "My Project"
rally defects --state Open
GitHub: dan-elliott-appneta/rally-cli
The Common Thread
All of these tools share a design philosophy:
For TypeScript/npm packages:
- Bun runtime for blazing-fast startup
- Commander.js for CLI framework
- Zod for runtime validation
- Multi-format output (JSON for scripts, tables for humans)
For Python/PyPI packages:
- Textual or Click for CLI/TUI
- Type hints throughout
- Comprehensive test coverage
- Keyboard-first interfaces
Why do all my CLIs support JSON output? Because jq is the real hero, and I'm just here to feed it data.
Package Summary
| Package | Registry | Version | Purpose |
|---|---|---|---|
@agileguy/ghost-cli |
npm | 1.0.0 | Ghost CMS management |
bsky-cli |
npm | 1.0.2 | Bluesky social network |
pypkg-cli |
npm | 1.0.0 | PyPI package discovery |
resend-email-cli |
npm | 1.0.1 | Resend email API |
logview-ag |
PyPI | 0.8.0 | Log viewer TUI |
sequel-ag |
PyPI | 1.6.1 | GCP resource browser |
rally-cli |
PyPI | 2.0.3 | Rally agile management |
What's Next?
I'm always looking for APIs that would benefit from a CLI interface. If there's a service you use frequently that lacks good terminal tooling, let me know!
All packages are MIT licensed and open for contributions.
Install npm packages with npm install -g <package> or bun install -g <package>. Install PyPI packages with pip install <package> or pipx install <package>.
And remember: a good CLI is like a good joke—it gets straight to the punchline without making you click through three dialog boxes first.