WINDOWS · .NET 10 · AGPL-3.0

z3nDash

Schedules and task runs, ZennoPoster nodes, HTTP archives, system snapshots, JSON and SQLite viewers, Web3 balances — in one dashboard. The embedded server listens on localhost only: the dashboard opens on the machine it runs on.

Requires PostgreSQL and the WebView2 Runtime. The windowed build targets Windows 10 or 11, x64. Building from source also needs the .NET 10 SDK.

>_[ fig. 1 — tasker ]↗
01

Schedules without someone else's runner

python, node, ts-node, npm, exe, cmd, bat, bash, ps1 and internal tasks. Cron, on-demand runs, overlap policy, payloads, live process output.

02

ZennoPoster workers on your LAN

Worker state, task queue, stop and restart — every machine at once, from a single table. The shared log history and the HTTP traffic window open from there too.

03

Tools within reach

HAR archives with request replay, JSON, text transforms, clipboard templates, a C# code graph from a DLL, a SQLite viewer and Windows state snapshots.

04

Documentation inside the app

The same vault this site is built from. Press Alt+H and it opens — no internet, no extra tabs.

// FIRST RUN
✓
Launchno elevation needed

A localhost prefix needs neither a URL reservation nor running as administrator.

✓
PostgreSQLconnection string

The schema comes from Search Path. Required tables are created on first run.

ZennoBrowseroptional

Profiles and processes show up on the ZB page.

OmniRouteoptional

Enables the AI-assisted features.

Panels

Each has its own hotkey. The navigation dock keeps them in sight.

Tasker

Alt+1

Stores schedules and runs local tasks. Each task carries an executor, a path, arguments, a schedule and an overlap policy; output streams live while it runs.

List
Tasks are read from the schedules table. The list shows the name, the state and the main run parameters.
Editing
A task carries a name, an executor, a path to a script, file or task, arguments, an enabled flag, a schedule, an overlap policy and a payload. Executors: python, node, ts-node and npm run scripts of their runtimes; exe, cmd, bat, bash and ps1 run executables and shell scripts; csx runs a C# script; csx-internal runs one with access to z3nDash internals; xml plays a ZennoPoster template — the built-in runtime executes the XML graph directly, with the browser chosen on the task card; internal runs a built-in z3nDash task.
Schedule
The UI builds on-demand runs, daily runs, runs on days of the week, runs on a day of the month, and minute intervals. The result is stored as cron, interval_minutes and fixed_time.
Overlap
skip — do not start a new instance while one is active; parallel — allow several instances up to max_threads; kill_restart — stop the active ones and start fresh.
Control
Run, Stop, Restart, enable or disable the schedule, delete and duplicate, open the file or its folder, open a terminal, check and install Python and Node dependencies.
Output
Output of the active run streams over SSE. Parallel instances each get their own runId.
>_[ fig. tasker ]↗
Full documentation →

ZP7

Alt+2

Shows task state pulled directly from the registered ZP node services. The shared log history and the HTTP traffic window both open from here.

Data source
z3nDash stores only the node addresses. Task state is requested from each node directly, so nothing is cached behind your back.
Task list
Filters by name, state, run mode and tags. The chosen filters are kept in the UI state.
Control
Commands go straight to the selected node: start, stop, interrupt, apply or update settings, add or set tries, set threads, clear done, clear fails, execution settings, scheduler settings.
Logs window
allLogs opens the shared history across every registered node or one chosen machine, with filters by project, level, thread and module, and full-text search.
Traffic window
traffic opens the HTTP traffic window. Nodes and the local runtime write traffic to a file and the window reads its tail; the former separate HTTP page and its store are gone.
>_[ fig. zp7 ]↗
Full documentation →

ZB

Alt+3

Surfaces data from the external ZennoBoxer API, alongside local process operations such as reading uptime by PID and terminating a process tree.

Connection
The address comes from ApiConfig.ZbHost, with a fallback when it is empty. The token is passed upstream in the Api-Token header.
Data
The page proxies ZennoBoxer data — profiles, proxies, instances and threads. Which fields appear depends on what the external API returns.
Local operations
Read process uptime by PID, and terminate a whole process tree by PID.
>_[ fig. zb ]↗
Full documentation →

HAR

Opens an HTTP archive locally and lets you filter, replay and export the requests inside it. The file is parsed in the browser and kept in IndexedDB, so it survives a reload.

Data source
A HAR file is opened locally: the page reads log.entries and parses it in the browser. The page itself has no server routes. Entries can also be added by importing cURL, with no file at all.
Storage
The loaded archive is kept in IndexedDB and survives a page reload. Clear HAR wipes both the list and the stored copy. Nothing reaches the z3nDash database.
List
Filters by method, status, URL and project, plus a limit on how many records are shown. Refresh re-applies the filters to data already loaded and never touches the network; Reset clears the filters.
Replay
A selected request is sent through the same replay listener the HTTP page uses. Method and URL can be edited before sending, and the response can be copied.
Code
For a selected record the page generates stubs: API Skeleton, API Example, HttpClient, ZP7, Hybrid, Python, TypeScript and cURL.
>_[ fig. har ]↗
Full documentation →

