Skip to main content

silueta

Profile the shape of your data — never the values.

silueta turns a dataset — CSV, Parquet, and soon multi-tab Excel and databases — into a compact, machine-readable profile of its shape: types, nulls, cardinality, value-shape masks, semantic PII/PHI flags, and red-flag anomalies. The profile contains no raw cell values, by construction, so an AI agent (or a teammate, or a ticket) can work from it safely.

The motivating workflow: you get a vendor workbook full of PII/PHI and need to model it — dbt sources, Snowflake landing tables, relationships. Most of what modeling needs is how the data behaves, not what it says. silueta captures the behavior so an agent like Claude Code can scaffold the models for data it is never allowed to read.

$ uvx silueta scan patients.csv --report report.md
wrote profile.json
wrote report.md
  patients: 30 rows, 7 columns, 2 alerts

The profile tells the agent things like:

  • mrn — VARCHAR, 100% unique, mask AAA-999999 → this is your key
  • ssn — matches SSN structure at 100% with plausibility checks → sensitive, alert
  • amount — typed as text but 100% castable numeric, magnitude 10^2 → DECIMAL, fix at landing
  • clinic — constant column (and that is all it says about it)
  • visit_date — dates spanning 2025 (year granularity only)

The contract

A silueta profile never contains:

  • raw cell values, sample rows, or frequent-value lists
  • min/max for strings or dates (those are raw values) — numerics report order-of-magnitude and precision facts, dates report year spans
  • serialized sketches or value hashes (hashing is not anonymization)
  • any statistic derived from values observed in fewer than k rows (default 5); constant columns report nothing but their constancy

This contract is enforced by tests that scan every output for source values, and it travels inside the artifact itself (profile.json → silueta.contract).

What it is and is not: silueta protects against accidental context leakage — values ending up in an LLM conversation, a log, a pasted ticket. It does not claim formal anonymity (differential privacy) against an adversary reconstructing small populations from aggregates. The wording is "no raw values by construction," never "anonymized."

Status

Early alpha — CSV, Parquet, and multi-sheet Excel profiling work today, including messy-workbook recovery: title/footer rows skipped, multi-row headers merged, numbers-stored-as-text promoted to real types with confidence scores, non-tabular sheets flagged and skipped. On deck (see issues): cross-table foreign-key candidates, dbt/Snowflake scaffold emitters, database connections.

Install

uvx silueta            # zero-install run
uv tool install silueta
pipx install silueta

Agent setup

silueta is built for agent-driven data work: the profile is the interface an agent reads, and the repo ships a Claude Code skill plus a lockdown recipe that blocks raw data reads (Read-tool denies + a shell hook) while allowlisting the profiler — the agent models data it is never allowed to read.

License

MIT

Metadata

Release files for silueta 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for silueta 0.3.0
File Size Uploaded Provenance
silueta-0.3.0.tar.gz 55.3 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for silueta 0.3.0
File Interpreter ABI Platform
silueta-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 83.0 kB

Release files / silueta-0.3.0.tar.gz

Download URL silueta-0.3.0.tar.gz
Size 55.3 kB
Tags Source
SHA-256 checksum
How to use checksums
8664e08d9cca30eccfd80c6157a9a946732f57e6e4ee2618cea9a684fe67d733
BLAKE2b-256 checksum
How to use checksums
f900c6fbfacfb45f74634c84404165937116beb39c313c03daf4c80cd1ca1af6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.

Transparency log

Release files / silueta-0.3.0-py3-none-any.whl

Download URL silueta-0.3.0-py3-none-any.whl
Size 27.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
afc2e3cff247b503608f3746221c803a7fb45d7b176f85dbffbcd170ec8d7fa4
BLAKE2b-256 checksum
How to use checksums
bc0977b594456bba3dcd0c2ea494982b95653c47a78a9fc0eea06fdc529fcf74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.

Transparency log

Security for silueta 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for silueta-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page