AppLedger
net.appledgerPublished by appledger.netv0.2.5Updated Oct 24, 2026
Plain-English security checks for AI-built apps (Trivy + Opengrep), with fix requests for agents
Overview
AppLedger runs plain-language security checks on AI-built app folders and produces a fix request an assistant can hand back to the coding agent.
- What you can do
- Scan an app folder with Trivy and Opengrep for leaked secrets, outdated libraries, risky container setup and dangerous code patterns, explained in everyday words with a score and who may use the app now. Write a ready-made fix request for the coding agent, then check again after the fixes. Produce a report, a fix prompt and a findings file in the app's .appledger folder. Preview which files would be uploaded and which are excluded before anything leaves the machine. Optionally save a summary of each check to a company dashboard and schedule daily or weekly checks.
- When to use it
- Useful when someone has built an app with an AI coding tool and wants to know whether it is safe to share, or wants a concrete fix list to feed back to that tool. Also fits teams that want a running ledger of the apps their people check.
- Requirements
- Runs locally as a Python package via uvx (uv required). Hosted mode is the default and needs network access to the scanning service; local mode additionally needs Trivy, Opengrep and the Opengrep rules installed. An optional connection key is supplied through APPLEDGER_KEY or saved with the connect command; APPLEDGER_MODE selects hosted or local.
Installation
In SourceWeft
- Open AppLedger in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
AppLedger 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
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
Two ways to run
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:
The 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):
In 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):
Command line:
Step-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:
Or 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:
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
Uses 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-rules - Check:
python -m appledger --doctor
Repository layout
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.
Source: README.md at commit da3efbf
Tools
0Version history
3- v0.2.5LatestOct 14, 2026
- v0.2.3Oct 14, 2026
- v0.2.2Oct 12, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts