babarot/oksskolten

🏔️ The AI-native RSS reader

解決する課題

ほとんどの RSS リーダーは、フィードが提供するもの(タイトルと短い要約程度)しか表示しません。Miniflux や FreshRSS などの一部のリーダーは記事の全文を取得できますが、フィードごとにオプトインで手動設定が必要です。Oksskolten はこれを変えます:すべてのフィード項目の元記事を自動的に取得し、Mozilla の Readability と 500 のノイズ除去パターンを使用して全文を抽出し、クリーンな Markdown に変換してローカルに保存します。フィードごとのトグルも CSS セレクタも不要で、常に完全な記事を取得できます。全文が常に利用可能であるため、AI による要約と翻訳は意味のあるコンテンツに対して機能し、全文検索はすべてをカバーし、記事を読むためにアプリを離れる必要はありません。

仕組み

Oksskolten は、Fastify API、React シングルページアプリ、組み込み SQLite データベース(WAL モード)、5 分ごとにフィードを取得する cron スケジューラを含む単一の Node.js プロセスとして実行されます。コンテンツパイプラインは次のように機能します:RSS フィードを取得し(適応型フィード別スケジューリングと条件付き HTTP リクエストを使用)、RSS/Atom/RDF を解析し、各記事の元 URL を取得し(ボット保護サイトのフォールバックとして FlareSolverr を使用)、隔離されたワーカースレッドで Readability を使用して記事コンテンツを抽出し、約 500 のノイズ除去パターンでクリーニングし、HTML を Markdown に変換し、言語検出と OGP 画像で結果を強化し、全文検索のために Meilisearch にインデックス付けします。

スマートフェッチは帯域幅を最小限に抑えます:3 層の変更検出(HTTP 304 → コンテンツハッシュ → 完全解析)を使用し、フィードアクティビティに基づいて各フィードに 15 分から 4 時間の独自のチェック間隔を設定し、レート制限時に Retry-After ヘッダーを尊重し、重複排除前に 60 以上のトラッキングパラメータを除去します。Oksskolten は MCP サーバーも公開しているため、Claude Code や任意の MCP クライアントはアプリを開かずに記事アーカイブを検索、要約、照会できます。すべてが単一の Docker コンテナにパッケージ化されており、RSS Bridge、FlareSolverr、Cloudflare Tunnel 用のオプションのサイドカーがあります。

対象ユーザー

Oksskolten は、全文抽出と AI をアドオンではなくデフォルトとして扱う、機能豊富な RSS リーダーを求めるセルフホスター向けです。Docker が動作する場所ならどこでも実行できるように設計されています—家庭用 NAS、Raspberry Pi、クラウド VM など。また、アプリ内で完全な記事を読みたい、手動設定なしで要約、翻訳、チャットなどの AI 支援機能を好む読者にも適しています。

ハイライト

  • Readability + 500 のノイズ除去パターンによる、すべての記事のデフォルトの全文抽出
  • Anthropic、Gemini、OpenAI による組み込みの AI 要約と翻訳、SSE ストリーミング対応
  • MCP ツールによるインタラクティブなマルチターン AI チャット—記事の検索、統計の取得、フィードについての質問
  • Meilisearch によるアーカイブ全体の全文検索
  • 適応型スケジューリング、3 層変更検出、トラッキングパラメータ除去によるスマートフェッチ
  • PWA サポート:オフライン閲覧、バックグラウンド同期、ホーム画面への追加
  • マルチ認証:パスワード、Passkey/WebAuthn、GitHub OAuth、それぞれ独立して設定可能
  • スマートフィード管理:自動検出、RSS Bridge による CSS セレクタフィード、FlareSolverr によるボット回避、無効フィードの自動無効化
  • 記事クリッピング:完全なコンテンツ抽出で任意の URL を記事として保存
  • 14 の組み込みテーマ + カスタム JSON インポート、9 の記事フォント、8 のコードハイライトスタイル
  • 単一の Docker コンテナに API、SPA、cron スケジューラを含む—外部キューや調整は不要

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト