Find the personal data in your office files

Invoices, KYC copies, salary sheets and customer lists pile up on office computers for years. This free program goes through those files and lists every Aadhaar number, PAN, GSTIN, bank detail and phone number it finds, so you know what you hold before you decide what to protect and what to delete.

Free and open source. It runs on your own computer, and nothing it reads is uploaded.

Windows · macOS · Linux  /  Apache-2.0 licence

scan_report.html Sample
FileFoundShown as
Accounts/Sales_Register_FY24.xlsxrow 212 PAN XXXXX1234F (P)
KYC/Customer_KYC_2021.pdfpage 3 Aadhaar XXXX-XXXX-2562
Vendors/Payout_Sheet.csvline 48 IFSC SBIN0***234
HR/Salary_March.docxpara 6 Mobile +91-XXXXX-43210
An illustration. The real report masks every value in the same way, so it is safe to share with your CA.

What it looks for

Each number is checked against its official format, and Aadhaar and GSTIN against their built-in check digit, so a stray invoice or order number is not reported as someone's identity.

DataHow it is recognisedIn your report
Aadhaar number Twelve digits, and the last digit must pass Aadhaar's own check-digit formula. A random twelve-digit invoice number fails it and is left alone. XXXX-XXXX-2562
PAN The PAN format. The fourth letter tells you whose it is: a person, company, firm, trust or HUF. XXXXX1234F (P)
GSTIN The state code, the PAN inside it, and the GSTIN check digit. 27XXXXX9603R1ZN
Bank IFSC code The eleven-character format the RBI sets for branch codes. SBIN0***234
UPI ID Payment handles such as name@okhdfcbank, kept apart from email addresses. r***a@okhdfcbank
Mobile number Indian mobile numbering: +91 or 0, then a number starting 6 to 9. +91-XXXXX-43210
Email address Personal and office email addresses. r***a@example.com
Names and addresses Names after Mr., Dr., Shri or a "Name:" label, and postal addresses with PIN codes. The deeper scan below also finds names and addresses written without a label. R***h K***r
Health details Deeper scan only: mentions of an illness or medical condition, such as in a prescription or a leave letter. c***t

Files it reads: Word, PDF with selectable text, Excel, CSV, OpenDocument, RTF and plain text. The report also flags files nobody has changed in over a year or over three years, and the Desktop and Downloads folders, where stray copies tend to collect.

The deeper scan, for letters and free text

The normal scan is strongest on numbers and labelled fields. Contracts, CVs, emails and letters hold personal data in ordinary sentences, so the scanner has an optional deeper scan, called Local AI mode. It uses a small AI model that runs on your own computer to find names and addresses written in plain text and mentions of a medical condition. Nothing from your files is sent anywhere.

To use it, add --local-ai to the scan command, or choose Local AI Mode in the Mac app. It is slower than the normal scan and needs no special hardware. Two things to know before you start:

  • It needs Python 3.10 or later on the computer, even if you use the download file. On first use, the scanner offers to install the AI parts through Python. If Python is not installed, use the normal scan.
  • The first run needs an internet connection to download the AI libraries and the model, which is about 600 MB. Later scans run without the internet.
.\easydp-scan-windows-amd64.exe scan "D:\Letters" --local-ai --output-dir reports

Why it helps to know what you hold

The DPDP Act does not ask you for a list of files. It does ask you to protect personal data and to delete it once you no longer need it, and you cannot do either for data you cannot find. These duties apply from 13 May 2027 (as of October 2026).

The full text is on our annotated copy of the Act.

Section 8(5)
Keep personal data safe. You must take reasonable security safeguards to prevent a breach, including for data a vendor handles on your behalf.
Rule 6(1)(a)
Masking counts as a safeguard. The Rules name encryption, masking and similar steps among the minimum safeguards. The scan shows where full, unmasked numbers are sitting.
Section 8(7)
Delete what you no longer need. Once consent is withdrawn, or the purpose is no longer served, the data must be erased, unless another law requires you to keep it. For books of account, tax law usually does, so check before deleting.
Section 2(t)
Sole proprietors count. Personal data is any data about an identifiable individual. A proprietor's PAN is their own PAN, so a supplier list of proprietors is personal data.
Schedule, item 1
The penalty. Failing to take reasonable security safeguards can attract a penalty of up to ₹250 crore.

Installing and running it

Most offices only need the download for their computer. It is a single file, with no Python or other software to install first. The other ways to install, further down, are for IT teams and developers.

ComputerDownloadHow to start it
Mac (app) EasyDP-Scanner-macOS.zip Unzip it and open EasyDP Scanner.app, or drag it to Applications first. You can also double-click easydp-scan.command for a guided scan.
Mac (Terminal) easydp-scan-macos-universal For Apple silicon and Intel Macs. In Terminal, run chmod +x ./easydp-scan-macos-universal once, then ./easydp-scan-macos-universal scan .
Windows 10 and 11 easydp-scan-windows-amd64.exe Run it from Command Prompt or PowerShell, as shown in step 2 below.
Linux easydp-scan-linux-amd64 Make it runnable with chmod +x, then run it from a terminal the same way as the Mac file.

