AppLedger
OfficialAppLedger honest check
Honest security feedback, in plain language, for apps people build with AI tools such as Claude Code, Codex, Cursor and Lovable.
AppLedger checks your app folder with independent scanners and explains what they find in everyday words: what is wrong, why it matters, and what to do. It also writes a fix request you can hand straight to the AI tool that built the app, then checks again.
What it checks
Scanner | Finds |
Leaked passwords and keys, outdated libraries with known security problems, risky container setup | |
Dangerous code patterns: SQL injection, command injection, unsafe data loading, debug mode left on | |
SonarQube (optional, local mode) | Code quality and more security hotspots, if you already run a SonarQube server |
Each run produces, in <your-app>/.appledger/:
report.html: a score, who may use the app right now (only you, your team, the whole company), and every problem in plain wordsfix-prompt.md: a ready-made fix request for your coding agentfindings.json: the same findings for tools and dashboards
Related MCP server: supership-scan
Two ways to run
Mode | What you install | Where your code goes |
Hosted (default) | Only this package | Source files Git would commit are zipped, sent over HTTPS to |
Local ( | Also Trivy, Opengrep and the Opengrep rules | Stays on your computer. With a connection key, only a summary goes to your dashboard (see below); |
What gets uploaded in hosted mode
Sent: files Git would commit (
git ls-files, including new files that aren't ignored). Outside a Git repository,.gitignoreis still honoured.Never sent:
.envand.env.*(except.env.example,.env.sample,.env.template),*.pem,*.key,*.p12,*.pfx, SSH keys,.npmrc,.pypirc,.netrc,*credentials*.json,service-account*.json,secrets.*, the folderscert,certs,secrets,.sshand.aws,.claude/settings.local.json, Terraform state, password files, Ansible Vault files, Kubernetes/Helm secret manifests, certificates and similar (full list insrc/appledger/uploadpolicy.py). The server drops such files again as a second safety net.Skipped: dependencies, build output, media, documents and data files (CSV, spreadsheets, slides, SQL, logs, data dumps) and files over 1 MB.
If a secret file is committed to Git or not ignored, the check reports it as a problem by file name. Its content is never read or sent.
See exactly what would be sent, and what is left out and why, without uploading anything:
python -m appledger path/to/your-app --list-filesThe first hosted check of a folder asks you to confirm. In scripts and scheduled runs, pass --yes. If the code belongs to your employer or a client, make sure you're allowed to upload it, or use local mode.
Install
Claude Code plugin (recommended: adds the guided check-my-app skill):
claude plugin marketplace add contentasoftware/appledger
claude plugin install appledger@appledgerIn the Claude Code desktop app, add the marketplace contentasoftware/appledger in the plugin settings instead. Start a new session, then ask: "Is my app safe to share?" or "Add this app to AppLedger".
MCP server only (needs uv):
claude mcp add appledger -- uvx --from appledger appledger-mcpCommand line:
pip install appledger
python -m appledger path/to/your-appStep-by-step guide with troubleshooting: https://appledger.net/docs/
Version 0.2.0 (upload preview, consent, secret-file exclusion, scheduling) is being released to PyPI; until then pip install appledger gets 0.1.x.
Company dashboard
Create a free account at appledger.net to keep every app your people check in one ledger: owner, grade, score trend, who may use it and which AI tool built it. Create a connection key under "Connect a computer", then save it on each computer:
python -m appledger --connect al_your_keyOr tell Claude: "Connect AppLedger with this key: al_…". The key is saved in ~/.appledger/key; APPLEDGER_KEY overrides it and --disconnect removes it.
From then on each check also saves a summary to your dashboard: the app's name, score, grade, problem counts, the list of problems found (level and short title, up to 60; never code or file paths), and the scanners used. Never the code.
Not connected yet? From 0.2.3, a hosted check from a computer without a key ends with a save link, also shown in report.html:
Save this result to a free AppLedger ledger (link works for 24 hours): https://appledger.net/app/claim.php?t=...Open it, create a free account or log in, and the check is in your ledger; the page then offers a key for that computer. Until the link is used, the service keeps only the check's summary (app name, score, the problems' levels and titles; never code), for up to 24 hours. A link works once; --no-dashboard turns it off.
You can also add an app in the web app with Add app: register it without code, or upload a zip to check it in the browser (the zip is scanned and deleted the same way).
Scheduled checks
python -m appledger path/to/your-app --schedule weekly --yes # or daily
python -m appledger --schedules # list
python -m appledger path/to/your-app --schedule off # stopUses Windows Task Scheduler on Windows and cron on macOS and Linux. Hosted scheduled checks need the one-time --yes consent; add --local to schedule local checks instead. --quiet prints one line per check.
Local mode setup
Trivy:
winget install AquaSecurity.Trivy(Windows) orbrew install trivy(Mac)Opengrep: download from the releases page and put it on your PATH
Rules:
git clone --depth 1 https://github.com/opengrep/opengrep-rules.git ~/.appledger/opengrep-rulesCheck:
python -m appledger --doctor
Repository layout
Path | What |
| Scanners, plain-language translation, report and fix request |
| Picks the files to send (honouring |
| The full list of secret files that are never uploaded, used by client and server |
| Server side: unpacks an upload safely and scans it |
| Local MCP server used by the plugin |
| Claude Code / Codex plugin with the |
| Calls every MCP tool like an agent would |
License
MIT. The Opengrep community rules used by the scanner have their own license (Commons Clause); check it before using them in a paid service.
This server cannot be deployed
Maintenance
Related MCP Connectors
Zero-config MCP security scanner for AI-generated apps. 25K+ vulnerability patterns.
Risk-scan a diff, flag AI-generated-code tells, find secrets. 5 of 7 tools need no account.
- VulX WatchOAuthai.vulx
Independent security review for AI-built apps. Watch a GitHub repo. Never a patch.
Deep security scans of repos you own from your editor: dependency CVEs, SAST, git-history secrets.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAutomatically detects security vulnerabilities in AI-generated code, scanning for hardcoded secrets, injection flaws, XSS, weak cryptography, authentication issues, path traversal, and vulnerable dependencies across JavaScript, Python, Java, and Go.12 npm2MIT
- AlicenseNot gradedqualityFmaintenancePredeploy security scanner for AI-generated code. 80+ vulnerability patterns across secrets, auth, injection, config, Supabase, and logging. Runs locally, code never leaves your machine. Optional x402 witnessed attestation.51 npmApache 2.0
- AlicenseNot gradedqualityDmaintenanceAI-powered security scanner for Python projects and GitHub repositories. Detects vulnerabilities, secrets, and provides AI risk assessment.11MIT
- AlicenseNot gradedqualityDmaintenanceLocal-first security check for AI coding agents — finds hardcoded secrets, exposed .env files, git-history leaks and vulnerable dependencies (OSV), entirely on your machine. Ask your agent "is this safe to ship?" and get a Launch Readiness score with a fix for every finding.MIT