Skip to content

Latest commit

 

History

1,091 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Irodr Actions Status: test

A keyboard-driven reader for Inoreader and GitHub Notifications.

Irodr provides a similar experience to LDR: feeds with unread items are listed on the left, s/a move between feeds, j/k move between items, and a feed is marked read when you leave it.

Screen Shot

Features

  • Fast reading like LDR
    • Prefetches the next feeds, so moving to them is instant
    • Marks a feed read when you move to another one, through the newest item you have loaded
    • Keyboard shortcuts for everything
  • Sources side by side: Inoreader feeds and GitHub notifications (grouped by repository) in one list
  • Customizable by user scripts through window.userScript

Usage

login gif

  1. Open https://irodr.netlify.app/
  2. Sources opens automatically. Click Connect to Inoreader
  3. Click Authorize on the Inoreader site

GitHub Notifications

In Sources, enter a classic GitHub personal access token with the notifications scope and click Connect GitHub. Sources links to GitHub's token form with the scopes already selected. Unread notifications of every type are grouped by repository under GitHub Notifications. Moving to another feed marks the departed repository's notifications read on GitHub, through the newest loaded notification. Shift+S skips without marking read, and m marks the current feed read without moving. Inoreader login is not required.

The token and cached notifications are stored unencrypted in this browser. See Source adapters for details, storage and limitations.

Keyboard Shortcuts

Key Action
j / k Next / previous item
s / a Next / previous feed (leaving a feed marks it read)
Shift+s Skip to the next feed without marking the current one
m Mark the current feed read
Shift+j Show all items and load older ones
t Toggle unread / all items
v Open the current item in a new tab
z Collapse / expand all categories
Space / Shift+Space Scroll down / up
Shift+t Toggle translate mode (English → Japanese)
Shift+h Print read items of this session to the console

Shortcuts use the physical key, so they also work with non-Latin keyboard layouts. Translate mode uses the browser's Translator API. In other browsers, install irodr-translate.user.js to translate with Google Translate (see Translation). Irodr supports current browsers: features that are Baseline Widely available. Preferences saved by irodr 1.x are carried over on the first start.

Custom Inoreader Client ID and Client Secret

To use your own Inoreader app:

  1. Visit https://www.inoreader.com/ and open Preferences → Developer
  2. Create a new app with the Read and Write scope (a redirect URL is not required)
  3. In irodr's Sources, open Use your own Inoreader app, enter its Client ID and Client Secret, and click Connect to Inoreader

User Script API

Irodr provides an API for user scripts such as Greasemonkey scripts:

  • window.addEventListener("userscript-init", (event) => { /* window.userScript is ready */ })
  • window.userScript.getActiveContent()
  • window.userScript.getActiveSubscription()
  • window.userScript.triggerKey(keys) / window.userScript.registerKey(keys, handler)
  • window.userScript.event.subscribe("SubscriptionContent::componentDidMount", handler)

See the User Script API document and resources/userScript.

CORS

Inoreader's API does not allow CORS, so irodr sends Inoreader requests through a proxy.

GitHub's API allows CORS and is called directly.

Development

Irodr is a client-side React application built with Vite+ (vp), React with React Compiler, and StyleX.

pnpm install          # or: vp install
pnpm run dev          # http://localhost:8888/
pnpm run check        # vp check: format (Oxfmt), lint (Oxlint) and type check
pnpm run fix          # vp check --fix
pnpm test             # vp test: unit tests (Vitest)
pnpm run test:e2e     # integration tests (Playwright) against fake Inoreader and GitHub APIs
pnpm run build        # production build into dist/

The pre-commit hook (.vite-hooks/pre-commit) formats and lints staged files and runs the unit tests. It is installed by pnpm install (vp config).

Changelog

See Releases page.

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Contributing

Pull requests and stars are always welcome.

For bugs and feature requests, please create an issue.

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

License

MIT © azu

OSS Supports

Netlify

About

RSS reader client like LDR for Inoreader.

Topics

Resources

Code of conduct

Security policy

Stars

141 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages