Skip to main content

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.

Labtasker WebUI showing Queue progress, filters, and custom Task columns

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_num and result.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:// or https://, 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

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

labtasker_webui-0.1.1.tar.gz (606.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

labtasker_webui-0.1.1-py3-none-any.whl (145.5 kB view details)

Uploaded Python 3

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

Hashes for labtasker_webui-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1bd3d3ca1fb722f351dac92551b3d57ebbee0e790076f46035cec11159df0c76
MD5 8abd05defbcc2d28e279d9759a207cd4
BLAKE2b-256 7f5a3d0ebf814a1f7497965c99c54f9612a6484c818c357298af67dbe9154b46

See more details on using hashes here.

Provenance

The following attestation bundles were made for labtasker_webui-0.1.1.tar.gz:

Publisher: release.yml on luocfprime/labtasker-webui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for labtasker_webui-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3f602d62c8a331b6a888b362af759877f28f51c3ddfc8f7236fc4c78fdd5c430
MD5 191fbb2f9061bad8e44243c30ed0bed7
BLAKE2b-256 48ac5de2c1bc72cd8ae94e1765007eb8396bc0e5ad291583bc0382472d45baa4

See more details on using hashes here.

Provenance

The following attestation bundles were made for labtasker_webui-0.1.1-py3-none-any.whl:

Publisher: release.yml on luocfprime/labtasker-webui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page