@tpmjs/tools-redact-secrets
Redact detected secrets from text by replacing them with [REDACTED:type] placeholders. Automatically detects API keys, tokens, passwords, and other sensitive data. Optionally provide custom regex patterns to redact.
Test @tpmjs/tools-redact-secrets (redactSecrets) with AI-powered execution
0/2000 characters
Install this tool and use it with the AI SDK
npm install @tpmjs/tools-redact-secretspnpm add @tpmjs/tools-redact-secretsyarn add @tpmjs/tools-redact-secretsbun add @tpmjs/tools-redact-secretsdeno add npm:@tpmjs/tools-redact-secretsimport { redactSecrets } from '@tpmjs/tools-redact-secrets';import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { redactSecrets } from '@tpmjs/tools-redact-secrets';
const result = await generateText({
model: openai('gpt-4o'),
tools: { redactSecrets },
prompt: 'Your prompt here...',
});
console.log(result.text);Available configuration options
textstringThe text to redact secrets from
customPatternsarrayOptional array of custom regex patterns to redact (as strings, e.g., "/pattern/g" or "pattern")
Schema extracted: 1/1/2026, 1:06:15 AM
Redact detected secrets from text by replacing them with [REDACTED:type] placeholders.
@tpmjs/tools-secret-scan-textnpm install @tpmjs/tools-redact-secrets
import { redactSecrets } from '@tpmjs/tools-redact-secrets'; const code = ` const AWS_KEY = "AKIAIOSFODNN7EXAMPLE"; const apiKey = "sk-proj-1234567890abcdef"; const dbUrl = "postgres://user:password123@localhost:5432/mydb"; `; const result = await redactSecrets.execute({ text: code }); console.log(result.redacted); // const AWS_KEY = "[REDACTED:aws-access-key]"; // const apiKey = "[REDACTED:openai-api-key]"; // const dbUrl = "[REDACTED:postgres-connection]"; console.log(result.redactions); // [ // { // type: 'aws-access-key', // originalLength: 20, // line: 2, // column: 18, // replacement: '[REDACTED:aws-access-key]' // }, // { // type: 'openai-api-key', // originalLength: 24, // line: 3, // column: 17, // replacement: '[REDACTED:openai-api-key]' // }, // { // type: 'postgres-connection', // originalLength: 50, // line: 4, // column: 17, // replacement: '[REDACTED:postgres-connection]' // } // ]
const text = ` My email is user@example.com My phone is 555-1234 `; const result = await redactSecrets.execute({ text, customPatterns: [ '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}', // Email '\\d{3}-\\d{4}', // Phone ], }); console.log(result.redacted); // My email is [REDACTED:custom-pattern] // My phone is [REDACTED:custom-pattern]
import { redactSecrets } from '@tpmjs/tools-redact-secrets'; function safelog(message: string) { const result = await redactSecrets.execute({ text: message }); console.log(result.redacted); } // Safe to log - secrets automatically redacted safelog('Error connecting to postgres://admin:secret@db.example.com/prod'); // Output: Error connecting to [REDACTED:postgres-connection]
The tool automatically redacts:
Custom patterns can be provided as:
"pattern" - Treated as literal regex with global flag"/pattern/flags" - Parsed as regex with flagsExamples:
customPatterns: [ 'CUSTOM-[A-Z0-9]{10}', // Plain string '/SECRET_\\w+/gi', // Regex with flags '[0-9]{3}-[0-9]{2}-[0-9]{4}', // SSN pattern ]
interface RedactionResult { redacted: string; // Text with secrets replaced redactionCount: number; // Total number of redactions redactions: Array<{ // Details of each redaction type: string; originalLength: number; line: number; column: number; replacement: string; }>; metadata: { originalLength: number; redactedLength: number; linesProcessed: number; }; }
MIT
Downloads/month
0
Quality Score