Labtasker WebUI
Labtasker WebUI connects to an existing Labtasker v2 Server or local project. It brings Queue progress, Task details, and structured results into one compact workspace, with reusable views for different experiments.
The key features are:
- Queue progress at a glance: Track pending, running, succeeded, failed, and cancelled Tasks. Status counts follow the same filters as the Task list.
- Flexible result exploration: Filter Task fields and nested values, or add
custom columns such as
args.test_numandresult.succ_rate. Resize, reorder, and double-click columns to fit their contents. - Reusable data views: Save filters, sorting, and column layouts for each connection and Queue. Switch views without rebuilding the table each time.
- Complete Task inspection: Open a Task to inspect its arguments, metadata, execution timeline, errors, and results. Cancel, requeue, or delete selected Tasks through explicit controls.
- Easy local use: Launch from Python without Node.js. Remember connections
and UI preferences in the WebUI working directory's
.labtasker/folder.
Installation
Labtasker WebUI requires Python 3.11 or newer. Run it with uv:
uvx labtasker-webui
Or install and run it with pip:
python -m pip install labtasker-webui
labtasker-webui
Open http://127.0.0.1:8080 to connect. The Python package includes the built frontend; Node.js is only needed for development and building the package.
Example
Choose a connection type on the connection page:
- HTTP Server: Enter a Server URL starting with
http://orhttps://, plus a Bearer token if the Server requires one. - Local project: Enter the directory of an already-running Labtasker project.
.refers to the WebUI process's working directory. Local attachment uses the project's Unix socket and requires POSIX and a loopback bind.
Open a Queue, then filter its Tasks:
status in ["pending", "running"]
Add a custom column through Columns, using a JSON path:
args.test_num
result.succ_rate
Missing values stay blank. Dropdowns and filter presets apply immediately; text filters apply on Enter or when leaving the input group. Apply remains available as a fallback.
Use + Create view beside the breadcrumbs to save the current filters, sorting, and columns. A dot marks changes to the selected view; Save updates it. The actions menu provides Save as…, Rename, Reset changes, and Delete. Deleting a view leaves Tasks and the current layout intact.
The list loads more Tasks as you scroll and preserves existing selections. While reading older rows, background refresh does not reorder the list. Returning to the top resumes live refresh; Refresh updates it explicitly. Click a Task to open its details. Dates use local time, with full timestamps available on hover.
Project profiles
On loopback binds, the WebUI remembers settings in its working directory:
| File | Contents |
|---|---|
.labtasker/webui-profile.json |
Connection, columns, views, filters, and UI preferences |
.labtasker/webui-token |
Bearer token, stored separately with owner-only permissions |
Both files use 0600 permissions. The token is plaintext in its protected local
file; it is never returned by the profile API or stored in browser storage.
The browser uses an opaque HttpOnly, SameSite=Strict session cookie.
Profiles are separate from Labtasker's .labtasker/config.toml. Named views and
column layouts are scoped to the connection and Queue. Disconnecting removes
the remembered connection while retaining UI preferences.
Use --no-profile to disable disk persistence. Browser-local settings remain
available; interactive connections then expire after 12 hours of inactivity or
a WebUI restart. Profiles are disabled for non-loopback binds.
Configuration
Connection addresses, project directories, and tokens are configured in the UI. The CLI only controls how the WebUI itself runs:
| CLI | Environment | Default |
|---|---|---|
--host |
LABTASKER_WEBUI_HOST |
127.0.0.1 |
--port |
LABTASKER_WEBUI_PORT |
8080 |
--no-profile |
— | Persistence enabled on loopback |
Non-loopback deployments require an explicit allowlist of upstream origins:
LABTASKER_WEBUI_ALLOWED_SERVER_ORIGINS=https://tasks.example labtasker-webui --host 0.0.0.0
Separate multiple origins with commas. The WebUI has no user or role system; restrict network access and use authentication/TLS at a trusted reverse proxy for shared deployments. The backend validates upstream origins and redirects, uses HTTPX's environment proxy settings, and keeps credentials out of browser responses.
Scope
Labtasker WebUI inspects existing workloads and supports cancellation, requeue, and permanent deletion of explicitly selected Task IDs. Batch deletion reports each result; it is not an atomic operation.
Use the Labtasker Client, CLI, or Workers to submit and execute Tasks. The WebUI does not submit or edit Tasks, schedule work, allocate resources, or manage the Labtasker process. Local mode only attaches to an existing instance and never opens its database.
Documentation
- Specification: product behavior and state ownership.
- Contributing: setup and development conventions.
- Agent guide: project boundaries and internal workflow entry points.
- Labtasker documentation: Tasks, Queues, Workers, and the upstream API.
Development
npm ci --prefix frontend
npm --prefix frontend run build
uv sync --group dev --frozen
uv run labtasker-webui
See Contributing for the validation gate and development, QA, and release SOPs. CI covers Python checks, frontend tests, three browser engines, and installation of the built package without Node.js.
License
Apache-2.0, matching Labtasker.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file labtasker_webui-0.1.1.tar.gz.
File metadata
- Download URL: labtasker_webui-0.1.1.tar.gz
- Upload date:
- Size: 606.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1bd3d3ca1fb722f351dac92551b3d57ebbee0e790076f46035cec11159df0c76
|
|
| MD5 |
8abd05defbcc2d28e279d9759a207cd4
|
|
| BLAKE2b-256 |
7f5a3d0ebf814a1f7497965c99c54f9612a6484c818c357298af67dbe9154b46
|
Provenance
The following attestation bundles were made for labtasker_webui-0.1.1.tar.gz:
Publisher:
release.yml on luocfprime/labtasker-webui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
labtasker_webui-0.1.1.tar.gz -
Subject digest:
1bd3d3ca1fb722f351dac92551b3d57ebbee0e790076f46035cec11159df0c76 - Sigstore transparency entry: 2757593611
- Sigstore integration time:
-
Permalink:
luocfprime/labtasker-webui@76ec78196707c3e173883b74424579e6551664a7 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/luocfprime
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@76ec78196707c3e173883b74424579e6551664a7 -
Trigger Event:
release
-
Statement type:
File details
Details for the file labtasker_webui-0.1.1-py3-none-any.whl.
File metadata
- Download URL: labtasker_webui-0.1.1-py3-none-any.whl
- Upload date:
- Size: 145.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f602d62c8a331b6a888b362af759877f28f51c3ddfc8f7236fc4c78fdd5c430
|
|
| MD5 |
191fbb2f9061bad8e44243c30ed0bed7
|
|
| BLAKE2b-256 |
48ac5de2c1bc72cd8ae94e1765007eb8396bc0e5ad291583bc0382472d45baa4
|
Provenance
The following attestation bundles were made for labtasker_webui-0.1.1-py3-none-any.whl:
Publisher:
release.yml on luocfprime/labtasker-webui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
labtasker_webui-0.1.1-py3-none-any.whl -
Subject digest:
3f602d62c8a331b6a888b362af759877f28f51c3ddfc8f7236fc4c78fdd5c430 - Sigstore transparency entry: 2757594059
- Sigstore integration time:
-
Permalink:
luocfprime/labtasker-webui@76ec78196707c3e173883b74424579e6551664a7 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/luocfprime
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@76ec78196707c3e173883b74424579e6551664a7 -
Trigger Event:
release
-
Statement type: