A personal knowledge radar that monitors RSS feeds and blogs, summarizes articles with AI, learns your preferences through star ratings, and serves a mobile-friendly feed — all in a single binary.
- RSS & blog monitoring — add RSS feeds or blog URLs, KnowledgeHub checks them every 30 minutes
- AI summaries & scoring — each article gets a 2-4 sentence summary and 1-5 star relevance rating via OpenRouter (Claude, GPT, Llama, etc.)
- Preference learning — rate articles yourself and the AI learns what you care about over time
- Article chat — ask questions about any article in a streaming chat panel
- Quarantine — broken feeds are automatically quarantined after 5 consecutive failures
- Mobile-friendly — responsive Tailwind CSS design, works great on phone browsers
- Single binary — Go backend with SvelteKit frontend embedded, just copy and run
- Browser notifications — get notified when 5-star articles arrive (via PocketBase realtime SSE)
For building from source:
- Go 1.24+
- Bun (for building the frontend)
For running the binary:
- Linux amd64 (the release target)
- An OpenRouter API key (get one here)
git clone https://github.com/jgordijn/knowledgehub.git
cd knowledgehub
make buildThis builds the SvelteKit frontend, embeds it in the Go binary, and outputs build/knowledgehub.
./build/knowledgehub serveOpen http://localhost:8090 in your browser.
On first launch, PocketBase will show you a link to create your superuser account. You can also create one from the command line:
./build/knowledgehub superuser upsert you@example.com yourpassword- Log in to the app
- Go to Settings (bottom nav)
- Enter your OpenRouter API key and choose a model (default:
anthropic/claude-sonnet-4) - Go to Resources and add your first RSS feed or blog URL
That's it. KnowledgeHub will start fetching and summarizing articles automatically.
| Variable | Default | Description |
|---|---|---|
KH_DATA_DIR |
./kh_data |
Directory for the SQLite database and PocketBase data |
./knowledgehub serve --http=0.0.0.0:8090 # Listen address and portAll PocketBase CLI flags are available — run ./knowledgehub --help for the full list.
| Setting | Description |
|---|---|
| OpenRouter API Key | Your sk-or-v1-... key from openrouter.ai |
| Model | OpenRouter model ID, e.g. anthropic/claude-sonnet-4, openai/gpt-4o, meta-llama/llama-3.1-70b-instruct |
# Create a system user
sudo useradd -r -s /bin/false knowledgehub
# Create the install directory
sudo mkdir -p /opt/knowledgehub/data
sudo chown -R knowledgehub:knowledgehub /opt/knowledgehub# Download the latest release (or build with: make release)
curl -LO https://github.com/jgordijn/knowledgehub/releases/latest/download/knowledgehub-linux-amd64.tar.gz
# Copy to the target machine (skip if downloading directly on the host)
scp knowledgehub-linux-amd64.tar.gz yourhost:/tmp/
# On the target machine
ssh yourhost
cd /opt/knowledgehub
sudo tar xzf /tmp/knowledgehub-linux-amd64.tar.gz
sudo cp knowledgehub.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now knowledgehubsudo systemctl status knowledgehub
curl http://localhost:8090 # should return the UIThe release tarball includes an auto-updater that checks GitHub for new releases every minute and installs them automatically.
cd /opt/knowledgehub
sudo cp knowledgehub-updater.sh /opt/knowledgehub/
sudo cp knowledgehub-updater.service knowledgehub-updater.timer /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now knowledgehub-updater.timerCheck update status:
systemctl status knowledgehub-updater.timer # next/last run
journalctl -u knowledgehub-updater.service # update logssudo systemctl stop knowledgehub
cd /opt/knowledgehub
curl -LO https://github.com/jgordijn/knowledgehub/releases/latest/download/knowledgehub
chmod +x knowledgehub
sudo systemctl start knowledgehubThe SQLite database in /opt/knowledgehub/data is preserved across updates. PocketBase handles schema migrations automatically.
# Run tests
make test
# Start the backend in dev mode (serves on :8090)
make dev
# Frontend dev with hot reload (separate terminal)
cd ui && bun run devcmd/knowledgehub/ Go entry point, PocketBase collections and hooks
internal/ai/ OpenRouter client, summarizer, preference learning
internal/engine/ Scheduler, RSS parser, scraper, readability, quarantine
internal/routes/ Custom API endpoints (article chat)
internal/testutil/ Shared test helpers
ui/ SvelteKit frontend (Tailwind CSS, static adapter)
The PocketBase admin dashboard is always available at http://localhost:8090/_/. From there you can:
- Browse and edit all data directly
- Manage auth (your superuser account)
- View logs
- Export/import collections
Personal project — not published under a public license.