Claude Code Tools

@nodatachat/protect

official

Encrypt .env secrets with AES-256-GCM. Decrypt in memory only. Cryptographic proof of every access. Claude Code Skill included.

Version
1.9.0
Last Updated
2026-04-25
Source
official
NoData — Local-first security for developers

Your code stays on your machine. Your secrets stay encrypted. Every access is proven.


We encourage you not to pay. Developers — let’s make a deal. If you encrypt, you don’t pay. Ever. (We only block abusive bots and unfair automation — never you.)

When you grow, you’ll want Capsule — a personal vault, and a whole world of security, privacy, and ease of use.

npm TypeScript Encryption License: MIT


The Problem

Your .env file contains your database password, your API keys, your cloud credentials — in plain text.

One poisoned npm package. One git push mistake. One stolen laptop. Game over.

OPENAI_API_KEY=sk-proj-Ax7Q...        ← anyone can read this
DATABASE_URL=postgres://prod:pass@...  ← and this
STRIPE_KEY=sk_live_4eC39...            ← and this

The Fix: One Command

npx @nodatachat/protect encrypt
OPENAI_API_KEY=ndc_enc_7f3a8b...      ← useless if stolen
DATABASE_URL=ndc_enc_4c1d7a...         ← useless if stolen
STRIPE_KEY=ndc_enc_c3d9a0...           ← useless if stolen

Your app still works. Secrets are decrypted in memory only at runtime:

npx @nodatachat/protect run -- npm start
# Secrets exist only in RAM. Never on disk.

Quick Start

# 1. Setup (creates free API key — no signup, no credit card)
npx @nodatachat/protect init

# 2. Encrypt all secrets in .env
npx @nodatachat/protect encrypt

# 3. Run your app with decrypted secrets (memory only)
npx @nodatachat/protect run -- npm run dev

# 4. Check status
npx @nodatachat/protect status

Works with any stack: Node.js, Python, Go, Ruby, Docker, docker-compose.


Claude Code Skill

Install once — ask your AI to encrypt your secrets when you need it:

mkdir -p ~/.claude/skills/nodata-protect && \
curl -sL https://raw.githubusercontent.com/daviderez4/nodatachat-core/main/skill/nodata-protect/SKILL.md \
  -o ~/.claude/skills/nodata-protect/SKILL.md

What happens after install:

  • Ask Claude to encrypt your .env — it knows how
  • Encryption is local (AES-256-GCM, on your machine)
  • Adds dev:safe to package.json
  • Verifies .gitignore covers sensitive files
  • Works with Claude Code, Cursor, Windsurf

The skill does NOT activate automatically. It only runs when you ask. You’re in control — the AI executes.


Cryptographic Proof

Every encryption and decryption generates HMAC-SHA256 proof:

WhatProof
Secret encryptedTimestamp + device ID + field hash
Secret accessedWhen, from where, which device
Secret destroyedProof of deletion with hash chain

You don’t trust your secrets are safe. You prove it.


Public Witness Feed — Trustless Proof Anchoring

Operator receipts issued by the NoData platform are sealed every UTC hour into a Merkle tree and published to a separate public repository: github.com/proofbydefault/witness-feed. Each file is commitment-only — root hashes, counts, timestamps, prev-epoch chain links. No proof refs, no receipt ids, no tenant ids, no payloads.

Receipt holders can verify their inclusion locally with the verifyInclusion() primitive in @nodatachat/core:

import { verifyInclusion } from '@nodatachat/core';

const ok = await verifyInclusion(
  myReceiptLeaf,           // from /verify/ref/<ref> on nodatachat.com
  inclusionProof,          // sibling chain from same page
  witnessRoot,             // from the public witness feed JSON
);
// → pure SHA-256 math, no network calls, no NoData servers in the path

Why the split: the platform code stays private, but every cryptographic claim NoData makes is independently re-derivable from an open-source verifier (@nodatachat/core) plus a public, append-only data source (the witness feed). Even if NoData disappears, the proofs still verify.

See packages/core/src/README.md for the verification protocol.


Security Model

StateWithout NoDataWith NoData
On disk (.env)PlaintextEncrypted (ndc_enc_)
In Git (accident)CatastrophicHarmless
In CI/CD logsCan leakndc_enc_ only
In memory (runtime)PlaintextPlaintext (same)
Stolen by malwareFull accessNothing useful

Design principles:

  • 100% local encryption — AES-256-GCM runs on your machine. No secret ever leaves your computer.
  • Open source — full code on npm. Read it, audit it, verify every line before running.
  • run is not a proxy — decrypts to process memory only. No server, no network call. Values die with the process.
  • What IS sent: only metadata (field name + timestamp + hash). Never the actual value. Disconnect internet and verify.
  • Audit-ready — cryptographic proof chain for compliance (SOC 2)

How We’re Different

NoDataHashiCorp VaultAWS Secrets ManagerSOPSGitGuardian
Setup time10 secondsHours30 min15 min10 min
Free tierUnlimited encrypt + decrypt, foreverSelf-hostPaidSelfFree (scan)
Access proofHMAC-SHA256Audit logCloudTrailNoNo
AI-native skillYesNoNoNoNo
Zero knowledgeYesNoNoPartiallyNo
Fixes issuesYesNoNoNoNo

Packages

nodatachat-core/
  packages/
    crypto/      Low-level encryption (AES-256-GCM, RSA-OAEP, PBKDF2)
    core/        Identity, seed phrases, zero-data drops
    cli/         CLI tools — nodata-send, nodata-proof
  skill/
    nodata-protect/   Claude Code Skill for automatic .env protection

Full Protection: NoData Agent

This repo is the open-source core — encryption, basic scanning, CLI tools.

For full protection:

  • 46+ SOC controls deep scan
  • Automatic vulnerability fixes
  • Continuous monitoring daemon
  • Slack/Telegram alerts
  • Compliance certificates

Run NoData Agent



Open code builds trust. Closed logic builds advantage.

Your secrets encrypted. Your control. Your proof.

Get Started · npm · Docs · Examples