cheapass
v0.2.1
Published
Developer CLI for the cheapass API platform — curated RSS/Atom reader (and more).
Maintainers
Readme
cheapass CLI
The developer CLI for the cheapass API platform. Built with Pastel (command routing) + Ink (rendering).
Install
npm install # in cli/
npm run build # tsc → dist/cli.js
node dist/cli.js --helpOnce published: npm i -g cheapass then cheapass --help.
Auth
cheapass loginPrompts for the API base URL and your API key (sma_live_…), verifies it against /v1/users/me, and saves to ~/.cheapass/config.json.
AI assistant
Bare cheapass (in a real terminal) opens an interactive assistant: ask a question in natural language, OR type a cheapass command — input that parses as a command runs as one, otherwise it goes to the AI. Force modes with a leading / (command) or ? (AI).
cheapass ask "<question>" — one-shot, scriptable/non-TTY: prints the answer and exits.
The assistant is READ-ONLY: it finds feeds and answers from docs, and emits ready-to-paste cheapass … commands (with a one-line description each) for anything actionable — it never changes state itself.
Feeds commands
| Command | Description |
|---------|-------------|
| cheapass feeds categories | List the curated category taxonomy |
| cheapass feeds browse <category> | List feeds in a category (with reliability badges) |
| cheapass feeds subscribe <url> | Subscribe to a feed URL (validated + autodiscovered) |
| cheapass feeds list | List your subscriptions |
| cheapass feeds unsubscribe <id> | Remove a subscription |
| cheapass feeds items [--unread] [--json] | Your aggregated item stream |
| cheapass feeds read <id> | Mark an item read |
| cheapass feeds star <id> | Star an item |
Interactive reader
In a TTY, cheapass feeds items opens an interactive reader: ↑/↓ to move, r read, s star, o open in browser, q quit. When stdout is not a TTY (piped) or --json is passed, it prints output and exits — use --json for scripting:
cheapass feeds items --unread --json | jq '.[].title'Config
~/.cheapass/config.json — { "baseUrl": "...", "apiKey": "sma_live_…" }. Defaults baseUrl to the production API; override during login.
