tasker-board
v0.3.9
Published
A spatial task cockpit — tasks live on a 2D board, arranged by computed dimensions.
Readme
Tasker
A spatial task cockpit — tasks live on a 2D board, arranged by computed dimensions.
- Dev:
npm install && npm run dev— server + Vite with HMR. - Architecture:
docs/architecture.md. - Run on another machine: see below, or the full guide in
docs/operations/install.md.
Run with npx / npm
The fastest way to try it — no clone, no build:
npx tasker-board # download + run -> http://localhost:5173
# or install the CLI globally:
npm i -g tasker-board && taskerPrerequisites: Node ≥ 22 and a C toolchain for the native better-sqlite3 build (python3 +
make + a C++ compiler). Configure with TASKER_* env vars — port, DB path, etc.
(see docs/operations/configuration.md); the SQLite DB defaults
to ./tasker.sqlite in the working directory.
Upgrade: npm i -g tasker-board@latest — your DB file is untouched.
Run with Docker
The default Dockerfile builds an image that installs the published tasker-board from npm — no source
checkout needed. Data persists in the tasker-data volume.
docker compose up -d # -> http://localhost:5173
docker compose logs -f
# or without compose:
docker build -t tasker-board .
docker run -d --name tasker -p 5173:5173 -v tasker-data:/data tasker-boardUpgrade — pull the latest release; the volume DB is kept, schema migrates on start:
docker compose build --pull && docker compose up -d
# without compose — rebuild (installs the latest) + recreate the container:
docker build -t tasker-board . && docker rm -f tasker \
&& docker run -d --name tasker -p 5173:5173 -v tasker-data:/data tasker-boardBuild the image from this source tree instead (contributors / unreleased changes — last resort):
docker build -f Dockerfile.source -t tasker .
Run from source (tarball — last resort)
No registry, no Docker — copy a source tarball plus two scripts.
Prerequisites (target machine): Node ≥ 22 and a C toolchain for the native better-sqlite3 build
(python3 + make + a C++ compiler; preinstalled on most dev boxes and in the node:22 image).
- On the source machine — build a versioned tarball of the current tree:
bash scripts/package.sh # -> tasker-<version>.tar.gz - Copy
tasker-<version>.tar.gzto the target machine and unpack it:tar xzf tasker-<version>.tar.gz && cd tasker - Install (installs deps, rebuilds the native module, builds the web bundle):
bash scripts/install.sh - Start it:
npm start # serves web + API on one port (PORT, default 5173)
Update an existing machine
One line from your dev machine — push the current source to a running remote:
npm run deploy -- <ssh-target> [remote-dir] # e.g. npm run deploy -- user@host /opt/taskerIt packages → copies → unpacks on top → runs install.sh (which backs up the DB first —
server/tasker.sqlite.bak-<timestamp> — and never deletes it; the schema migrates itself on the next
start) → restart.sh (portable managed restart, Linux + macOS, no systemd/pm2). No SSH? Unpack the
tarball on top and run bash scripts/install.sh && npm run restart.
See docs/operations/install.md for the deploy/restart model, the situation
matrix, the version marker, native-build notes, and known limitations.
Drive it from an AI client (MCP)
Tasker is an MCP control surface — Claude Code / Claude Desktop / Kiro can read + write your board.
Quickest (server running): point the client at http://localhost:5173/mcp. Or a stdio command:
tasker-mcp (npm install) or npm run mcp (from source). Full setup per install method:
docs/operations/install.md.
License
MIT © 2026 Mikhail Chernogorsky.
