LokiVeil · 0.1.1 · Free preview

Pick. Cover. Rehearse.

Build a repeatable visual mask for a fictional demonstration, one page and one field at a time.

Use invented data only. LokiVeil is a visual aid for rehearsal, not a privacy or redaction control. Picker mode reveals the page: stop sharing first.

Your first covered field

You need desktop Chrome, this extracted package and Python 3 for the local practice page. No account, key or payment is needed. The extension itself uses local browser storage.

Step 1

Install once

Extract this ZIP. In Chrome open chrome://extensions, enable Developer mode, choose Load unpacked, and select the extension folder inside this package. No site is authorised yet. This is a manual preview; there is no store listing or automatic update.

Step 2

Open the practice page

Open a terminal in the examples folder and run python3 -m http.server 8000 --bind 127.0.0.1. Open http://localhost:8000/new-pick.html in desktop Chrome. Keep the terminal open. Local Python is only needed to serve this practice page.

Step 3

Allow one site

Open the LokiVeil toolbar popup, click Authorise this site and accept Chrome’s request for this origin. The tab reloads. A curtain is expected until you have a matching profile.

Step 4

Pick a fictional field

Stop screen sharing. In the popup choose Pick fields. The underlying page becomes visible. Click Fictional Meridian, then reopen the popup and choose Stop picker. A pick records the selector, origin, path and match count, not the field value.

Step 5

Make the profile

Open Options. Under Picked selectors choose Use pick for /new-pick.html. The profile id, exact origin, path and one rule are filled in. Check that the match range is 1–1, add a label if useful, and choose Save profile. Nothing is saved merely by clicking Use pick.

Step 6

Verify before presenting

Reload the practice page. Open the popup and wait for DEMO READY. The customer name is covered. Re-check runs verification again and the open popup follows its result. Force curtain covers the whole page immediately.

Step 7

Edit safely

If a profile already covers the page, Use pick directs you to Edit that profile. Picks from another origin or a nonmatching path are refused. Adding the same selector twice is refused. These messages prevent accidental changes to the wrong profile.

Step 8

Finish and remove access

Use Revoke in the popup or Options and reload the page. To remove stored settings, profiles and picks, use Options → Delete all LokiVeil data and confirm. Deleting data does not revoke site permissions; perform both actions when finished. Stop the local server with Ctrl+C.

See the real workflow

Check the real popup
Check the real popup. Actual Chrome 152/Linux extension popup on the high-contrast fictional fixture. Ready is reported from the content script.
Review before saving
Review before saving. Actual options page after Use pick populated one rule for a new fictional page. A different local port is used by this test fixture.
Verify the saved profile
Verify the saved profile. Actual fictional page after saving and reloading its one-field profile.
Keep controls reachable
Keep controls reachable. Actual options page at 390 px. Profile actions and selector controls remain available in a narrow desktop window.

Try a ready-made profile

With the same local server running, open http://localhost:8000/fictional-crm-demo.html. In Options use Import a profile bundle (.json) with Merge and select fictional-crm-profile.json. Reload. Its four rules cover a name, email, phone and two account numbers; expected counts are 1, 1, 1 and 2. Use the exact localhost address: 127.0.0.1 is a different origin.

When something is not ready

What was checked

Real Chrome for Testing 152 on Linux: permission grant and removal, content-script registration, masks and curtains on fictional pages, nested synthetic frames, picker capture, profile save/reload, live popup status and narrow options. Automated checks sample states; they do not prove every intermediate browser frame. Other operating systems and real CRM sites are unverified.

Boundaries

Only selected top-frame DOM fields are covered. Embedded frames are hidden when ready, not inspected or individually masked. Source, network, storage, exports, canvas, closed shadow DOM, browser UI and developer tools remain outside the mask. Picker mode deliberately reveals content. Read PRIVACY.md and the preview license.