| static | Rename preview script to start, change FPS=1 to FPS=2 by default | |
| .gitignore | Don't crash if screenshot rename fails | |
| .prettierrc | Initial commit | |
| COPYING | Initial commit | |
| eslint.config.js | Initial commit | |
| index.js | Rename preview script to start, change FPS=1 to FPS=2 by default | |
| package.json | Rename preview script to start, change FPS=1 to FPS=2 by default | |
| README.md | Rename preview script to start, change FPS=1 to FPS=2 by default | |
| tsconfig.json | Use express, compression and busboy | |
ScreenTask (JS) for GNU/Linux
Share your screen across local devices without internet. Meant to be used over tethered Wi-Fi in a Kyiv school during blackouts.
Basically, it takes screenshots and starts a web server that shows the newest screenshot.
On Windows, use ScreenTask (.NET) by EslaMx7 instead. My app is an implementation from scratch that runs on my Debian Forky netbook.
If you want to host a quiz in LAN during blackout, check out lanquiz.
Install
Don't run ScreenTask on a server with a public IP address. It is only meant for local, trusted networks.
Download the code:
git clone https://codeberg.org/nykula/screentask
cd screentask
Configure the port and frame rate per second:
echo PORT=8000 >>.env
echo FPS=2 >>.env
Download dependencies, then run ScreenTask using your own Node.js (tested with v24):
npm install
npm start
Development
You MUST make the source code of your changes available to your users.
Lint the code and make sure it builds:
npm run format && npm run build
License
SPDX-License-Identifier: AGPL-3.0-or-later
Copyright (C) 2026 Denys Nykula
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.