anz33 docs
Download

Privacy and the kill switch

anz33 decides what may leave this machine before anything is sent, and keeps a record you can check afterwards. Four pieces: rules, the airlock, the kill switch, and the audit log.

The short version

  • Out of the box, nothing goes to the cloud — there are no cloud engines configured and cloud is not allowed.
  • If you add one, rules can keep specific things local regardless.
  • Whatever does go out passes the airlock, which replaces emails, card numbers and phone numbers with placeholders and puts them back in the answer.
  • The kill switch stops all of it with one command.
  • Every decision is appended to a hash-chained log that shows if anyone edited it.

Rules

A rule matches on a keyword, a file path, or the app making the request, and says what should happen:

ActionWhat it does
local_onlyMay be answered, but only by an engine on this machine. Never leaves.
denyNot answered at all. For things that should not be sent to any AI, local or otherwise.
allowExplicitly permitted, for carving an exception out of a broader rule.
anz33 policy add clients --keyword acme "patient records" --action local_only
anz33 policy add work --path ~/work --action local_only
anz33 policy add secrets --keyword password "api key" --action deny
anz33 policy show
anz33 policy remove clients

Keywords are matched against the text of the request, so a rule naming a client catches any question mentioning them, from any app, without configuring the app.

Good first rules. Your employer's name and your biggest client's; the word for your medical condition; your children's names; the folder your work lives in. Rules cost nothing when they do not match.

The airlock

On by default. Before a request goes to a cloud engine, anz33 finds identifiers and swaps them for placeholders:

you write:   Email sarah@example.com about the £40 refund on card 4111 1111 1111 1111
cloud sees:  Email [EMAIL_1] about the £40 refund on card [CARD_1]
you get:     ...the answer, with the real email and card put back

It recognises email addresses, card-like numbers and phone numbers. The substitution is reversible only on your machine — the mapping never leaves — and it is restored even in streamed answers, where a placeholder can arrive split across several chunks.

The airlock applies to cloud requests. Local engines are on your computer already, so there is nothing to hide from.

The kill switch

anz33 policy offline    # nothing may leave this machine
anz33 policy online     # back to normal

Offline mode overrides everything: allowed cloud engines, per-request settings, whatever an app asks for. Requests that need a cloud engine fail; everything a local engine can answer keeps working. Useful before a client meeting, on a conference network, or whenever you would rather not think about it.

The audit log

Every decision — allowed, kept local, denied, and every configuration change — is appended to ~/.anz33/audit.jsonl. Each line includes the hash of the line before it, so removing or editing one breaks the chain and the break can be detected.

anz33 audit            # what left, and when
anz33 audit --verify   # check the chain has not been altered

This is plain text you own. You can read it, keep it, or hand it to whoever asks what your AI tools have been doing.

What anz33 itself sends. Nothing about your requests, ever — there is no telemetry and no account. The only outbound connection the program makes on its own is a subscription check, which sends a licence key and nothing else, and works offline for fourteen days at a time.

Where all of this lives

~/.anz33/policy.jsonYour rules, the airlock switch and offline mode
~/.anz33/audit.jsonlThe hash-chained record
~/.anz33/config.jsonEngines, port, whether cloud is allowed

They are ordinary files. Back them up, put them in a private git repository, delete them — they are yours, and anz33 rebuilds anything missing with safe defaults.