Get started
Requirements
- Windows 10 or 11, 64-bit.
- macOS 11 or later, on an Apple Silicon or Intel Mac. Each kind of Mac has its own download.
- No administrator rights, internet connection, or account.
- 8 GB of memory is enough, including for on-device name detection.
Availability
Pocket-ObSecura is in development and is not available to download yet. To try an early build, email us and ask for early access.
Install on Windows
- Run the Pocket-ObSecura setup program.
- If you want them, tick Create a desktop shortcut and Add 'Scan with Pocket-ObSecura' to Explorer right-click menu. Both are off by default.
- Finish setup. Leave Launch Pocket-ObSecura ticked to open the app.
Setup installs the app in your own user folder, without administrator rights, and adds it to the Start menu. The right-click entry, Scan with Pocket-ObSecura, opens the file or folder you clicked in the app, ready to scan; on Windows 11 it is under Show more options.
Install on macOS
- Open the Pocket-ObSecura disk image for your Mac: Apple Silicon or Intel.
- Drag Pocket-ObSecura onto the Applications folder in the same window.
- Open Pocket-ObSecura from your Applications folder.
First launch
There is nothing to sign in to or activate. The window opens on Drop documents here, with the steps Open, Review, and Export and the line Everything stays on this computer. The status bar reads Pocket-ObSecura • offline • no cloud.
Updating and uninstalling
Pocket-ObSecura never checks for updates, because it never goes online. To update, install the new version over the old one; your settings are kept.
-
Windows: uninstall Pocket-ObSecura from
Settings → Apps. Your preferences file,
settings.json, stays in%LOCALAPPDATA%\Pocket-ObSecura; delete that folder to remove everything. -
macOS: drag Pocket-ObSecura from Applications to the Trash.
Your preferences are in
~/Library/Application Support/Pocket-ObSecura.
Scan and review
Every job has three steps: open your files, scan and review the findings, then export. Nothing is written until you export, and your originals are never changed.
Open files
- Drag files or folders anywhere onto the window, or click Open File… (Ctrl+O or ⌘+O) or Open Folder…. Open Folder… adds the supported files directly inside the folder; a dragged folder is added with its subfolders.
- Supported files: CSV, Excel (.xlsx), Word (.docx), PDF, email (.eml and Outlook .msg), plain text (.txt, .md, .log), and PNG or JPEG images.
- Each file appears in the Files list with its format and number of findings. Click a file to work on it.
If a file has parts Pocket-ObSecura cannot clean, a message titled This file has content Pocket-ObSecura cannot sanitize lists them when you open it. For example, an embedded object in a Word document is copied unchanged, and email attachments are removed. Read the list before you share the copy.
Choose what to look for
Pick a Profile at the top right, or tick boxes under Data types to detect. A profile ticks its data types for you and decides which are redacted (blacked out) instead of replaced with stand-ins; the status bar then ends with Re-scan to apply. With no profile, the menu reads Custom (checkboxes): secret keys are redacted and everything else is replaced.
| Profile | Data types it turns on | Redacted, not replaced |
|---|---|---|
| AI Upload | Email, Phone, PersonName, Company, Address, AccountNumber, ApiKey, Ssn, Ein, CreditCard, Iban, Date, Money, Ip | ApiKey |
| Legal Redaction | PersonName, Company, Ssn, Ein, CreditCard, Iban, ApiKey, BankAccount, RoutingNumber | All but PersonName and Company |
| Accounting Sample Data | PersonName, Company, Email, Phone, AccountNumber, InvoiceNumber, Date, Money, BankAccount | BankAccount |
| Investor Diligence | PersonName, Company, Email, Phone, Address, AccountNumber, Iban, Date, Money, BankAccount | Iban, BankAccount |
| Demo Dataset | PersonName, Company, Email, Phone, Address, AccountNumber, InvoiceNumber, Date, Money | None |
| Full Privacy Sweep | Every data type | ApiKey |
| Data type | What it finds |
|---|---|
| PersonName, Company | People’s names and company names, found by pattern rules (for companies, names ending in words such as Inc, LLC, or GmbH) and on-device AI |
| Email, Phone | Email addresses; phone numbers in US and international formats |
| Ssn, Ein | US Social Security numbers and employer identification numbers |
| CreditCard, Iban | Payment card numbers and international bank account numbers |
| AccountNumber | Passport numbers written after the word “Passport”, SWIFT/BIC codes, and loan numbers |
| InvoiceNumber | Purchase order numbers, such as PO-12345 |
| ContractId | Legal matter, case, and court numbers |
| Date | Dates such as 2026-01-31, 01/31/2026, and Jan 31, 2026 |
| Money, Percentage | Amounts with a currency symbol or code, such as $1,234.56 or 100 USD; percentages |
| Ip | IP addresses |
| ApiKey | Secret keys and access tokens in well-known formats, such as GitHub, AWS, Google, and Slack keys |
Scan
- Select a file in the Files list.
- Click Scan (F5), or Scan All to scan every open file.
- When the Scanning… bar disappears, the status bar reads Detected N findings in file.
Scanned PDF pages and images are read with built-in text recognition, which is never perfect, so review their findings with extra care. The same person or company gets the same stand-in in every open file, so open files that belong together in one session.
Read the findings
The top of the window shows Original and Sanitized (Proposed) side by side; the right side updates as you decide. Findings are tinted by status: amber for pending, green for approved, red for denied, dark for redacted, and gray for ignored.
The Findings table shows each finding’s Type, Original value, proposed Replacement, detection confidence (Conf, 0 to 1), Status, the Action export will take (Replace, Redact, or Ignore), its Location in the file, and the Decide buttons. Above it, a line such as 12 of 40 decided · 28 still pending. tracks progress until it reads All 40 finding(s) decided — ready to export. Click a data-type chip to show only that type, or type in Search original, replacement, location…; ✕ clears both.
Decide on each finding
| Button | Key | What it does |
|---|---|---|
| ✓ Approve | A | Use the stand-in, or redact if the action is Redact |
| ✕ Deny | D | Keep the original value in the copy |
| ■ Redact | R | Replace the value with a marker such as [REDACTED_Ssn] |
| ↻ Replace mode | None | Switch a redacted or ignored finding back to a stand-in |
| – Ignore | I | Leave the value in place on purpose |
To use your own stand-in, double-click the Replacement cell (or select it and press F2), type the value, press Enter, and approve the row. Letter keys act on the selected row only when you are not typing in a cell.
To decide many findings at once, use the buttons above the table: Approve ≥0.9 and Deny ≤0.5 act by confidence, Approve All and Deny All decide everything, and Reset returns every finding to its state after the scan. They always act on the whole file, even while a filter is on, and they skip findings the scan held back: column headings and form labels, listed as Ignored so your headings survive. If one of those really is data, approve it with its own button.
Keyboard shortcuts
| Keys | Action |
|---|---|
| Ctrl+O or ⌘+O | Open a file |
| F5 | Scan the selected file |
| Ctrl+E or ⌘+E | Export the selected file |
| Ctrl+F or ⌘+F | Search the findings |
| Ctrl+Shift+A or ⌘+⇧+A | Approve every finding |
| Ctrl+T or ⌘+T | Open the AI round trip |
| A, D, R, I | Approve, deny, redact, or ignore the selected row |
The toolbar’s Shortcuts button shows this list in the app.
Export and verify
Export a file
- Select the file and click Export (Ctrl+E or ⌘+E).
- If findings are still pending, Findings still pending asks whether to approve them all. Choose OK to approve them and continue, or Cancel to decide them yourself.
- Choose the folder for the copy.
-
Pocket-ObSecura writes the copy, named like
payroll.sanitized.xlsx, and checks it straight away.
Export All exports every open file in turn, asking for a folder for each, and lists any that did not export under Export All — results. A file with no findings asks before exporting an unchanged copy (Nothing to sanitize).
What each format looks like afterward
| Format | In the copy |
|---|---|
| CSV | Same columns and quoting. Values a spreadsheet could run as formulas are made harmless. |
| Excel | Same sheets and cells; sheet names and cell comments are cleaned, and a formula holding a sensitive value becomes a plain value. Named ranges, drop-down lists, and page headers and footers are not cleaned; you are warned about them. |
| Word | Headers, footers, footnotes, and comments are cleaned, and tracked changes are accepted. A paragraph with a change takes the formatting of its first words, so mixed bold, italics, or links in it are lost. Embedded objects, macros, and charts are copied unchanged, with a warning. |
| Rebuilt as a new, text-only PDF. Fonts, images, charts, and exact layout are not kept. | |
| Email (.eml) | Headers and message text are cleaned. Attachments and inline images are removed. |
| Outlook (.msg) |
Saved as a standard email file named like
message.msg.sanitized.eml, without Outlook-only details such as
categories and flags.
|
| Text | Encoding and line endings are kept; lines without findings are unchanged. |
| Images | Each finding is covered with a black box, even when its action is Replace. Embedded photo details, such as location, are removed. |
Verification
Every export is checked as soon as it is written. Pocket-ObSecura reads the new file twice, once the way it reads any document and once with a separate reader that looks inside every part of the file, and searches for every original value you did not deliberately keep. The result appears in the status bar:
- ✓ Verified, with a count such as (38/40 applied): no original value was found.
- ⚠ Verified (with caveats): nothing was found, but part of the file could not be read by the separate reader. A message lists what was not checked.
- ✗ 2 verification flag(s): two original values are still in the copy. Do not share it; approve or redact the remaining findings and export again.
Click Verify to check the selected file’s last export again. Findings you denied or ignored count as deliberately left, not as leaks.
Audit report
Choose Export → Export Audit Report... to save a
report of the session as a JSON file (suggested name
pocket-obsecura-audit.json). For each open file it records the
location and format, fingerprints of the original and the copy, counts of findings
by type and decision, and the verification result, plus the export settings. It
never contains an original value.
AI round trip
The AI round trip lets you work with an AI tool without showing it real names or numbers. Open it with Tools → AI round trip…, the AI round trip toolbar button, or Ctrl+T (⌘+T). It opens in its own window beside your work.
Sanitize text
- On the Sanitize text tab, paste your text into Original (stays on this computer).
- Click Sanitize. The masked text appears under Sanitized (safe to paste into an AI), with a summary such as 3 replaced, 1 redacted.
- Click Copy sanitized and paste the result into your AI tool.
Pasted text uses the current profile and data types and gets the same stand-ins as your open files. Every finding is applied automatically, as Approve All would, so read the result before you send it.
Decode an AI reply
- On the Decode AI reply tab, paste the AI’s answer into AI reply (mentions the fakes).
- Click Decode. The real values appear under Decoded (real values restored), with a summary such as 5 value(s) restored.
- Click Copy decoded to use the result. Clear all empties both tabs.
Decode knows the stand-ins from findings you approved in your open files and from your last Sanitize. Redacted values cannot be restored; the summary counts any it finds.
Command line
The command-line tool, pocket-obsecura, brings the same detection,
profiles, stand-ins, and checks to scripts and batch jobs. There is no review
step: every finding is applied with the profile’s action, except column headings
and form labels, which stay in place unless you add
--include-ignored. The default profile is AI Upload; choose another
with --profile "Legal Redaction", and list them with
pocket-obsecura profile list.
| Command | What it does |
|---|---|
pocket-obsecura scan <path> |
Scans a file or folder and prints the number of findings in each file. |
pocket-obsecura export <path> --output <folder>
|
Writes a safe copy of each file into the output folder. Add
--verify to check each copy.
|
pocket-obsecura watch <folder> --output <folder>
|
Keeps exporting files that appear or change in the folder until you press Ctrl+C. |
pocket-obsecura verify <copy> --original <file>
|
Checks an exported copy against its original for leftover values. |
Add --json for machine-readable output. With scan,
export, and watch, --ocr picks the
text-recognition set: standard, accurate,
multilingual, or multilingualaccurate. Folder runs
include subfolders and skip hidden files and folders. All copies go into the one
output folder; if two files would produce the same name, the second is reported
instead of overwriting the first. Files exported in one run share stand-ins; a
separate run produces new ones.
Watching a folder
watch checks the folder every 5 seconds (change this with
--interval) and exports a file once it has stopped changing and is
new or changed since its last export. It never treats the output folder, or files
named *.sanitized.*, as sources. Add --once to make one
pass and exit; a later pass skips files whose copy is up to date.
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Stand-ins could not be planned, so nothing was written |
| 2 | Verification found an original value in a copy |
| 3 | Unsupported file type, or a folder with no supported files |
| 5 | Missing or invalid arguments |
| 6 | A file could not be read or written |
| 7 | Refused by organization policy |
| 8 | Detection failed on part of a file, so results are incomplete |
Settings and policy
Click Settings on the toolbar or menu bar. Changes apply immediately and are remembered between sessions.
| Setting | Default | What it does |
|---|---|---|
| Colour scheme | Dark | Dark or Light; the toolbar button and View → Light theme switch it too. |
| Strip document metadata on export | On | Clears document properties such as author, company, and title, and removes email routing and tracking headers. |
| Process hidden content (hidden sheets, hidden text) | On | Hidden Excel sheets and hidden Word text are scanned and cleaned like visible content. In this version that happens whether or not the box is ticked; the setting is recorded in the audit report. |
| Remove comments from exported documents | Off | Removes Word comments and empties Excel cell comments. When off, comments are cleaned like other text. |
| PDF export mode | TextReconstruction | Leave this on TextReconstruction. RedactOnlyOverlay is not available in this version and makes PDF export stop with a message; ManualReviewRequired blocks PDF export on purpose. |
| Ask before exporting when no findings are approved | On | Shows the Findings still pending prompt whenever findings are undecided at export. |
| Auto-approve pending findings on export (no prompt) | Off | Approves every pending finding at export without asking. With both approval settings off, pending findings go into the copy unchanged, and verification flags them. |
| Enable OCR for scanned pages | On | Reads scanned PDF pages and images. When off, they are not scanned, and you are warned. |
| Model set, under Scanned documents (OCR) | Standard | Only Standard ships with the app. Accurate, Multilingual, and MultilingualAccurate need extra model files; without them, Standard is used. Standard and Accurate read Latin scripts only and silently skip Chinese, Japanese, Cyrillic, or Arabic text, which is then never masked. |
Organization policy (for administrators)
An administrator can enforce settings with a policy file named
pocket-obsecura.policy.json, read at startup from two places. The
machine-wide file wins wherever both set the same thing, and users can edit their
own per-user file, so use the machine-wide location to make a policy stick.
| System | Per user | Machine-wide |
|---|---|---|
| macOS | ~/Library/Application Support/Pocket-ObSecura/Policy |
/Library/Application Support/Pocket-ObSecura/Policy |
| Windows | %LOCALAPPDATA%\Pocket-ObSecura\Policy |
%PROGRAMDATA%\Pocket-ObSecura\Policy |
| Setting | Effect |
|---|---|
AllowedFileTypes |
A list of extensions, such as ["csv", "xlsx", "pdf"]. Other
files are refused with Blocked by organization policy.
|
DefaultProfileId |
Fixes the profile (IDs below). Choosing another profile, or changing its data types, snaps back. |
RequireApprovalBeforeExport |
Always asks before pending findings are exported, turns off auto-approve, and refuses to export an unscanned file. |
RequireMetadataStripping |
Always strips document metadata, whatever the checkbox says. |
RequireVerification |
Treats an export that fails verification, or passes only with caveats, as failed: Export failed verification. |
DefaultOutputFolder |
Sends every export to this folder without asking. |
EnableOcr |
true or false fixes text recognition on or off.
|
DisableVerboseAudit |
Audit reports record file names instead of full paths. |
DisablePersistentRawValues |
Confirms that no original values are stored; Pocket-ObSecura already stores none. |
| Profile | ID for DefaultProfileId |
|---|---|
| AI Upload | 11111111-1111-1111-1111-AAAAAAAAAAAA |
| Legal Redaction | 22222222-2222-2222-2222-BBBBBBBBBBBB |
| Accounting Sample Data | 33333333-3333-3333-3333-CCCCCCCCCCCC |
| Investor Diligence | 44444444-4444-4444-4444-DDDDDDDDDDDD |
| Demo Dataset | 55555555-5555-5555-5555-EEEEEEEEEEEE |
| Full Privacy Sweep | 66666666-6666-6666-6666-FFFFFFFFFFFF |
A minimal policy:
{"RequireApprovalBeforeExport": true, "RequireMetadataStripping": true,
"RequireVerification": true}. Setting names are case-sensitive. While a policy is active, the status bar
lists what it controls, starting with Organization policy active.
The Settings checkboxes stay clickable, but the policy is applied at the moment of
import, export, or verification.
A policy file that cannot be read is not ignored: Pocket-ObSecura shows
Organization policy unreadable, names the file, and requires
approval, metadata stripping, and verification until it is fixed. The command-line
tool follows the same policy and exits with code 7 when it refuses; under
RequireApprovalBeforeExport, export and
watch also need --approve-pending.
Privacy and data
- No internet, ever. Pocket-ObSecura makes no network connections: no telemetry, no account, no online activation, and no update checks. Text recognition and name detection run on your computer.
- Your documents stay in memory. Open files, findings, original values, and stand-ins exist only while the app is open. Nothing from them is saved between sessions, so each session starts with fresh stand-ins.
-
What is written to disk: the copies you export, the audit
reports you save, and your preferences (
settings.json: the color scheme and your switches, never document content). If the app crashes, a short crash log in your temporary folder records where in the program it failed, never document content. - Your originals are never changed. Every export is a new file.
- Audit reports never hold original values, but they do record file paths, which can themselves reveal a client’s name. An administrator can limit them to file names.
- The clipboard is used only when you click a Copy button in the AI round trip.
Pocket-ObSecura does not protect files from someone who already has full access to your computer; use your system’s disk encryption for that. It is also not a forensic redaction tool: if a PDF must keep its exact appearance with provable removal, use a specialized tool.
Troubleshooting and help
Common messages
- Unsupported file (“No adapter for …”): the file type is not supported. See Scan and review for the list.
- Blocked by organization policy: your administrator allows only the file types the message names.
- This file has content Pocket-ObSecura cannot sanitize: parts of the file will be copied unchanged or removed. Read the list before sharing the copy.
- Detector failure — findings may be incomplete: one kind of detection failed on part of the file, so values of that type may remain. Scan again, and if it recurs, email us.
- Export blocked: a scan is still running. Wait for it to finish.
- Export failed, mentioning redact-only overlay or manual review: set PDF export mode in Settings back to TextReconstruction.
- ✗ … verification flag(s): original values remain in the copy. Approve or redact the remaining findings, then export again.
Known limits
- Amounts are found only when written with a currency symbol or code, and street addresses are not found at all.
- Pattern rules and on-device AI can misfire: a document title may be read as a name, and a greeting such as “Hello team” as a company. Deny ≤0.5 catches many of these; deny the rest by hand.
- On a PDF page with both text and images, text inside the images is not read, and the export drops the images. You are warned when a file has such pages.
- Stand-ins are consistent within one session. Open related files together; a new session produces different stand-ins.
Opening an early-access build
- macOS says Pocket-ObSecura cannot be opened: Control-click the app in Applications, choose Open, and confirm. If macOS still refuses, go to System Settings → Privacy & Security and click Open Anyway.
- Windows shows “Windows protected your PC”: click More info, then Run anyway.
Getting help
If something does not work as described here, email us. Tell us your operating system, the file type, and the exact message you saw. Please do not send the document itself or any sensitive values.