A command-line tool to fetch and filter Bluesky posts by Swahili language with ≥98% accuracy.
# Bluesky Swahili CLI
A command-line tool and REST API to fetch and filter Bluesky posts by Swahili language with ≥98% accuracy. Features intelligent profile caching and smart network traversal for discovering Swahili content creators.
## Features
- 🔐 Secure authentication with Bluesky app passwords
- 📝 Fetches up to ~200 posts from any public handle
- 🗣️ Filters posts for Swahili language with 98%+ confidence
- 🔗 Prints posts with timestamps and direct URLs
- ⚡ Fast language detection using langdetect
- ✅ Fully tested with 100% coverage on filter logic
- 🕷️ **NEW**: Smart crawler with profile caching and network traversal
- 🌐 **NEW**: REST API for programmatic access
- 💻 **NEW**: Web UI for discovery and exploration
- 📊 **NEW**: Profile cache that learns and grows over time
## Installation
### Global Installation
```bash
npm install -g bluesky-swahili-cli
swahili bsky.app
```
### Using npx (No installation required)
```bash
npx bluesky-swahili-cli bsky.app
```
### Local Development
```bash
git clone
github.com
cd Bluesky-Swahili-CLI
npm install
npm run build
npm start -- bsky.app
```
### Run Web App and REST API (Local)
```bash
# Install dependencies
npm install
# Build backend and frontend
npm run build:backend
npm run build:web
# Start REST API + Web App with pm2
pm2 start ecosystem.config.cjs
# Web app will be available at
localhost
# REST API at
localhost
```
## Setup
### 1. Create a Bluesky App Password
1. Go to Bluesky Settings
2. Navigate to **App Passwords** section
3. Create a new app password for this CLI
### 2. Set Environment Variables
#### For Global Installation
When using `npm install -g bluesky-swahili-cli`, create a `.env` file in your working directory or home directory:
**Option A: Per-directory setup** (create `.env` where you run the command)
```bash
# Navigate to your working directory
cd ~/my-project
# Create .env file
cat > .env ~/.env
```
## …