All four files are on the latest release page, with a checksums file for anyone who wants to confirm the download is genuine.

  1. 1

    Download the file for your computer

    Pick it from the table above. On a Mac, the app is the simplest choice: unzip it and open EasyDP Scanner.app, and it guides you through the scan.

  2. 2

    Choose what to scan

    On Windows, the scanner is run by typing one line in Command Prompt or PowerShell, from the folder you downloaded it to. For a folder of accounts on the D: drive:

    .\easydp-scan-windows-amd64.exe scan "D:\Accounts" --format html --output-dir reports

    To scan the Desktop, Documents and Downloads folders in one go:

    .\easydp-scan-windows-amd64.exe scan --user-dirs --output-dir reports

    If you have not used Command Prompt before, your IT person or your CA can run it for you.

  3. 3

    Open the report

    The report, scan_report.html, is saved in the reports folder. It opens in any browser without an internet connection, and you can print it or save it as a PDF.

Other ways to install, for IT teams and developers

Installed any of these ways, the command is easydp-scan, for example easydp-scan scan . --format html,json --output-dir reports. Add --local-ai for the deeper scan.

One-line install script

These download and run the install script from the scanner's GitHub repository. If your IT policy asks you to read a script before running it, open it there first.

macOS and Linux

curl -fsSL https://raw.githubusercontent.com/easydp-in/pii-scanner/main/scripts/install.sh | bash

# With the Local AI mode parts included
curl -fsSL https://raw.githubusercontent.com/easydp-in/pii-scanner/main/scripts/install.sh | bash -s -- --ai

Windows (PowerShell)

irm https://raw.githubusercontent.com/easydp-in/pii-scanner/main/scripts/install.ps1 | iex

npm or npx (needs Node.js)

# Run without installing
npx easydp-pii-scanner scan ./my-data

# Or install it
npm install -g easydp-pii-scanner

pip or pipx (needs Python 3.10 or later)

pip install easydp-pii-scanner

# With the Local AI mode parts included
pip install "easydp-pii-scanner[ai]"

# Or run it in its own environment
pipx run easydp-pii-scanner scan .
pipx run "easydp-pii-scanner[ai]" scan . --local-ai
Set it up with an AI coding assistant

If you use Claude Code, Cursor, GitHub Copilot or a similar assistant, paste this in and it will install the scanner and run a scan for you.

Please install and execute the EasyDP Local PII Scanner on this machine:

1. Detect the operating system (Windows, macOS, or Linux) and active shell environment.
2. Install the scanner using the fastest available method:
   - If Python 3.10+ is available: `pip install "easydp-pii-scanner[ai]"` (or `pip install easydp-pii-scanner`)
   - If Node.js is present: run directly with `npx easydp-pii-scanner scan .` (or `npx easydp-pii-scanner scan . --local-ai`)
   - On macOS/Linux terminal: `curl -fsSL https://raw.githubusercontent.com/easydp-in/pii-scanner/main/scripts/install.sh | bash`
   - On Windows PowerShell: `irm https://raw.githubusercontent.com/easydp-in/pii-scanner/main/scripts/install.ps1 | iex`
3. Verify the installation: `easydp-scan --version`
4. Run a local DPDP compliance scan on the current project or workspace:
   Normal Mode:   easydp-scan scan . --format html,json,cli --output-dir ./reports
   Local AI Mode: easydp-scan scan . --local-ai --format html,json,cli --output-dir ./reports
   (Or use `easydp-scan scan --user-dirs --output-dir ./reports` to scan Downloads, Desktop, and Documents)
5. Report the location of `./reports/scan_report.html` and summarize the PII counts discovered.
Important: EasyDP Local PII Scanner is 100% offline with zero telemetry. Never transmit, export, or send scanned file contents or reports to any remote server or external API.

Only scan computers and files you are authorised to scan. A CA scanning a client's machine should have the client's permission first.

Next: see which DPDP duties apply to your business with the free DPDP checker, or work through the compliance checklist.

Questions about the scanner

Is the scanner really free?

Yes. It is free and open source under the Apache-2.0 licence, with no signup. The full code is public on GitHub, so anyone can read what it does.

Is anything I scan uploaded?

No. The scan runs on your own computer, and the files it reads and the report it writes stay there. The scanner's own tests are built to fail if it tries to connect to the internet during a scan. The optional deeper scan downloads its AI model once, on first use; that is a download to your computer, and nothing from your files goes out.

What kind of computer does it need?

It runs on Windows 10 and 11, macOS and Linux, and is built for an ordinary office PC; no special hardware is needed. The download is a single program, so you do not need to install anything else first. Only the optional deeper scan (Local AI mode) also needs Python 3.10 or later.

What does the deeper scan (Local AI mode) add?

It finds names and addresses written in ordinary sentences, and mentions of a medical condition, which the normal scan can miss in letters, CVs and contracts. It runs on your computer like the normal scan, is slower, and needs Python plus a one-time download of about 600 MB.

Does it read scanned documents or photos?

It reads PDFs that contain text you can select, along with Word, Excel, CSV, OpenDocument, RTF and plain text files. Pages scanned as images, and photos, are not among the supported files.

I am a CA. Can I run it for my clients?

Yes, with the client's permission: only scan computers and files you are authorised to scan. The report is a good basis for a conversation about what the client should protect and what it can delete. It is not an audit certificate.

Is the report a DPDP compliance certificate?

No. It tells you where personal data sits on the computers you scanned. Protecting it, deleting what is no longer needed and the rest of the Act's duties are still to be done, and the report is general information, not legal advice.

What if it flags something that is not personal data?

Report it on the scanner's GitHub page under Issues. False alarms help improve the checks for everyone.