JSON

Alt+6

A local JSON viewer and editor. Works entirely on the machine, with security badges over the document and optional AI-assisted analysis.

Document
Paste JSON, format it, walk the value tree, search, collapse branches, copy a value or its path, filter fields.
Security badges
Values that look like secrets or sensitive data get marked. This is a heuristic highlight, not a security check — treat it as a hint.
Replay
The document can be used as the body when preparing an HTTP replay.
AI analysis
Optional analysis goes to OmniRoute; results are cached in the ai_json_cache table.
>_[ fig. json ]↗
Full documentation →

Text

Alt+7

A set of local text transforms. Nothing is sent anywhere — the conversions run in the dashboard itself.

Tools
URL encode and decode, Base64 encode and decode, C# string escaping, JSON string escaping. Everything runs in the browser and needs no database.
>_[ fig. text ]↗
Full documentation →

Clips

Alt+C

Keeps named text templates for quick copying, arranged as a tree. Useful for anything typed often enough to be worth storing once.

Capabilities
Browse the template tree, select and copy content, create and edit entries, store a path, a title and the text itself.
Storage
Everything lives in the clips table, so templates survive restarts and are shared by every page that reads them.
>_[ fig. clips ]↗
Full documentation →

sql

Alt+-

A standalone viewer for a chosen SQLite file. It is not the z3nDash datastore — application data lives in PostgreSQL.

Capabilities
Open a database file, list its tables, run a query, change a value, delete a row.
Scope
This screen never switches the main z3nDash database. It works only on the file passed to the viewer API — application data stays in PostgreSQL.
>_[ fig. sql ]↗
Full documentation →

Treasury

Alt+8

Collects and displays Web3 balances for the addresses stored in the database. Refreshes run in the background and can be triggered over the API.

Refresh
POST /treasury/update starts a background refresh with MaxId, minValue and a concurrency between 1 and 20. Progress is available from GET /treasury/status.
Presentation
Total value, balances by account and chain, top tokens, distribution across chains and a portfolio summary. Which chains appear is decided by the columns of the actual _treasury table.
AI
Portfolio analysis goes through OmniRoute; the result is kept in the Treasury AI cache.
>_[ fig. treasury ]↗
Full documentation →

System

Alt+S

Captures a diagnostic snapshot of the current Windows system and writes it to a file, so two moments in time can be compared later.

Capture
Capture Now collects a snapshot on the machine z3nDash runs on. It includes the sections the backend actually managed to gather: processes, network and system data.
Files
Load a snapshot from a file, save one to the database, open a stored snapshot or delete it. Snapshots live in the system_snapshots table.
AI audit
An optional audit sends the snapshot to OmniRoute; the result is cached in system_snapshot_ai_cache.
>_[ fig. system ]↗
Full documentation →

Config

Alt+0

Manages the local z3nDash configuration: database connection, server and log paths, integrations, and the process-memory watchdog.

Server status
Configuration state, database connection, dashboard port, log and report folders, and the selected database mode. Loaded from GET /config/status.
Database
Two modes: PostgreSQL with a single connection string, or SQLite with a path to a file. For PostgreSQL the schema comes from Search Path. The connection string can be copied with the button beside the field.
Logs & server
Addresses for logs and HTTP traffic, the dashboard port, and the working folders.
OmniRoute
OmniRoute is the only AI provider. The field holds its URL, http://localhost:20128 by default. Validate & Save AI stores the address and checks that /v1/models answers.
Security
The jVars section stores encrypted local variables and the path to the jVars file.
Memory watchdog
Root process name, an on/off switch, a memory limit in MB and a check interval. The watchdog counts the root process together with its child tree and, once a non-zero limit is exceeded, terminates the tree.
>_[ fig. config ]↗
Full documentation →

docsVault

Alt+H

Renders the Markdown files of a docs vault as a linked graph. Choose folder picks the vault; by default it is the one bundled with the application.

Choosing a vault
Choose folder opens a system dialog for picking the vault. By default it is the docs-vault bundled with the application.
Generation
POST /docsVault/generate reads the Markdown files and builds links from wiki references. A relative path is resolved against the application folder.
Viewing
The last graph built is returned on request; before the first generation an empty template opens.
Export
The graph can be downloaded as a standalone HTML file.
>_[ fig. docsvault ]↗
Full documentation →

dllGraph

Alt+G

Builds a graph of C# code. Choose DLL picks a compiled assembly, or point it at a folder of sources; relationships between types and members are then explored visually.

Input
Choose DLL opens a system dialog for picking a compiled assembly; Generate then builds the graph. A folder of DLLs or of C# sources works too — bin and obj are skipped when reading sources.
Result
The generated HTML is held in process memory and the last graph built is returned on request. After a restart the graph has to be built again.
>_[ fig. dllgraph ]↗
Full documentation →

Download

Windows 10 / 11 x64. The installer is not signed — SmartScreen will show a warning.

Installer
Shortcuts, upgrades over the previous version.
The file will appear with the first release.
Portable build
Self-contained win-x64. No .NET install required.
The file will appear with the first release.
Source
AGPL-3.0. .NET 10 SDK 10.0.103, one command to build.
Open github