Gator is a local multi-user RSS feed collection CLI built with TypeScript, Drizzle ORM, and PostgreSQL. It stores users, feeds, follow relationships, and feed posts in a local Postgres database.
- Node.js / npm
- PostgreSQL database running locally
- A valid Postgres connection string for your database
- Install dependencies:
npm install- Create the config file in your home directory:
{
"db_url": "postgres://postgres:postgres@localhost:5432/gator?sslmode=disable"
}Save this as ~/.gatorconfig.json.
- Build the project and generate/run migrations if needed:
npm exec -- tsx src/index.tsRun commands with:
npm run start -- <command> [args]register <username>— create a new user and set them as currentlogin <username>— set the current userusers— list all registered users
addfeed <name> <url>— add a new feed and follow it as the current userfeeds— list all feeds and their creatorsfollow <url>— follow an existing feed as the current userunfollow <url>— unfollow a feed as the current userfollowing— list feeds followed by the current user
agg <interval>— run the feed fetcher continuously, whereintervalis like1s,30s,1m
Example:
npm run start -- agg 1mbrowse [limit]— show the most recent posts for feeds followed by the current user
If limit is omitted, the default is 2.
reset— delete all users and cascade delete related feeds/follows
- The CLI is intended for local development.
- The program uses
~/.gatorconfig.jsonto store the database URL and current user. aggis a long-running process and should be stopped withCtrl+C.