Talk to the Team

Tell us about your stack and the privacy problems you're trying to solve. We typically respond within one business day.

Prefer email? support@philterd.ai

Prefer to skip the form? Pick a time on our calendar →
or send a message

Please do not enter PII or PHI in this form. If you need to share an example, use a sanitized one.

Open source redaction library

Phileas

Phileas is the core redaction, anonymization, masking, and replacement library that powers Philter. Embed it directly into your Java, Python, or Go application when you want fine-grained control over the redaction pipeline without standing up another service. See Phileas in action in our multilingual chatbot case study.

Why Phileas

Three first-class languages

Reference implementation in Java, with feature-parity ports for Python and Go. Pick the SDK that fits the stack you already have.

Policy-driven

JSON policies describe which entity types to detect, under what conditions, and how to handle each (redact, mask, encrypt, replace with a synthetic value, or pass through). Version-control your policies; deploy them through CI/CD.

Format-preserving

Encrypt SSNs so they still look like SSNs. Hash phone numbers so the format stays valid for downstream systems. Keep the data useful without exposing the identifiers.

Embeddable

Link Phileas directly into your application. No service to deploy, no network hop, no operational footprint. Redaction happens in-process on the data already in memory.

Battle-tested since 2017

Phileas is the engine underneath Philter, running in production at healthcare, legal, and financial customers since 2017. Years before the current wave of LLM-wrapper privacy tools. The library has been pressure-tested on the workloads where a privacy miss isn’t an option.

Permissive Apache license

Business-friendly licensing. No commercial review needed, no per-seat fees, no vendor lock-in. Use it however you need to.

Anatomy of Phileas

Phileas runs inside your application's process. The host code calls a single filter(text) entry point; the library reads a policy file and an optional NLP lens, then routes the text through three internal layers before returning redacted output. No network hop, no service to deploy, no data egress.

Code samples

Phileas exposes the same redaction surface across languages. The minimal “load a policy, redact one document” flow looks like this in each. The healthcare.json referenced below is a Phileas redaction policy: download a ready-made policy from the policy library or write your own, then point the code at it.

Java is the reference implementation. New features and entity types land in the Java library first; the Python, .NET, and Go libraries track its API surface and feature set as it evolves.

Install: Maven Central: ai.philterd:phileas:3.3.0

<!-- pom.xml -->
<dependency>
    <groupId>ai.philterd</groupId>
    <artifactId>phileas</artifactId>
    <version>3.3.0</version>
</dependency>

// Then, in your application:
import ai.philterd.phileas.Phileas;
import ai.philterd.phileas.model.policy.Policy;

// Load the policy that defines which entities to redact and how.
Policy policy = Policy.fromFile("healthcare.json");

// Initialize Phileas with the policy.
Phileas phileas = new Phileas(policy);

// Redact a single document.
String text = "Patient John Doe SSN 123-45-6789.";
String redacted = phileas.filter(text).getText();

System.out.println(redacted);
// -> Patient ******** SSN ***********.

Install: pip install phileas-redact

from phileas import Phileas

# Load the policy that defines which entities to redact and how.
ph = Phileas(policy="healthcare.json")

# Redact a single document.
result = ph.filter("Patient John Doe SSN 123-45-6789.")

print(result.text)
# -> Patient ******** SSN ***********.

Install: The .NET library is not yet published to NuGet. Build from source.

using Phileas;
using Phileas.Model;

// Load the policy that defines which entities to redact and how.
var policy = Policy.FromFile("healthcare.json");

// Initialize Phileas with the policy.
var phileas = new Phileas(policy);

// Redact a single document.
var result = phileas.Filter("Patient John Doe SSN 123-45-6789.");

Console.WriteLine(result.Text);
// -> Patient ******** SSN ***********.

Install: go get github.com/philterd/go-phileas

package main

import (
    "fmt"
    "log"

    "github.com/philterd/go-phileas"
)

func main() {
    // Load the policy that defines which entities to redact and how.
    policy, err := phileas.LoadPolicy("healthcare.json")
    if err != nil {
        log.Fatal(err)
    }

    // Initialize Phileas with the policy.
    ph := phileas.New(policy)

    // Redact a single document.
    result, err := ph.Filter("Patient John Doe SSN 123-45-6789.")
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(result.Text)
    // -> Patient ******** SSN ***********.
}

Ready to use Phileas?

Three ways to get going: deploy the open source yourself, spin it up from a cloud marketplace, or work with our team directly. Pick the path that fits.

See your options