# Omna > Local-first, Rust-powered semantic search and PII masking for Polars DataFrames, plus a browser extension and Mac app that mask PII before it reaches Claude, ChatGPT, Gemini, Perplexity, or DeepSeek. Omna is the semantic layer between your data and AI. PII detection and token mapping run on-device via WebAssembly and Rust — no text, files, or identifiers ever reach an Omna server. Every page below has a markdown mirror under `/md/` (e.g. `/md/polars-semantic-search`). A consolidated dump of all pages is at `/llms-full.txt`. ## Pages - [Omna — Mask PII & Kill the Token Tax Before AI Sees It](https://omna.dev/) — Free local-first Mac app that masks PII and slices massive files before sending to Claude, ChatGPT, Gemini, Perplexity or DeepSeek. ([markdown](https://omna.dev/md/index)) - [Omna for Python — Semantic Search & PII Masking for Polars](https://omna.dev/library) — The Omna Python library: local-first, Rust-powered semantic search and PII masking for Polars and pandas DataFrames. ([markdown](https://omna.dev/md/library)) - [Privacy Policy — Omna](https://omna.dev/privacy) — What we collect (nothing) and what stays on your device. ([markdown](https://omna.dev/md/privacy)) - [Feedback — Omna](https://omna.dev/feedback) — Submit bug reports and feature requests. ([markdown](https://omna.dev/md/feedback)) - [Polars Semantic Search — One-Line Vector Search for DataFrames](https://omna.dev/polars-semantic-search) — Add semantic search to Polars DataFrames in one line of Python. Local-first, Rust-powered, zero network calls. ([markdown](https://omna.dev/md/polars-semantic-search)) - [Polars PII Masking — Mask Names, Emails, MRNs in One Line](https://omna.dev/polars-pii-masking) — Mask PII in Polars DataFrames locally with a Rust kernel. No regex, no cloud. ([markdown](https://omna.dev/md/polars-pii-masking)) - [Pandas Semantic Search — Local Vector Search for pandas](https://omna.dev/pandas-semantic-search) — Semantic search on pandas DataFrames, in one line of Python, with no API key. ([markdown](https://omna.dev/md/pandas-semantic-search)) - [Pandas PII Masking — Redact Personal Data Locally](https://omna.dev/pandas-pii-masking) — Mask PII in pandas DataFrames using a local Rust kernel. No cloud, no API key. ([markdown](https://omna.dev/md/pandas-pii-masking)) - [Mask PII Before Sending Data to an LLM](https://omna.dev/mask-pii-before-llm) — Strip names, emails, MRNs, and identifiers before sending a prompt to Claude, ChatGPT, Gemini, Perplexity, or DeepSeek. ([markdown](https://omna.dev/md/mask-pii-before-llm)) - [Mask PII Before Sending to Claude](https://omna.dev/mask-pii-before-claude) — Reversibly tokenize PII before pasting into Claude (Anthropic). ([markdown](https://omna.dev/md/mask-pii-before-claude)) - [Mask PII Before Sending to ChatGPT (OpenAI)](https://omna.dev/mask-pii-before-openai) — Reversibly tokenize PII before pasting into ChatGPT. ([markdown](https://omna.dev/md/mask-pii-before-openai)) - [Mask PII Before Sending to Gemini](https://omna.dev/mask-pii-before-gemini) — Reversibly tokenize PII before pasting into Google Gemini. ([markdown](https://omna.dev/md/mask-pii-before-gemini)) - [HIPAA-Compliant Vector Search](https://omna.dev/hipaa-compliant-vector-search) — Run semantic search on PHI without a BAA. Omna is in-process — PHI never leaves the host. ([markdown](https://omna.dev/md/hipaa-compliant-vector-search)) - [GDPR-Compliant Semantic Search for EU Data](https://omna.dev/gdpr-compliant-search) — Run semantic search on EU customer data without a data-transfer agreement. ([markdown](https://omna.dev/md/gdpr-compliant-search)) - [Local Semantic Search in Python — No API Keys, No Cloud](https://omna.dev/local-semantic-search-python) — Run semantic vector search entirely on your laptop. No OpenAI keys, no Pinecone. ([markdown](https://omna.dev/md/local-semantic-search-python)) - [PII Detection in Python — Local, Rust-Powered](https://omna.dev/pii-detection-python) — Detect names, emails, phone numbers, SSNs, MRNs, and addresses in Python without sending data to a cloud API. ([markdown](https://omna.dev/md/pii-detection-python)) - [Redact Patient Data in Python](https://omna.dev/redact-patient-data-python) — Redact PHI from clinical notes locally with a Rust kernel. ([markdown](https://omna.dev/md/redact-patient-data-python)) - [Polars + Omna vs Pinecone](https://omna.dev/polars-vs-pinecone) — When to use a local Polars-native vector kernel and when to reach for Pinecone. ([markdown](https://omna.dev/md/polars-vs-pinecone)) - [Polars + Omna vs Weaviate](https://omna.dev/polars-vs-weaviate) — When a local Rust kernel beats a hosted vector DB. ([markdown](https://omna.dev/md/polars-vs-weaviate)) - [Local Pinecone Alternative for Python](https://omna.dev/pinecone-alternative-local) — Replace Pinecone with an in-process Rust kernel for DataFrame-scale vector search. ([markdown](https://omna.dev/md/pinecone-alternative-local)) - [pgvector Alternative for Analytical Pipelines](https://omna.dev/pgvector-alternative) — Skip pgvector for DataFrame-scale workloads — run vector search in-process. ([markdown](https://omna.dev/md/pgvector-alternative)) - [Semantic Search on Parquet Files](https://omna.dev/semantic-search-parquet) — Search Parquet files by meaning, locally, with one line of Python. ([markdown](https://omna.dev/md/semantic-search-parquet)) - [Semantic Search on CSV Files](https://omna.dev/semantic-search-csv) — Search CSV files by meaning, locally, with one line of Python. ([markdown](https://omna.dev/md/semantic-search-csv)) - [Embed a Pandas or Polars DataFrame Locally](https://omna.dev/embed-dataframe-locally) — Generate text embeddings for every row of a DataFrame locally, in-process, with a Rust kernel. ([markdown](https://omna.dev/md/embed-dataframe-locally)) - [On-Device PII Redaction](https://omna.dev/on-device-pii-redaction) — Redact PII on the device, before any data leaves the host. ([markdown](https://omna.dev/md/on-device-pii-redaction)) - [Rust-Powered Vector Search for Python](https://omna.dev/rust-vector-search-python) — A Rust kernel exposed to Python via PyO3 — semantic search at Rust speed, with a Pythonic API. ([markdown](https://omna.dev/md/rust-vector-search-python)) - [RAG Without a Vector Database](https://omna.dev/rag-without-vector-db) — Build retrieval-augmented generation pipelines without standing up a vector DB. ([markdown](https://omna.dev/md/rag-without-vector-db)) - [The Token Tax — Why You're Overpaying LLM Providers](https://omna.dev/token-tax) — Every byte of PII, boilerplate, and bloat in your prompt is a tax. Omna kills it locally. ([markdown](https://omna.dev/md/token-tax)) - [Getting Started with Omna — Omna Help](https://omna.dev/help/getting-started) — Omna kills the Token Tax — the hidden cost of sending large files to AI. It finds the relevant rows before the AI ever sees your file, so you pay for 500 rows instead of 500,000, and get a better answer. ([markdown](https://omna.dev/md/help-getting-started)) - [Supported AI Apps — Omna Help](https://omna.dev/help/supported-apps) — Omna works in two places: the **desktop capsule** (the Mac app) and the **browser extension** (Chrome). Each has its own list of supported apps. ([markdown](https://omna.dev/md/help-supported-apps)) - [Supported File Formats — Omna Help](https://omna.dev/help/supported-files) — Omna can slice any of these file types before sending to AI. Each format is handled differently based on its structure. ([markdown](https://omna.dev/md/help-supported-files)) - [How Slicing Works — Omna Help](https://omna.dev/help/how-slicing-works) — Understanding what Omna does inside the black box — so you know what to expect and how to get the best results. ([markdown](https://omna.dev/md/help-how-slicing-works)) - [Browser Extension — Omna Help](https://omna.dev/help/browser-extension) — The Omna Chrome extension brings the Token Tax protection directly into your browser — no dragging to the capsule, no switching apps. ([markdown](https://omna.dev/md/help-browser-extension)) - [Desktop App — Omna Help](https://omna.dev/help/desktop-app) — The Omna desktop app is a Mac menu-bar app that runs silently in the background. It has three parts: the **capsule**, the **background indexer**, and the **menu bar**. ([markdown](https://omna.dev/md/help-desktop-app)) - [Privacy & Security — Omna Help](https://omna.dev/help/privacy-and-security) — Omna is built on a single principle: **your data never leaves your device.** This page explains exactly what Omna does and doesn't do with your data. ([markdown](https://omna.dev/md/help-privacy-and-security)) - [Pricing & Savings Math — Omna Help](https://omna.dev/help/pricing-and-savings) — How Omna calculates and displays token savings — and what the numbers actually mean. ([markdown](https://omna.dev/md/help-pricing-and-savings)) - [FAQ & Troubleshooting — Omna Help](https://omna.dev/help/faq) — Common questions and solutions for when something isn't working as expected. ([markdown](https://omna.dev/md/help-faq)) ## Optional - [Full markdown dump](https://omna.dev/llms-full.txt)