A self-hosted todo list and day planner for a household. One small container, one data folder, and it works from any phone, tablet or computer on your network, plus a Linux desktop app that also works offline.
📖 Documentation: https://laurits7.github.io/Streamline/
- Plan your day: a Today view with a timeline, a planning ritual, a week view, and week templates whose time blocks hold your routines, around your calendar.
- Share the household: groups share projects, chores and routines live; day plans and journals stay personal. Projects can even be shared with people on other Streamline servers.
- Routines and chores: any schedule, multi-step chores, checklists, prerequisites, waiting for results and ongoing tasks.
- Reflect: a journal, tracking (mood, weight, water and your own metrics), a tree of goals with habits and rules, and a weekly review.
- Connect: CalDAV calendars (read and write-back) and tasks from GitHub, GitLab and Gitea.
- Small: a 17 MB image using about 9 MB of memory; one SQLite file on your own machine.
The full list is on the Features page.
The screenshots show made-up example data.
Each release has a docker-compose.yml
using the prebuilt image (amd64 and arm64). Put it in an empty directory and run:
docker compose up -dThen open http://<server-ip>:3000 and create the admin account. Your data is in ./data.
Next steps: configuration, HTTPS for the phone app and notifications and backups and updates.
Streamline in its own window for Linux desktops (x86_64). It stays in the tray, can start at login, and keeps working offline. Install it from a release:
yay -S streamline-desktop-bin # Arch Linux (AUR); streamline-desktop builds it
sudo apt install ./streamline-desktop_<version>_amd64.deb # Debian, UbuntuOn other distributions, unpack streamline-desktop-<version>-x86_64-linux.tar.gz into / or
~/.local (needs WebKitGTK 4.1, GTK 3 and libayatana-appindicator).
Run it from your application menu (Streamline) or with streamline-desktop. On first
start it asks how to use it:
- Connect to a server: enter your Streamline server's address (the one you open in the browser) and sign in once. Changes made offline are sent when the server is back.
- This computer only: no server needed; Streamline runs inside the app and keeps your data
in
~/.local/share/io.github.laurits7.streamline/server. You can move to a server later.
To build it from source: install libwebkit2gtk-4.1-dev libayatana-appindicator3-dev (Debian
and Ubuntu names), run make desktop, then start
crates/desktop/target/release/streamline-desktop. More in the
desktop app docs.
Rust 1.88+ and Node 22+. make dev-server and make dev-web run it with hot reload;
make test and make check run the tests and linters. See
Developing for the layout and the
spec, work plan and decisions behind it.
What changed in each version is in the changelog.





