This repo is a gallery of community Lua Apps and Widgets for EdgeTX. scripts.json is the
single source of content — entries are validated against scripts.schema.json and
rendered into the gallery site.
You don't need to edit scripts.json yourself — open an issue instead:
- Add a Lua App or Widget to the Gallery
- Update / Correct a Lua App or Widget Entry
- Feedback / Report an Issue
Fill in the form fields — name, category, description, info URL, and (optionally) screenshots. Screenshot URLs can be external links (raw GitHub, Imgur, etc.) or you can drag-and-drop / paste image files directly into the form and GitHub will host them for you.
- A maintainer reviews the issue and applies the
add-to-gallery(new entry) orupdate-in-gallery(existing entry) label. - That label triggers
script-submission.yml, which parses the issue, updatesscripts.json, validates it, and opens a draft PR back to the issue. - If the submission included external image URLs, a maintainer applies the
localize-imageslabel to the draft PR. This triggerslocalize-images.yml, which downloads those images intoASSETS/<slug>/, rewritesscripts.jsonto point at the local copies, and pushes the result back to the PR branch as a commit. - Once the diff looks correct, a maintainer removes draft status and merges.
- Merging to
mainregenerates the gallery site viagh-pages.yml.
validate-scripts-json.ymlvalidatesscripts.jsonagainstscripts.schema.jsonon every push/PR that touches it.validate-issue-templates.ymlkeeps the tag/category dropdowns in the issue templates in sync withscripts.schema.json, and self-heals same-repo branches automatically when they drift.
An AI collaboration guide is maintained at .ai/instructions.md. It is symlinked from
CLAUDE.md, AGENTS.md, GEMINI.md, .cursorrules, .windsurfrules, and .github/copilot-instructions.md
so all common AI/LLM tools pick it up automatically. Update it when repo-specific workflows change or when you
find yourself correcting an AI agent on the same point twice.
The scripts under tools/ are plain Python, run via uv — no project
setup required beyond having uv installed:
uv run tools/validate_scripts.py --scripts-json scripts.json
uv run tools/download_external_images.py --dry-run # preview image localization
uv run tools/sync_issue_template_options.py --check # check tag/category drift