If you've ever wanted a simple task manager that stays out of your way — no accounts, no cloud sync, no subscriptions — Local Task Manager might be exactly what you need.

It's a single-page app that runs on your machine via Node.js. Your tasks live in a local JSON file, the UI runs in your browser, and nothing ever leaves your computer.

Why Local? #

Most task apps want you to create an account, sync to their servers, and pay a monthly fee. For a personal productivity tool, that's overkill. Local Task Manager takes a different approach:

  • Your data stays on your machine — tasks are stored in a simple JSON file in the project folder
  • No internet required — works completely offline
  • No accounts or logins — just open your browser and go
  • Instant startup — the server launches in under a second
  • Fully hackable — it's plain JavaScript, easy to read and modify

What It Does #

Despite being lightweight, it packs in the features that actually matter for daily productivity:

  • Task timer — start a timer on any task, track how long you spend
  • Pomodoro mode — optional work intervals (25, 45, or 65 min) with break reminders
  • Focus mode — immersive full-screen view when you need to concentrate
  • Analog clock view — see your scheduled tasks as arcs on a 12-hour clock face
  • Calendar appointments — set reminders for time-sensitive tasks
  • Recurring tasks — daily or weekly, with optional weekday-only scheduling
  • Project categories — group tasks with auto-colored badges
  • Streaks — gamification for completing 3+ tasks per day
  • Import/export — backup your data or import tasks from JSON

Analog clock view showing scheduled tasks as arcs on a 12-hour dial

Add new task form with due dates, priority, project categories, and more

Getting Started #

1. Install Node.js #

Download and install Node.js (v18 or higher) from nodejs.org.

2. Download the App #

Download the latest release from GitHub and unzip it:

github.com/davettt/local-task-manager

Click the green Code button, then Download ZIP. Unzip the folder and move it somewhere suitable on your system (e.g. your home directory or a tools folder).

3. Install Dependencies #

Open a terminal, navigate to the folder, and run:

cd local-task-manager
npm install

4. Start the Server #

npm run dev

Open your browser to localhost:3000 and you're ready to go. Check the terminal output after running the command — if port 3000 is already in use, the server will automatically find the next available port and show you which one it's using.

The dev command starts the server with auto-reload, so if you make changes to the code it picks them up automatically.

Stopping and Restarting #

Press Ctrl+C in the terminal to stop the server. To start again, just run npm run dev from the same folder. Your tasks persist between restarts — they're saved to local_data/tasks.json on disk, so nothing is lost.

Video Walkthrough #

For a full walkthrough of all features, check out the video:

Running on System Startup (Optional) #

If you want the server to start automatically when your computer boots, you can use PM2:

npm install -g pm2
pm2 start src/server.js --name "task-manager"
pm2 save
pm2 startup

This keeps it running in the background so the app is always available in your browser.

Settings panel with timezone, date format, and customisation options

Keeping Your Data Safe #

Since everything is stored locally in the local_data/ folder, you have a couple of options for keeping your tasks backed up:

Sync the folder — If you already use a file sync service (Dropbox, Google Drive, iCloud, OneDrive, Tresorit, etc.), simply place the local-task-manager folder inside a synced directory. Your tasks will automatically sync across your devices.

Regular exports — If you don't sync your files, use the built-in backup feature (Settings > Backup) to export your tasks as a JSON file. Save these exports to your cloud storage or another safe location. It only takes a few seconds and gives you a full snapshot you can restore from at any time.

This is a personal project I built for my own workflow. You're welcome to fork it and make it your own.