Free · Open source · MIT licensed

Organise your tasks. Focus on what matters.

Kairos groups your work by category and date, keeps recurring habits on a month grid, breaks the big things into subtasks, and shows you where your progress actually comes from — without the labels, priorities and settings that turn a task list into another project.

An illustration of the workspace, with example tasks.

Features

Everything you need to finish what you started

Kairos is deliberately small. It keeps the parts that help you decide what to do next — a day view, habits, categories and a weekly read — and leaves out the parts that turn a task list into another project.

  • Today, and everything else

    Today shows what is due now. All Tasks lists the rest grouped by day, latest first, with anything undated collected at the end under Unscheduled.

  • Habits that come back on their own

    Pick the weekdays a habit should happen and today's instance appears in Today. A missed day is simply missing, never a backlog — and a month grid with a 30-day trend shows the streak.

  • Categories with a colour and an icon

    One category per task, each with its own colour and icon in the sidebar. Work you have not filed yet collects in an Uncategorized bucket instead of disappearing.

  • Subtasks and drag and drop

    Break a task into one level of subtasks — they inherit the parent's category — then reorder with the pointer or the keyboard. Dropping a task onto another nests it.

  • Statistics that explain the week

    A completion donut, a 7- or 30-day history and a breakdown by category, so you can see where the week went instead of just a total. Habit check-ins are counted apart from tasks.

  • A reminder at the hour you choose

    Switch on one daily push notification and pick the hour — it is read in your own timezone. Nothing is sent until you enable it on a device, there are no per-task pings, and it stops with one tap.

  • Keyboard-first, and filterable

    Shift + T for Today, Shift + H for Habits, / to filter, n for a new task, ? for the full list — all of it also works with a pointer, and the filter box sits in the top bar.

  • JSON backup that includes habits

    Export tasks, subtasks, habits, categories, history and settings as one versioned JSON file, then import it back. Nothing is locked in.

  • Private by construction, open source

    Each account gets its own workspace, and that separation is enforced in the data layer rather than only hidden in the interface. MIT licensed: use the hosted version, or run your own with one Docker Compose command against your own PostgreSQL.

Getting started

Four steps, about a minute

There is nothing to configure first. Your workspace starts empty and fills up as you use it.

  1. 1

    Create an account

    An email address or a Google account, and you are in. No payment, no setup, no waiting for approval.

  2. 2

    Plan the day

    Add tasks, give them a category, a day or a due date, and drag them into the order that matches what matters.

  3. 3

    Keep the habits

    Choose the weekdays each habit is due. Today's instance shows up in Today, a missed day stays missed, and the month grid is there when you want the bigger picture.

  4. 4

    Read the week

    Statistics show completions over the last 7 or 30 days by category, and habits get their own trend. Switch on the daily reminder if you want a nudge.

Self-hosting

Your tasks, on your own hardware

Kairos is a Next.js server beside a PostgreSQL database, and the repository ships the Compose file that runs both. Clone it, start it, and the workspace is yours — no outside services, no accounts unless you want them.

  • Compose does the wiringThe app and PostgreSQL start together, in the right order.
  • Your data stays on a volumeRebuilding the app never touches your tasks.
  • Loopback by defaultPublished on 127.0.0.1, so it is not reachable from your network.
Terminal — about a minute
git clone https://github.com/mahmoud-ath/Kairos.git
cd Kairos
cp .env.example .env   # set KAIROS_AUTH_DISABLED=true
docker compose up -d --build

# → http://127.0.0.1:3000

FAQ

Common questions

Is Kairos free?

Yes. The hosted version is free to use, and the source code is MIT licensed, so you can run your own copy without paying anything to anyone.

Do I need an account?

For the hosted version, yes — an email address or a Google account. That account is what gives you a private workspace, so your tasks are kept separate from everyone else's. If you self-host, you run the app against your own database and decide for yourself whether sign-in is required.

Is it a habit tracker as well as a task manager?

Yes. A habit is a rule — which weekdays it is due, and from which day — and today's instance shows up in Today like any other task. Progress is read from that completion history, which is what makes the month grid, the streak and the 30-day trend possible. Habits are kept out of All Tasks and Completed on purpose: they are not a backlog to clear.

Are there reminders?

One daily reminder, if you want it. Enable notifications on a device and choose the hour in Settings; the hour is read in your account's timezone and the same short message goes out once a day. There are deliberately no per-task reminders and no email digests. Push needs your browser's permission, and a self-hosted copy supplies its own VAPID keys.

What can I organise tasks by?

Categories and dates. A task belongs to one category, can be scheduled for a day, can carry a due date, and can have one level of subtasks. Categories carry a colour and an icon, and anything you have not filed yet collects in an Uncategorized bucket. There are deliberately no labels and no priorities: the category is the only grouping, which is what keeps the decision about what to do next quick.

Is my data private?

Each account has its own private workspace, and that separation is enforced in the data layer rather than only in the interface — one account cannot read another's tasks. On the hosted version your tasks live in a PostgreSQL database operated by the service; they are not stored only on your device. If you would rather keep every byte on hardware you control, self-host.

Can I self-host it?

Yes, and Docker Compose makes it one command. Clone the repository, copy .env.example to .env, and run docker compose up -d --build: that builds the app, starts PostgreSQL beside it, applies the database migrations and serves Kairos on 127.0.0.1. Data lives on a named volume, and upgrades are a rebuild and a restart. The full guide — configuration, health checks, backups and what to do before exposing it to the internet — is on the Docker guide page.

Does it work offline?

No. Every screen is rendered from your database, so Kairos needs a connection. That is a deliberate trade: the alternative is a sync engine and the conflict resolution that comes with it. The JSON export means your data is never trapped, and a backup can be re-imported into any Kairos instance.

Start with one task — or one habit

Create an account and your workspace is ready. It is free, and it stays yours — every account gets its own private tasks, habits, categories and settings.