個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Chrome extension that hides, blurs or rewrites any element on a page, and masks money, emails, phone numbers and other sensitive data.
翻譯準備中
正在載入完整 README。 以下為已儲存的摘錄。
23 second intro, with sound · Full walkthrough on YouTube
A Chrome extension for picking any element on a web page and then hiding it, blurring it, or replacing its text. It can also hide money, emails, phone numbers and other sensitive data across a whole site. Your changes are saved and come back every time you visit.
Install Veil from the Chrome Web Store, then pin it from the puzzle-piece menu.
When Veil is installed, updated or reloaded, it starts again in the tabs that are already open. If a tab does not respond, reload it.檢視完整 README ↗Website: https://veil-ce.jnahian.me/ · Documentation · Changelog
23 second intro, with sound · Full walkthrough on YouTube
A Chrome extension for picking any element on a web page and then hiding it, blurring it, or replacing its text. It can also hide money, emails, phone numbers and other sensitive data across a whole site. Your changes are saved and come back every time you visit.
Install Veil from the Chrome Web Store, then pin it from the puzzle-piece menu.
When Veil is installed, updated or reloaded, it starts again in the tabs that are already open. If a tab does not respond, reload it.
There are three ways to start:
While picking:
| Key | Action |
|---|---|
| Click or Enter | Select the highlighted element |
| ↑ / ↓ | Move to the parent or child element |
| Esc or right-click | Cancel |
After you select an element, a panel appears.
Every save shows an Undo button for 5 seconds.
To change a saved rule, select the same element again and apply the same action. Veil updates the existing rule instead of adding a duplicate.
In the popup, turn on Hide sensitive data on this site, then select the types of data to hide. Veil finds every match on the site's pages, including matches that load later, and covers them. The configuration applies per site, and each selected type shows as a row under Sensitive data in the popup. Delete a row to stop hiding that type.
Types:
| Type | Examples | How Veil avoids false matches |
|---|---|---|
| Money | $1,240.50, Rs. 1,00,000 | See the list below |
| Emails | [email protected] | Needs a name, an @ and a domain |
| Phone numbers | +880 1712-345678, (555) 123-4567, 01712345678 | 9 to 15 digits. A number without separators must start with 0. Dates and 1 234 567 style amounts are skipped |
| Card numbers | 4242 4242 4242 4242 | 13 to 19 digits that pass the Luhn checksum (the check digit that all card numbers have) |
| IBANs | DE89 3704 0044 0532 0130 00 | Must pass the IBAN checksum |
| API keys and tokens | sk_live_…, ghp_…, shpat_…, AKIA…, xoxb-…, JWTs | Only known key formats |
| IP addresses | 192.168.1.10 | IPv4 only |
Custom takes one entry per line. A plain entry matches that text, and case does not matter. An entry between slashes, such as /INV-\d+/, is a regular expression.
Money is the only type selected by default. Veil does not detect names, street addresses or bank account numbers, because they have no reliable format. Use the element picker for them.
What counts as money:
$1,240.50, 1.240,50 €, ৳ 5,000, Tk 500, Rs. 2,500, USD 99, 99 BDT, CHF 1'250.00, US$1,000, 50¢.$1.2k, €3M, ₹3 lakh.<span>$</span><span>1,240</span>.Balance | 5,000 table cells. This is off by default because it catches more false positives.Veil skips version numbers, years, percentages and phone numbers. It also skips code elements (code, pre, kbd and samp) for every type except API keys and tokens, because pages often show keys in code elements.
Styles:
| Style | Looks like | Changes the page? |
|---|---|---|
| Mask (default) | Solid grey bar over the match | No. Uses Chrome's CSS Highlight API, so it's safe on React and Vue sites |
| Hide | Match is invisible, space kept | No |
| Blur | Blurred | Yes. Each match is wrapped in a <veil-money> tag, which can occasionally upset framework-rendered pages |
Controls:
Won't be caught:
<canvas> (many chart libraries) or in images.The popup lists the site's rules in three groups: this page, the whole site, and other pages on the site. For each rule you can:
The switch in the header pauses everything. Alt+Shift+X does the same thing.
Export and Import back up all rules as JSON. Importing merges with your existing rules and never overwrites them.
You can change shortcuts at chrome://extensions/shortcuts.
chrome.storage.local, grouped by hostname. Page-scoped rules match on origin + path and ignore the query string and hash.document_start, which avoids a flash of the original content in most cases.iddata-testid / aria-label-style attributessrcdoc iframes that the page fills in itself.chrome:// pages and the Web Store.extension/ the extension, loaded unpacked and zipped for the store
manifest.json MV3 manifest, permissions, shortcuts
background.js context menu, shortcuts, toolbar badge
detect.js sensitive data detection (pure text matching)
content.js picker, panel, editor, rule engine, sensitive data hiding
popup.html/css/js rule manager
icons/ 16, 32, 48, 128 px
tests/unit/ detection tests (node:test)
tests/e2e/ extension tests in Chromium (Playwright)
scripts/ package.js builds the store zip
store/ Web Store listing, screenshots and submission guide
site/ landing page (Astro and Tailwind CSS)
To run the tests, use npm install, then npx playwright install chromium, then npm test.
Veil sends no data anywhere. Read the privacy policy.
The Chrome Web Store guide describes how to package and submit Veil.
Read the contributing guide and the code of conduct. To report a security problem, follow the security policy.
Veil is released under the MIT License.