跳到正文
cccskills
免费在 GitHub 公开

repomix-safe-mixer

Safely package codebases with repomix by automatically detecting and removing hardcoded credentials before packing. Use when packaging code for distribution, creating reference packages, or when the user mentions security concerns about sharing code with repomix.

中文简介正在准备中。当前显示原文说明。

集成工具Supabase
查看安装方法

包含的文件(4)

  • SKILL.md7.7 KB
  • references/common_secrets.md6.4 KB
  • scripts/safe_pack.py5.4 KB
  • scripts/scan_secrets.py7.5 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Repomix Safe Mixer

Overview

Safely package codebases with repomix by automatically detecting and removing hardcoded credentials.

This skill prevents accidental credential exposure when packaging code with repomix. It scans for hardcoded secrets (API keys, database credentials, tokens), reports findings, and ensures safe packaging.

When to use: When packaging code with repomix for distribution, creating shareable reference packages, or whenever security concerns exist about hardcoded credentials in code.

Core Workflow

Standard Safe Packaging

Use safe_pack.py from this skill's scripts/ directory for the complete workflow: scan → report → pack.

python3 scripts/safe_pack.py <directory>

What it does:

  1. Scans directory for hardcoded credentials
  2. Reports findings with file/line details
  3. Blocks packaging if secrets found
  4. Packs with repomix only if scan is clean

Example:

python3 scripts/safe_pack.py ./my-project

Output if clean:

🔍 Scanning ./my-project for hardcoded secrets...
✅ No secrets detected!
📦 Packing ./my-project with repomix...
✅ Packaging complete!
   Package is safe to distribute.

Output if secrets found:

🔍 Scanning ./my-project for hardcoded secrets...
⚠️  Security Scan Found 3 Potential Secrets:

🔴 supabase_url: 1 instance(s)
   - src/client.ts:5
     Match: https://your-project-ref.supabase.co

❌ Cannot pack: Secrets detected!

Options

Custom output file:

python3 scripts/safe_pack.py \
  ./my-project \
  --output package.xml

With repomix config:

python3 scripts/safe_pack.py \
  ./my-project \
  --config repomix.config.json

Exclude patterns from scanning:

python3 scripts/safe_pack.py \
  ./my-project \
  --exclude '.*test.*' '.*\.example'

Force pack (dangerous, skip scan):

python3 scripts/safe_pack.py \
  ./my-project \
  --force  # ⚠️ NOT RECOMMENDED

Standalone Secret Scanning

Use scan_secrets.py from this skill's scripts/ directory for scanning only (without packing).

python3 scripts/scan_secrets.py <directory>

Use cases:

  • Verify cleanup after removing credentials
  • Pre-commit security checks
  • Audit existing codebases

Example:

python3 scripts/scan_secrets.py ./my-project

JSON output for programmatic use:

python3 scripts/scan_secrets.py \
  ./my-project \
  --json

Exclude patterns:

python3 scripts/scan_secrets.py \
  ./my-project \
  --exclude '.*test.*' '.*example.*' '.*SECURITY_AUDIT\.md'

Detected Secret Types

The scanner detects common credential patterns including:

Cloud Providers:

  • AWS Access Keys (AKIA...)
  • Cloudflare R2 Account IDs and Access Keys
  • Supabase Project URLs and Anon Keys

API Keys:

  • Stripe Keys (sk_live_..., pk_live_...)
  • OpenAI API Keys (sk-...)
  • Google Gemini API Keys (AIza...)
  • Generic API Keys

Authentication:

  • JWT Tokens (eyJ...)
  • OAuth Client Secrets
  • Private Keys (-----BEGIN PRIVATE KEY-----)
  • Turnstile Keys (0x...)

See references/common_secrets.md for complete list and patterns.

Handling Detected Secrets

When secrets are found:

Step 1: Review Findings

Examine each finding to verify it's a real credential (not a placeholder or example).

Step 2: Replace with Environment Variables

Before:

const SUPABASE_URL = "https://your-project-ref.supabase.co";
const API_KEY = "<hardcoded-anon-key-DO-NOT-COMMIT>";

After:

const SUPABASE_URL = import.meta.env.VITE_SUPABASE_URL || "https://your-project-ref.supabase.co";
const API_KEY = import.meta.env.VITE_API_KEY || "your-api-key-here";

// Validation
if (!import.meta.env.VITE_SUPABASE_URL) {
  console.error("⚠️ Missing VITE_SUPABASE_URL environment variable");
}

Step 3: Create .env.example

# Example environment variables
VITE_SUPABASE_URL=https://your-project-ref.supabase.co
VITE_API_KEY=your-api-key-here

# Instructions:
# 1. Copy this file to .env
# 2. Replace placeholders with real values
# 3. Never commit .env to version control

Step 4: Verify Cleanup

Run scanner again to confirm secrets removed:

python3 scripts/scan_secrets.py ./my-project

Step 5: Safe Pack

Once clean, package safely:

python3 scripts/safe_pack.py ./my-project

Post-Exposure Actions

If credentials were already exposed (e.g., committed to git, shared publicly):

  1. Rotate credentials immediately - Generate new keys/tokens
  2. Revoke old credentials - Disable compromised credentials
  3. Audit usage - Check logs for unauthorized access
  4. Monitor - Set up alerts for unusual activity
  5. Update deployment - Deploy code with new credentials
  6. Document incident - Record what was exposed and actions taken

Common False Positives

