Your feeds, in columns, on your desktop.

Newsphere is a desktop feed reader that lays your sources out as a grid of columns, opens articles in a clean reader and keeps everything on your machine. An assistant is optional and uses your own key.

How it works What runs today

Version 1.0.0-beta.1. Day-to-day work has been on Apple Silicon Macs. Not meaningfully tested on Windows or Intel Macs.

Illustrative mock, not a screenshot. Drawn in CSS from the app's structure: pages, rows of feed columns, headlines with age.

What it is and how it works

The repository is the desktop application: Tauri 2 for the native shell and window, React with Vite for the interface. The README describes a reader built around a column grid of feeds on topic pages, in a frameless rounded window with native window controls.

  1. Lay out your feeds in the app

    The home view is a grid. Each page holds rows of feed columns that you can reorder by drag and drop, with section labels. A searchable catalog of sources ships with the app, and you can add your own feed URLs.

    Source: README.md "Features", src/components/grid, public/catalog-sources.json

  2. Read in a focused view in the app

    Opening a headline loads the article into a reader that extracts the main content (a Mozilla Readability style pass) instead of sending you to a busy browser tab. The reader has previous and next article, share, bookmark, open in browser and close.

    Source: src/pages/reader-page.tsx, src/lib/article-extract.ts

  3. Keep it local in the app

    Layout and settings are saved with the Tauri Store plugin on your device. History and bookmarks are searchable lists in the app. Running the interface in a plain browser through Vite uses localStorage instead.

    Source: README.md "Persistence", package.json

Features

  • Column grid

    Pages of feed columns with drag-and-drop ordering and section labels.

    src/components/grid

  • Source catalog

    A bundled list of 212 feeds across 16 categories, plus custom feed URLs. The count comes from the catalog file in the repository.

    public/catalog-sources.json

  • Reader view

    Extracted article text, previous and next, share, bookmark, open in browser.

    src/pages/reader-page.tsx

  • Latest stream

    One newest-first stream across the feeds on a page.

    src/pages/feed-stream-page.tsx

  • History and bookmarks

    Searchable reading history and a bookmarks list with quick actions.

    src/pages/history-page.tsx, bookmarks-page.tsx

  • Keyboard shortcuts

    Shortcuts for grid home, latest, bookmarks, history, settings, refresh, search and add source, listed in an in-app dialog.

    src/lib/keyboard-shortcut-help.ts

  • Appearance

    Theme switch and a text-size slider, kept in settings.

    src/components/theme-provider.tsx, text-scale-provider.tsx

  • Native window

    Frameless, rounded window. macOS traffic lights on the left, Windows controls on the right.

    README.md "Window chrome"

  • Optional assistant

    Off by default. Bring your own key. See below.

    src/components/ai

The reader and assistant, as a mock

No screenshots exist in the repository. This is an illustrative mock, not a screenshot, drawn from the real component names: the reader page and the assistant drawer. Headlines and replies are placeholders.

Illustrative mock, not a screenshot.

The Newsphere app icon: four nested ellipses forming a sphere outline

The app icon, copied from src-tauri/icons. Real asset.

The assistant: optional, bring your own key

The README says nothing is sent to a Newsphere-hosted backend. You switch it on under Settings, App, AI tools (beta), and supply your own credentials. It supports several hosted providers and any compatible endpoint, including local ones such as Ollama or LM Studio. Keys stay on the device.

  • Off by default in the app

    When enabled, a control in the title bar opens a chat drawer with multiple sessions, and a floating prompt at the bottom starts a chat.

  • Looks at your cache in the app

    Each message adds a retrieval pass over locally cached headlines and excerpts, so the model sees relevant articles without you pasting them.

  • Can use tools beta

    A tool loop can read the open article, search the feed cache, list columns and pages, read bookmarks and history, fetch full article text from a URL, open an article or navigate. Web search is a separate switch, off by default. The README says tool calling can fail or misfire depending on the model.

  • Limits stated by the repo unverified

    Retrieval is snippet-based, streaming and citations are minimal, and cost controls are basic. Whether it works well with a given model was not tested here.

Status

  • runs described in the README as working
  • beta early, expect rough edges
  • planned on the roadmap only
  • unverified not checked for this page
  • macOS, Apple Silicon beta

    The main development target. It is the only setup the README says was exercised day to day.

  • macOS, Intel unverified

    A build is produced by the workflow, but the README says it has not been meaningfully tested.

  • Windows unverified

    The window chrome has a Windows layout, but the README says it has not been meaningfully tested and that a Windows build job is a future step.

  • Installers unverified

    The repository holds two Newsphere.dmg files, one per Mac architecture, each about 44 MB (44.5 MB measured here). They are not linked from this page and were not opened or run. The README does not say they are signed or notarized and lists that as a roadmap item.

    Source: public/downloads/macos-arm64 and macos-x64

  • Not App Store compatible stated

    The rounded window uses a macOS private API, which the README says rules out the App Store for that build.

  • Roadmap planned

    Sturdier feed fetching on large sets, better article extraction, signed builds, a Windows build, and maybe a light web build. The README makes no firm commitment on the web version.

  • Licence unverified

    The README gives the licence only as "Private / your choice". Check with the author before reusing the code.