Sayasah-yah
Lets artificial intelligence work on a confidential file without seeing the names and numbers in it.
From sāye, Persian for shadow: it sees the shadow, never the thing.
| name | tfn | amount | state |
|---|---|---|---|
| Mia Harlow | 317 204 879 | 4,120.00 | VIC |
| Tom Reyes | 905 662 140 | 12,875.50 | NSW |
| Lena Voss | 671 390 449 | 860.25 | VIC |
| Sam Oduya | 538 107 281 | 7,300.00 | QLD |
| Iris Tan | 742 815 068 | 2,415.75 | NSW |
Stays on your machine
| name | tfn | amount | state |
|---|---|---|---|
| <NAME> | <TFN> | number | 1 of 3 |
| <NAME> | <TFN> | number | 1 of 3 |
| <NAME> | <TFN> | number | 1 of 3 |
| <NAME> | <TFN> | number | 1 of 3 |
| <NAME> | <TFN> | number | 1 of 3 |
All the model ever sees
Why I built it
At work, people held back from artificial intelligence over privacy. Yet without it, it’s hard to compete.
I wanted to give them a safe way in, so I built Saya and shared it with them. To write the code, a model needs only the shape of a file, never its values.
As a matter of best practice, the OAIC recommends that organisations do not enter personal information, and particularly sensitive information, into publicly available generative AI tools, due to the significant and complex privacy risks involved.
How it works
ModelCode
Saya never calls a model itself. It stops accidents, not a determined attacker, and its README says so.
-
Guard
A file marked sensitive can’t be opened directly; the assistant is sent to Saya instead.
Code -
Scan
Finds names, tax file numbers, company numbers and passwords, and reports only what kind and how many. In an outside test of 300 records it caught 87%; a miss can only slip out through the returned output, which is why only totals come back.
Code -
Twin
A stand-in file with the same columns, types and row count, every value made up.
Code -
Write
The model writes its code against the stand-in, where a mistake costs nothing.
Model -
Run
The code runs on the real file, on your machine, network off.
Code -
Return
Only the output comes back, masked and cut to size.
Code
Built with
- Runs on
- Python, as an MCP server on your own computer, with no network access. Reads spreadsheets, PDFs and Word files.
- Size
- 4,400 lines of Python. Free and open source (MIT), on PyPI and Docker.
- Tooling
- Claude Code.
The rule it follows
Share the shape. Keep the values where they are.