The scanner skips common false positives:

Placeholders:

  • your-api-key, example-key, placeholder-value
  • <YOUR_API_KEY>, ${API_KEY}, TODO: add key

Test/Example files:

  • Files matching .*test.*, .*example.*, .*sample.*

Comments:

  • Lines starting with //, #, /*, *

Environment variable references (correct usage):

  • process.env.API_KEY
  • import.meta.env.VITE_API_KEY
  • Deno.env.get('API_KEY')

Use --exclude to skip additional patterns if needed.

Integration with Repomix

This skill works with standard repomix:

Default usage (no config):

python3 scripts/safe_pack.py ./project

With repomix config:

python3 scripts/safe_pack.py \
  ./project \
  --config repomix.config.json

Custom output location:

python3 scripts/safe_pack.py \
  ./project \
  --output ~/Downloads/package-clean.xml

The skill runs repomix internally after security validation, passing through config and output options.

Example Workflows

Workflow 1: Package a Clean Project

# Scan and pack in one command
python3 scripts/safe_pack.py \
  ~/workspace/my-project \
  --output ~/Downloads/my-project-package.xml

Workflow 2: Clean and Package a Project with Secrets

# Step 1: Scan to discover secrets
python3 scripts/scan_secrets.py ~/workspace/my-project

# Step 2: Review findings and replace credentials with env vars
# (Edit files manually or with automation)

# Step 3: Verify cleanup
python3 scripts/scan_secrets.py ~/workspace/my-project

# Step 4: Package safely
python3 scripts/safe_pack.py \
  ~/workspace/my-project \
  --output ~/Downloads/my-project-clean.xml

Workflow 3: Audit Before Commit

# Pre-commit hook: scan for secrets
python3 scripts/scan_secrets.py . --json

# Exit code 1 if secrets found (blocks commit)
# Exit code 0 if clean (allows commit)

Resources

References:

  • references/common_secrets.md - Complete credential pattern catalog

Scripts:

  • scripts/scan_secrets.py - Standalone security scanner
  • scripts/safe_pack.py - Complete scan → pack workflow

Related Skills:

  • repomix-unmixer - Extracts files from repomix packages
  • skill-creator - Creates new Claude Code skills

Security Note

This skill detects common patterns but may not catch all credential types. Always:

  • Review findings manually
  • Rotate exposed credentials
  • Use .env.example templates
  • Validate environment variables
  • Monitor for unauthorized access

Not a replacement for: Secret scanning in CI/CD, git history scanning, or comprehensive security audits.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Fixes web search on an agent whose model backend can't run it: a relay/reseller proxying Claude or Codex returns empty instead of failing. Use when web search returns nothing, a model insists a shipped product doesn't exist, someone wants to give an agent internet access, or the user is on a third-party base URL, relay, or 中转站. Diagnoses which built-in tools are dead, removes them, and installs a working replacement.

中文简介正在准备中。当前显示原文说明。

daymade/claude-code-skills14802026年10月20日 更新

Improves an existing application using its code, product contract, authorized work history and competitor evidence. Use for 取长补短、取其精华去其糟粕、参考竞品优化应用 or evolving an app from successful and failed work. Carries authorized changes through implementation and user-result verification, including REA and reverse Skill composition; use skill-evolver for Skills.

中文简介正在准备中。当前显示原文说明。

daymade/claude-code-skills14802026年10月20日 更新

抓取 A 股消息面情报:从财联社、华尔街见闻、金十、新浪 7x24、东财快讯、 证监会/央行/上交所/财政部政策公告、东方财富股吧等公开来源抓取与股票相关的 新闻、政策、情绪,输出结构化 JSON 或 Markdown。 当用户提到“A 股消息面”、“抓新闻”、“个股消息”、“政策监管”、“股吧情绪”、 “财联社”、“东财快讯”、“市场情绪”或需要把某只股票相关的公开情报聚合出来时 触发。也适用于“帮我看看 000001 最近有什么消息”这类口语化请求。

中文简介正在准备中。当前显示原文说明。

daymade/claude-code-skills14802026年10月20日 更新

Transcribes audio or video to speaker-labeled, timestamped text, locally with MLX on Apple Silicon or remotely. Use for 转录 / 录音转文字 / 说话人分离 / 字幕, and also for preparing audio for ASR without transcribing: 转格式, 降采样到 16kHz, merging recorder segments, or compressing and speeding up audio before 飞书妙记 — even when it looks like a one-line ffmpeg job.

中文简介正在准备中。当前显示原文说明。

daymade/claude-code-skills14802026年10月20日 更新

Routes audio: StepFun ASR/语音识别, StepFun TTS/配音, transcript/妙记→会议纪要, merge/review minutes. Reads one bundled specialist; generic ASR and correction stay direct.

中文简介正在准备中。当前显示原文说明。

daymade/claude-code-skills14802026年10月20日 更新

Diagnoses and repairs repository setup and guarded Git workflows for Claude Code or Codex — environment repair, startup sync, hook auditing, collaborator handoff. Use when a repo won't run, a teammate onboards, hook output duplicates, or commit/push/conflict needs guarding. Not for lost-commit recovery (use git-safety-net), GitHub ops (use github-ops), or history scrubbing (use github-sensitive-data-cleanup).

中文简介正在准备中。当前显示原文说明。

daymade/claude-code-skills14802026年10月20日 更新

查看 daymade 的全部技能

报告此技能的问题