A free, self-hosted, monday.com-style work management platform. Runs as a Home Assistant add-on or as a standalone Docker container — your data never leaves your network.
- Companies → Departments → Boards → Jobs → Sub-tasks — model every customer in one system
- Per-user access control: grant an entire company, a department, a single board, or even one job
- Three roles: super admin (sees everything), company admin (runs their own company: its users, boards, and grants), member (sees only what was granted or assigned)
- Full company isolation — a customer can never see another customer's data
- Automations: "when Status becomes Stuck → notify these people" — per board, per label
- @mentions & flagging — ping anyone on a job from an update or the Flag button
- Being assigned to a job automatically makes it visible to you
- Boards → Groups → Items — organize any kind of work
- Custom columns — add any mix of column types to any board:
- 🟢 Status — fully customizable labels & colors
- 🚩 Priority — Critical / High / Medium / Low (customizable)
- 👥 People — assign multiple teammates
- 📅 Date — due dates with overdue highlighting
- 🔤 Text, #️⃣ Number, 🏷️ Dropdown/Tags, ☑️ Checkbox
- Table view — spreadsheet-style with inline editing everywhere
- Kanban view — drag & drop cards between status lanes
- Groups — color-coded sections with collapse, rename, reorder
- Real user accounts — username + password login, admin/member roles
- Live sync — changes from teammates appear instantly (server-sent events)
- Updates & conversations on every item
- File & image uploads with previews
- Notifications — get notified when you're assigned or mentioned in activity
- Activity log — full history per item and per board
- My Work — everything assigned to you across all boards, sorted by due date
- Global search — find any item or board instantly
- Dark mode 🌙
- Fires events for automations:
taskmaster_item_created,taskmaster_status_changed,taskmaster_board_created - Publishes a
sensor.taskmaster_itemsstatistics sensor - Works fully standalone too — HA is optional
- Copy this repository folder to
/addons/taskmaster-addon/on your Home Assistant machine (or add the repository URL in Settings → Add-ons → Add-on Store → ⋮ → Repositories). - Settings → Add-ons → Add-on Store → ⋮ → Check for updates, then install TaskMaster.
- Start the add-on and open
http://homeassistant.local:8099.
git clone https://github.com/btzll1412/taskmaster-addon.git
cd taskmaster-addon
docker compose up -dOpen http://localhost:8099.
The first visit shows a setup screen — create your admin account there. Then add your teammates under avatar menu → Manage users.
Upgrading from v2? Your projects, tasks, notes, tags, assignees, and images are migrated to boards automatically on first start (the old tables are kept in the database as a backup). Migrated users have no password yet — after creating your admin account, set their passwords in Manage users. Tip: use your old v2 username for the admin account and it will be linked automatically.
# Backend (Flask + SQLite)
pip install -r requirements.txt
DATA_DIR=./data python3 app.py # serves API + built frontend on :8099
# Frontend (React + Vite)
cd frontend
npm install
npm run dev # dev server on :5173, proxies /api
npm run build # outputs to web/dist (committed)automation:
- alias: "Notify when something is Done"
trigger:
- platform: event
event_type: taskmaster_status_changed
event_data:
new_status: Done
action:
- service: notify.mobile_app_your_phone
data:
title: "Task done 🎉"
message: "{{ trigger.event.data.name }} on {{ trigger.event.data.board }}"See HOMEASSISTANT_CONFIG.yaml for more examples.
All endpoints live under /api and use session-cookie authentication (POST /api/auth/login). Highlights:
| Area | Endpoints |
|---|---|
| Auth | POST /api/auth/setup · login · logout · GET /api/auth/status |
| Boards | GET/POST /api/boards · GET/PUT/DELETE /api/boards/:id |
| Groups & columns | POST /api/boards/:id/groups · POST /api/boards/:id/columns · PUT/DELETE /api/groups/:id, /api/columns/:id |
| Items | POST /api/boards/:id/items · GET/PUT/DELETE /api/items/:id · PUT /api/items/:id/values/:columnId |
| Collaboration | POST /api/items/:id/updates · POST /api/items/:id/files · GET /api/notifications |
| Views | GET /api/my-work · GET /api/search?q= · GET /api/stats |
| Real-time | GET /api/events (server-sent events) |
- Calendar & timeline (Gantt) views
- LDAP / Active Directory login
- Email notifications
- More automation triggers (due dates, assignments)
Everything is stored in /data (SQLite database + uploads), which persists across restarts and updates.
MIT