Organiser

A read-later inbox that runs on your computer

Save it from your phone.
Read it when it’s due.

Share a link, a photo or a reminder from your phone. Your computer sorts it into a category, writes a short summary, gives it a read-by date, and sends a notification when that date comes.

Free and open source. No account.

The Add screen: Link, Camera and Remind buttons above a list of recent saves. The Add screen: Link, Camera and Remind buttons above a list of recent saves.
The Inbox: saved items with a category, the site, a read-by date, a summary and tags, each with Done, Archive, Edit and Delete buttons. The Inbox: saved items with a category, the site, a read-by date, a summary and tags, each with Done, Archive, Edit and Delete buttons.
The Calendar: a month view with the number of items due on each day, and today's items below. The Calendar: a month view with the number of items due on each day, and today's items below.
Your computerStores and sorts your saves
Your phoneA web app on the home screen
Your choice of modelOr no model at all
No accountJust a pairing code

How it works

A server on your computer and an app on your phone.

The server is one Python process. It serves the phone app, stores your items in SQLite, classifies each save and sends the notifications. The phone app is a web page you add to your home screen. It talks to your computer directly, over Tailscale or your home network.

phone

The app

Save, browse, search and mark done. Pair it once with a code or a QR code.

your computer

The server

Flask and SQLite, running as a systemd or launchd service.

classifier

A model you choose

claude, codex, gemini, Ollama, an OpenAI-compatible API, or rules only.

Save

A link, photo or reminder.

Paste a link, take a photo, or type a reminder for a call or a meeting. On phones that support it, sharing a link to the installed app saves it immediately.

The server fetches the page, falling back to a headless browser for sites that need JavaScript. Photos are read by the model when it can read images; otherwise OCR extracts the text. A link found in a photo is saved like any other link.

The Add screen in Organiser. The Add screen in Organiser.

Sort

Classified, summarised and dated.

Each saved link or photo gets one of eleven categories (Article, Paper, Video, Tool, Tweet, Repo, Job, Recipe, Travel, Shopping, Personal), a short summary, a few tags and a read-by date. The model suggests how soon to read it; otherwise each category has a default, from a day for a tweet to a month for a recipe.

You can edit the title, summary, category, date, time and notes of any item, and search everything you have saved.

The Inbox in Organiser. The Inbox in Organiser.

Remind

A notification when it’s due.

Your computer sends the notifications itself, as Web Push:

  • a daily digest of what’s due, at 09:00 or a time you set;
  • a notification at an item’s start time on the day it is due.

Tapping one opens the app on that item, or on the calendar for the digest. The calendar shows what is due on each day, and there is an .ics feed if you would rather see it in your calendar app. On iPhone, notifications need the app added to the home screen.

The Calendar in Organiser. The Calendar in Organiser.

Classifier

Use the model you already have.

The installer checks which classifiers this machine can run and asks which to use. You can change it later.

claudeThe Claude Code CLI (claude -p).Reads photos
codexThe Codex CLI (codex exec).Reads photos
geminiThe Gemini CLI (gemini -p).Reads photos
ollamaA local Ollama server and a model of your choice.With a vision model
apiAny OpenAI-compatible endpoint: a hosted API or a local LM Studio or llama.cpp server.If the model can
noneNo model: URL and domain rules plus the page title and description.OCR

Your items are stored only on your computer. With claude, codex, gemini or a hosted API, the link and page text are sent to that provider to be classified. With Ollama, a local API server or none, no model provider sees them.

Install

Install

Linux or macOS. The installer needs no sudo.

On your computer

Run the installer on the computer where your saves should be stored:

$ curl -fsSL https://apps.saidwivedi.in/organiser/install.sh | bash

It builds a Python environment, asks which classifier to use, creates a pairing code, installs a service and prints a QR code for your phone.

On your phone

Open the app and add it to your home screen: on iPhone, Share, then Add to Home Screen; on Android, Install app. iPhone needs this for notifications.

Your computer also serves the same app at its own address.

Connect

Scan the QR code the installer printed, or enter the address and pairing code in Settings. Then turn on notifications in Settings.

To reach your computer from anywhere, publish it on your tailnet:

$ sudo tailscale serve --bg --set-path /organiser 5557

Or clone the repository and install in place: git clone https://github.com/saidwivedi/organiser.git && cd organiser && ./install.sh

Questions

Questions

Who can see my saves?

Anyone with your computer’s address and the pairing code. The code is the only credential, so treat it like a password; you can replace it at any time, and every phone must then pair again. Repeated wrong codes are rate-limited. Expose the server over Tailscale or your own network, not the open internet.

Do I need Tailscale?

No. On the same Wi-Fi the phone can use your computer’s local address. Notifications need HTTPS, and plain local HTTP does not have it. Tailscale gives you an HTTPS address that works from anywhere.

What does the hosted app at this address receive?

It is a static page and never receives your items or your code. Your phone keeps the address and code in its own storage and calls your computer directly. A pairing link carries the code after a #, which browsers never send to a server.

How do I update it?

Run the installer again with --update. It keeps your pairing code, your items and your settings.

Save it now. Read it when it’s due.

Install Organiser once on your computer, then save from your phone.