NXD
NXD keeps your secrets out of what AI models see. Keys stay on your machine. Agents get opaque tokens, sealed text or redacted text back instead of plaintext, and reveals go to the operator, not the agent. Note: the agent still sees whatever plaintext it passes in as a tool argument.
Crypto: shield / seal_text / tokens use Fernet (AES-128-CBC + HMAC-SHA256);
the vault and secret handles use AES-256-GCM envelopes with per-company keys.
After installation everything runs locally and offline: no account and no
Nexplora service is needed. (The optional nxd serve / vault-setup commands
are for self-hosting and are off unless you run them.)
Install
pip install nxd # Python 3.10+
# or via npm (needs Python 3.10+ on PATH; first run downloads the Python package):
npx @nexplora/nxd --help
The npm package is a thin launcher: it creates a private Python virtualenv
under your user cache directory, installs this nxd package into it, and runs
it. It requires Python 3.10 or newer.
CLI
nxd init # set up NXD in the current project
nxd init-operator # create the operator key in your OS keychain
nxd open | lock | status
nxd reveal <id> # read a reveal an agent queued (operator only)
nxd recover-operator
nxd migrate-vault
nxd --help
MCP server
{ "mcpServers": { "nxd": { "command": "nxd-mcp" } } }
Prefer the OS keychain (nxd init-operator). Only set NXD_OPERATOR_PASSPHRASE
in the server's environment where no keychain exists, and keep that config file
unreadable to agents. Tools:
nxd_shield, nxd_unshield, nxd_redact, nxd_tokenize, nxd_detokenize,
nxd_seal_text, nxd_unseal_text, nxd_score, nxd_match and nxd_aggregate.
nxd_unshield never returns plaintext to the agent: it queues a reveal that
only the operator can read with nxd reveal (same for nxd_detokenize and
nxd_unseal_text). Threat model: anything running as your OS user, including an
agent with shell access, can run nxd reveal too. NXD protects against the
model seeing secrets, not against a fully compromised local account.
nxd_score / nxd_match need the optional FHE extra on Python 3.10-3.11:
pip install 'nxd[fhe]'.
Security notes
- NXD's security rests on the cryptography and your own key, not on the core being compiled. Compiling only hides the implementation.
nxd_redactis best-effort pattern detection, not a guarantee.
License
The CLI, MCP server and tests are Apache-2.0 (see LICENSE). The core ships
as compiled binaries under LICENSE-CORE. See NOTICE.
Metadata
Release files for nxd 0.6.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 34.4 MB
Release files / nxd-0.6.1-cp313-cp313-win_amd64.whl
| Download URL | nxd-0.6.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
306c7c4b655e126b81f92240b1f0d18d1fc5a39bfcf1ec3e565cc6ea4a762fd8
|
|
BLAKE2b-256 checksum How to use checksums |
77d3fb092a9e3c00fd1dc97c701749ec93f79280417c67776e680c07403aeb54
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | nxd-0.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
d14fdca25a18f8b9ac9a3cfe5cf994acb8aabecc1549c2c8c3fae1050203361b
|
|
BLAKE2b-256 checksum How to use checksums |
f0553b716a29a80587fe073d95a23243aaf9b2264c5cd2297f1ddc39ad7e60f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | nxd-0.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
81b17383f41d8d38cb52fd9142a99c77186b6a3a136b1ffc09ff601243bef3bc
|
|
BLAKE2b-256 checksum How to use checksums |
0627a945da57a93b573d6f8bc4216114762c2c348acbe78daa577278b568c9e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp313-cp313-macosx_11_0_x86_64.whl
| Download URL | nxd-0.6.1-cp313-cp313-macosx_11_0_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.13 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
88d24b651f5a64818d7f4ee2a431828ecde275656c24f9d9bccff462d7f2f02e
|
|
BLAKE2b-256 checksum How to use checksums |
aa3fee4d6a9fff984aa61c116296a504c1f0a91edced3db789aa3390a5b311b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | nxd-0.6.1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
966017076f94058f7e4fcfb30aed51e1c4e700e3ddd1a6f9a9fc82b1d7b65bca
|
|
BLAKE2b-256 checksum How to use checksums |
a98bc6abc3d83447029065969492dda1f3c7a4c1abdf1c6d57de86fcbd5ccd68
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp312-cp312-win_amd64.whl
| Download URL | nxd-0.6.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
53dff627dd956209f6cb9d25fa2de30aaf9dbbaf223d8841d38173b198893ee7
|
|
BLAKE2b-256 checksum How to use checksums |
9b2f98abd846c1d3ec54e96bec16fbc57639af6a693213fb88334344886c1101
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | nxd-0.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
11c649d4ae722e79f4a2af22a3dd2e845b403722399f6f12cbb534d98c5a4ce2
|
|
BLAKE2b-256 checksum How to use checksums |
f64710a3f303ff209f0a836909ef3d416aa675b49782a8d72b4a7c58006070ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | nxd-0.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
f054bdaea3376619c76e65e34573386668f85a537ea815bee69e04bfcb7ddff2
|
|
BLAKE2b-256 checksum How to use checksums |
49da67c564cab3ce9d7bfb5a589e1e5eda68c0cc3a62b6a8c0a7a40d6084c7f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp312-cp312-macosx_11_0_x86_64.whl
| Download URL | nxd-0.6.1-cp312-cp312-macosx_11_0_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.12 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
7bd27509cd15628592562b0a6e9429b70e2606849024c3299c4adc4ef3d9c74c
|
|
BLAKE2b-256 checksum How to use checksums |
6c7a33c825d0d1f7677cec7e40075d630a6770b3be8cad81939c63d8094badaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | nxd-0.6.1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c201cdfdea2cffb3812d16775ae17287041f655611a0ecd510a2c03f52e68654
|
|
BLAKE2b-256 checksum How to use checksums |
6825519d08d3ef54db76b0a7ecae6c3caeefcb80091e11a9dbbc2f9da177c1a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp311-cp311-win_amd64.whl
| Download URL | nxd-0.6.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ea24ee47d004256e0b3f552952d1882419c487b603c619f6402958cab6add57b
|
|
BLAKE2b-256 checksum How to use checksums |
1d4ff9ae6bfd748e9c2c3e15a8935ccd50fc9358c42430abbe3740301ad679f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | nxd-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
1321f2cec4816d0a4204f4fdeaa078606e6995666c5fc568970520bd16602f75
|
|
BLAKE2b-256 checksum How to use checksums |
c0738326d76b88e152d446fb7d6fddb11f3ef000f7dd798cb37d72bc1d0a1973
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | nxd-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
2a482a619d08656e4a060989ffc7c0d4eef8f254a9a6e052c4451a3359a7cb23
|
|
BLAKE2b-256 checksum How to use checksums |
46135d49eaa834d715ef2a839b1e104fc7a710ec7ded2d02e5cbda3cb0c08330
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp311-cp311-macosx_11_0_x86_64.whl
| Download URL | nxd-0.6.1-cp311-cp311-macosx_11_0_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.11 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
a20be8a4655f6c52c6ecad68cc6fe7d07cdf844966fd8c70e31a80ae2eb407e8
|
|
BLAKE2b-256 checksum How to use checksums |
cce1f35b3b210eac9b540bc60da9e0471c4df2074d72638390802f621681a4c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | nxd-0.6.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4b3b755ec957206928f6b85b60a53a33159733585372aab90a2ab57a97871f2d
|
|
BLAKE2b-256 checksum How to use checksums |
feb94353bbdee2fb02b9de0816bfa638de6692e38ab2cc7998623bad02e343af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp310-cp310-win_amd64.whl
| Download URL | nxd-0.6.1-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4a68c71b2bee3f0a1c386e720c3944a41a1064a0ac958c2c1040df4891e5b8c1
|
|
BLAKE2b-256 checksum How to use checksums |
ece871e6eb037cc5dd037509a9a961b793d3c9c553d17e60d5c5161cc8fdc6bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | nxd-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
f4efce824db19a076a5ce3ab21b34e63d721fce7761396d25d81752a04cbe0ec
|
|
BLAKE2b-256 checksum How to use checksums |
c607f1f7526fd0a497c3be3a71949704624ebebc468a10d65987349d3a2e3f00
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | nxd-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
e14c46a66541c4ac7dc9ce925cb3212b61acd750dd1f453b2bfdb1aa6d098f6c
|
|
BLAKE2b-256 checksum How to use checksums |
9c39bbdfa4cb08c51ee859acb5464a6ef642eb9fd525f7ccf58cc58dc7568a37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp310-cp310-macosx_11_0_x86_64.whl
| Download URL | nxd-0.6.1-cp310-cp310-macosx_11_0_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.10 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
2cd2926ed555fc80cd7e6a2bd273759483b27f1565184e98ef6f071231fc6c1c
|
|
BLAKE2b-256 checksum How to use checksums |
e43b1c4a6dc65c1142f75b85295681df75165076bb47ba02acabf06ddebcbd91
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / nxd-0.6.1-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | nxd-0.6.1-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4088ff20ffdea256815d4af2994619854be98e97903bcdfe9350cec8a96d6495
|
|
BLAKE2b-256 checksum How to use checksums |
23e04230a95b8ac31efa04a80bae1bd88db0224f08959803db6b916a337040a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Security for nxd 0.6.1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.