Everything needed for the Store listing that can live in this repository, plus an explicit list of what cannot and must be done by hand in Partner Center.
Nothing on this page is invented. Where a value is assigned by Microsoft it is marked as such; where a requirement must be read off Microsoft's own page at submission time, this document links to that page instead of restating a number that could go stale between now and submission.
These values are already reserved and are not free text. Every one of them must be reproduced character-for-character; a typo in any of them produces a package Partner Center will reject.
| Field | Value | Where it comes from |
|---|---|---|
| Product name | LocalDocks |
Reserved app name |
| Publisher display name | Jay Rane |
Partner Center account |
| Package Identity Name | JayRane.LocalDocks |
Assigned on name reservation |
| Package Publisher | CN=B46AFC48-B984-41DB-941B-581ABF4CCE85 |
Assigned to the account |
| Package Family Name | JayRane.LocalDocks_pp2s7rtz89eco |
Assigned by the Store |
| Store ID | 9NRJ5N4X20C5 |
Assigned by the Store |
| Price | Free | Chosen |
The Tauri identifier com.silentminds.localdocks is a different value for a
different system and is not interchangeable with any of the above. It names
the app to Tauri and to Windows for %LOCALAPPDATA%\com.silentminds.localdocks.
Substituting the Store identity there would move the app's data directory and
orphan every existing user's settings.
The Store accepts MSIX. Tauri produces NSIS, and an NSIS .exe cannot
be submitted. That gap is now closed inside this repository rather than left as
a manual step:
| File | What it is |
|---|---|
msix/AppxManifest.xml |
The package manifest, with the reserved identity from section 1 |
scripts/package-msix.ps1 |
Lays out the release binary and logos, substitutes the version from Cargo.toml, packs with makeappx |
scripts/validate-msix.ps1 |
Test-signs, installs and runs the Windows App Certification Kit — elevated |
npx tauri build
./scripts/package-msix.ps1
# -> .release/msix/LocalDocks_0.9.0.0_x64.msixThe output is unsigned, deliberately. Partner Center signs Store
submissions with the publisher certificate itself, so an unsigned package is
what you upload. package-msix.ps1 -Sign exists only to make the file
installable on this machine for validation, using a throwaway certificate;
a package signed that way must never be submitted.
| Identity | JayRane.LocalDocks, CN=B46AFC48-…, 0.9.0.0, x64 |
| Version | Four parts because MSIX requires four. The fourth stays 0 — Partner Center reserves it |
| Application | Windows.FullTrustApplication running LocalDocks.exe. It is a Win32 app and does not become a UWP app by being packaged |
| Min Windows | 10.0.17763.0 — Windows 10 1809, the floor the README states and the earliest WebView2 supports |
| MaxVersionTested | 10.0.26100.0 — the build it was actually packaged and exercised on, not the newest number available |
| Capabilities | runFullTrust and nothing else |
The capability list is worth a sentence of its own. runFullTrust is a
restricted capability, so Partner Center will ask why it is declared; the
answer is that this is a Win32 desktop application packaged for the Store,
which is the documented use. internetClient is deliberately absent: a
packaged LocalDocks makes no network requests at all, because the update
channel detects package identity at startup and stands down
(UPDATES.md). If that ever stops being true, the manifest must
change in the same commit as the behaviour.
Packaging is solved. Two things are not:
- Certification.
scripts/validate-msix.ps1runs the App Certification Kit, and both installing a test-signed MSIX and runningappcert.exerequire administrator rights. It has not been run. - Runtime behaviour under package identity. An MSIX brings a virtualised
registry and a redirected
%LOCALAPPDATA%. Settings persistence, the log directory and process enumeration all need re-testing inside the package, not just outside it. The one thing already proven by construction is that the app detects the package and disables its own updater.
See what is running on your machine.
LocalDocks is a local development dashboard for Windows.
It shows the services, processes and listening ports you own — what is bound to which port, which process is holding it, how much memory and CPU it is using, and how long it has been up. Developer mode narrows all of it to the subgraph that is actually your development work: your dev servers, your databases, your toolchains, and the ports they hold.
Alongside that it reports machine-wide telemetry: CPU across every logical processor, physical memory, network throughput, per-drive storage activity, GPU utilisation and memory, and ACPI thermal zones.
LocalDocks runs without administrator rights and never asks for them. It has no network client, no analytics and no account. Every measurement stays on your machine.
When something cannot be measured, LocalDocks says so. It does not turn an unavailable sensor into a zero.
What it does
- Lists every process you own, with CPU, memory, thread count and uptime
- Lists every listening socket — TCP v4, TCP v6 and UDP — unmerged, with the process holding it
- Joins the two into services, grouping the dual-stack pairs dev servers create
- Classifies what it finds by what a program is, from a versioned registry of real development software — never by which port it happens to hold
- Shows machine CPU, memory, network, storage, GPU and thermal telemetry
- Opens a service in your browser, or ends a process after re-verifying its identity so a recycled PID can never be killed by mistake
- Three themes, full keyboard navigation, and no motion if your system asks for none
What it does not do
- It does not elevate, and it does not request
SeDebugPrivilege- It does not show other users' or the system's processes — it cannot, by design
- It does not send anything anywhere
Developer tools
ports · localhost · process monitor · dev server · port conflict ·
developer dashboard · system monitor · netstat
The questionnaire is short for a tool with no user-generated content, no communication features, no purchases and no gambling. The answers, all of which follow from what the app does:
| Question | Answer |
|---|---|
| Violence, sexual content, profanity, controlled substances | No |
| User-generated content, chat, or user-to-user communication | No |
| Shares user location, personal information, or contacts | No |
| In-app purchases, adverts, loot boxes | No |
| Collects or transmits personal information | No |
| Unrestricted internet access | No — one request to one fixed public URL, off in the Store build |
Expected outcome: the lowest available rating. Answer the questionnaire itself; do not paste this table into Partner Center as if it were the submission.
| Device family | Windows.Desktop only |
| Architecture | x64 only |
| Minimum | Windows 10 version 1809 (build 17763) |
No arm64 build. LocalDocks reads processes and sockets through Win32 APIs and has never been compiled or tested for arm64, so claiming it would be a claim the product cannot support. It is a genuine gap for Windows-on-ARM machines and is worth doing later; it is not a V1 blocker.
| Field | Value | Status |
|---|---|---|
| Support contact | https://github.com/jayranedev/LocalDocks/issues |
Exists once the repository is public |
| Website | https://localdocks.jayrane.dev |
Being built separately — a Store listing may omit it |
| Privacy policy | — | REQUIRED, DOES NOT EXIST (section 4) |
| Copyright | Copyright (c) 2026 Silent Minds |
Matches tauri.conf.json |
| Licence | MIT | LICENSE, plus THIRD-PARTY-NOTICES.md for IBM Plex (OFL-1.1) |
For the first submission this is the release summary, not a changelog:
First release. LocalDocks shows the services, processes and listening ports you own, alongside CPU, memory, network, storage, GPU and thermal telemetry for the machine. Developer mode narrows everything to your development work.
Later versions take the matching section from CHANGELOG.md.
Worth writing in the submission's notes box, because a reviewer will otherwise have to guess why a process monitor exists:
LocalDocks is a developer tool. It enumerates the current user's own processes and listening sockets using standard Win32 APIs (
CreateToolhelp32Snapshot,GetExtendedTcpTable,GetExtendedUdpTable) and reads machine-wide performance counters through PDH. It runs entirely unelevated and never requests administrator rights orSeDebugPrivilege, so it can only observe processes owned by the signed-in user.
runFullTrustis declared because this is a Win32 desktop application packaged for the Store. No other capability is declared.The Store build makes no network requests. The app detects package identity at startup and disables its own update channel, leaving updates to the Store.
The "End process" action terminates a process the user selected and owns, after re-verifying its identity (PID plus creation time) so a recycled PID cannot be terminated by mistake.
Windows 10 version 1809 (build 17763) or later, x64, with the Microsoft Edge WebView2 Runtime — which ships with Windows 11 and current Windows 10 and is installed by the NSIS package if it is missing.
The MSIX path must declare the same floor in its manifest
(MinVersion="10.0.17763.0"), and this requirement should be re-checked against
the WebView2 runtime's own supported-version statement before submission rather
than copied forward from here.
| Partner Center question | Answer |
|---|---|
| Does this app collect personal information? | No |
| Does it transmit data off the device? | No. The Store build makes no network requests at all |
| Does it use advertising identifiers? | No |
| Does it require an account? | No |
| Does it collect analytics or crash reports? | No |
| Privacy policy URL | REQUIRED, DOES NOT EXIST YET |
On the update check. The GitHub build makes one kind of request: a GET
for a public release manifest, at most once a day, carrying no body and no
identifier. The Store build makes none — it detects package identity and
disables the update channel, because the Store owns updates there. So for the
Store submission the honest answer to "does it transmit data off the device" is
plainly No, and the privacy policy still has to describe the GitHub build,
because the same source produces both.
Partner Center requires a reachable privacy-policy URL for a submission even
when the honest answer to every question above is "nothing". A page saying
exactly that must be published somewhere stable and the URL entered by hand.
SECURITY.md and the Settings screen already state the same position; nothing
new has to be decided, only published.
What the app writes locally, and nowhere else:
- Settings (theme, refresh interval) under
%LOCALAPPDATA%\com.silentminds.localdocks - A rotating 512 KB warning-and-above log in that directory's
logs\
The log can contain executable names, PIDs, port numbers and Windows error text. It cannot contain command lines, file paths or working directories: those are read for the detail panel and the classifier, and neither logs at warn or above.
Thirteen PNGs at 2560 × 1600, in docs/assets/screenshots/,
captured from the installed production build by
scripts/capture-screenshots.mjs against
the sanitized demo environment. Provenance, the full index and the sanitisation
checks are documented in that folder's
README.
A Store listing takes far fewer than thirteen. The suggested order, strongest first:
01-overview-developer.png— the product in one frame10-system-telemetry.png— all six telemetry cards02-services-developer.png— the services table09-detail-panel.png— the classification reason, in the app's own words03-ports-developer.png— the diagnostic socket view12-theme-light.png— that it is not a dark-only app
Exact format, count and dimension limits must be read off Microsoft's current requirements page at submission — see the source list at the end of this document — rather than trusted from a checklist. 2560 × 1600 PNG clears every published minimum by a wide margin, but the count and the per-file size cap are the fields that actually change.
src-tauri/icons/ already contains the MSIX square-logo set, generated by the
Tauri icon pipeline from icon.png (512 × 512):
| File | Size |
|---|---|
Square30x30Logo.png |
30 × 30 |
Square44x44Logo.png |
44 × 44 |
Square71x71Logo.png |
71 × 71 |
Square89x89Logo.png |
89 × 89 |
Square107x107Logo.png |
107 × 107 |
Square142x142Logo.png |
142 × 142 |
Square150x150Logo.png |
150 × 150 |
Square284x284Logo.png |
284 × 284 |
Square310x310Logo.png |
310 × 310 |
StoreLogo.png |
50 × 50 |
These are the right files; they have never been referenced by a manifest or run through the App Certification Kit, so treat them as an input to step 2 of section 2, not as a completed item. The Store listing's own logo (as opposed to the package's) is uploaded separately in Partner Center.
Trailer video, promotional artwork, and the "Xbox / mobile" device-family screenshot sets. LocalDocks is Windows-desktop only.
Packaging, listing text, privacy answers, age-rating answers, screenshots and logos are all done and in this repository. What remains is genuinely external.
| # | Step | Where | Needs |
|---|---|---|---|
| 1 | Publish a privacy-policy page and get its URL | Wherever the site lives | A hosting decision. Nothing has to be decided — the answer is "nothing is collected" — only published |
| 2 | Run scripts/validate-msix.ps1 |
Elevated PowerShell on this machine | Administrator rights. Installing a test-signed MSIX and running appcert.exe both require them |
| 3 | Fix anything the App Certification Kit reports | This repository | Step 2 first |
| 4 | Smoke-test the app inside the package | This machine | Step 2 installs it. Virtualised registry and redirected %LOCALAPPDATA% are the parts that have never run |
| 5 | Create the submission and paste the listing text from section 3 | Partner Center | Manual |
| 6 | Upload the six screenshots named in section 5 | Partner Center | Manual |
| 7 | Complete the age-rating questionnaire using section 3 | Partner Center | Manual |
| 8 | Answer the privacy questions from section 4, with the URL from step 1 | Partner Center | Steps 1 |
| 9 | Upload LocalDocks_0.9.0.0_x64.msix — the unsigned one |
Partner Center | Steps 2–4 |
| 10 | Paste the certification notes from section 3 and submit | Partner Center | Everything above |
Nothing in this repository is waiting on anything. The Store track is blocked on an elevated certification run and a published privacy-policy URL.