AppLedger

net.appledger由 appledger.net 发布v0.2.5更新于 Oct 24, 2026

Plain-English security checks for AI-built apps (Trivy + Opengrep), with fix requests for agents

已验证STDIO仅桌面开发者工具安全与监控

概览

AI 生成的概览

AppLedger 对 AI 构建的应用目录做通俗语言的安全检查,并生成可直接交给编码代理的修复请求。

可以做什么
用 Trivy 和 Opengrep 扫描应用目录,检查泄露的密钥、过时依赖、有风险的容器配置和危险代码模式,并用日常语言说明问题、评分以及当前谁可以使用该应用。生成可直接交给编码代理的修复请求,修复后再次检查。在应用的 .appledger 目录中输出报告、修复提示和发现结果文件。在上传前预览哪些文件会被发送、哪些被排除。可选地把每次检查的摘要保存到公司仪表盘,并安排每日或每周检查。
适用场景
适合用 AI 编码工具构建了应用、想知道能否安全分享,或希望得到一份具体修复清单反馈给该工具的人。也适合希望集中记录团队所检查应用的团队。
运行要求
以 Python 包形式通过 uvx 在本地运行(需要 uv)。默认的托管模式需要访问扫描服务的网络;本地模式还需安装 Trivy、Opengrep 及其规则。可选的连接密钥通过 APPLEDGER_KEY 提供或用连接命令保存;APPLEDGER_MODE 选择托管或本地模式。
安装前请注意
托管模式下,Git 会提交的文件会被上传到第三方服务,属于雇主或客户的代码可能需要先获得许可;密钥类文件会被排除,每个目录首次上传前会请求确认。连接密钥(APPLEDGER_KEY)保存在磁盘上并可访问仪表盘。没有密钥时,托管检查会返回保存链接,摘要最多保留 24 小时。定时检查需要一次性同意参数。

安装

在 SourceWeft 中

  1. 打开 控制台中的 AppLedger,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

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

ScannerFinds
TrivyLeaked passwords and keys, outdated libraries with known security problems, risky container setup
OpengrepDangerous 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 words
  • fix-prompt.md: a ready-made fix request for your coding agent
  • findings.json: the same findings for tools and dashboards

Two ways to run

ModeWhat you installWhere your code goes
Hosted (default)Only this packageSource files Git would commit are zipped, sent over HTTPS to appledger.net, scanned and deleted right after. Secret files are never sent. You confirm before the first upload of each folder
Local (--local or APPLEDGER_MODE=local)Also Trivy, Opengrep and the Opengrep rulesStays on your computer. With a connection key, only a summary goes to your dashboard (see below); --no-dashboard skips even that

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, .gitignore is still honoured.
  • Never sent: .env and .env.* (except .env.example, .env.sample, .env.template), *.pem, *.key, *.p12, *.pfx, SSH keys, .npmrc, .pypirc, .netrc, *credentials*.json, service-account*.json, secrets.*, the folders cert, certs, secrets, .ssh and .aws, .claude/settings.local.json, Terraform state, password files, Ansible Vault files, Kubernetes/Helm secret manifests, certificates and similar (full list in src/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-files

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):

claude plugin marketplace add contentasoftware/appledgerclaude plugin install appledger@appledger

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):

claude mcp add appledger -- uvx --from appledger appledger-mcp

Command line:

pip install appledgerpython -m appledger path/to/your-app

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:

python -m appledger --connect al_your_key

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:

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 dailypython -m appledger --schedules                                 # listpython -m appledger path/to/your-app --schedule off             # stop

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

  1. Trivy: winget install AquaSecurity.Trivy (Windows) or brew install trivy (Mac)
  2. Opengrep: download from the releases page and put it on your PATH
  3. Rules: git clone --depth 1 https://github.com/opengrep/opengrep-rules.git ~/.appledger/opengrep-rules
  4. Check: python -m appledger --doctor

Repository layout

PathWhat
src/appledger/scanner.pyScanners, plain-language translation, report and fix request
src/appledger/client.pyPicks the files to send (honouring .gitignore) and sends them to the hosted service
src/appledger/uploadpolicy.pyThe full list of secret files that are never uploaded, used by client and server
src/appledger/service.pyServer side: unpacks an upload safely and scans it
src/appledger/server.pyLocal MCP server used by the plugin
plugin/Claude Code / Codex plugin with the check-my-app skill
tests/mcp_smoke.pyCalls 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.

来源:README.md,提交 da3efbf

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

3
  1. v0.2.5最新Oct 14, 2026
  2. v0.2.3Oct 14, 2026
  3. v0.2.2Oct 12, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分