LCR Tools is an open-source Google Chrome extension designed to enhance the functionality and user experience of LCR (Leader and Clerk Resources) for The Church of Jesus Christ of Latter-day Saints. It provides advanced tools for exporting data, processing attendance, managing member information, and more—streamlining common administrative tasks for clerks, secretaries, and leaders.
This extension aims to streamline common tasks and add helpful utilities for leaders and clerks. Current features include:
Go to the LCR Tools page on the Chrome Web Store.
Click “Add to Chrome”.
After clicking, you may see one or two pop-up messages:
host_permissions in the manifest.json file and ensures the extension only runs on the LCR website.Download the Source Code:
git clone https://github.com/sethbr11/lcr-tools.gitOpen Chrome Extensions Page:
chrome://extensions.Enable Developer Mode:
Load Unpacked Extension:
manifest.json).The LCR Tools extension icon should now appear in your Chrome toolbar (you might need to click the puzzle piece icon to pin it).
Navigate to any page on lcr.churchofjesuschrist.org or directory.churchofjesuschrist.org.
Click the LCR Tools extension icon in your Chrome toolbar.
A popup menu will appear, showing actions available for the specific LCR page you are currently viewing.
Click an action to execute it or to open a dedicated options/UI page for more complex tasks (like attendance input).
For long-running processes (like attendance input or some report exports), a loading indicator will be displayed. You can typically abort these processes by pressing the Escape key.
lcr-extension/
├── babel.config.js
├── build.js
├── css/
│ ├── ...
│ └── vendor/
│ └── leaflet.css
├── html/
│ ├── directory.html
│ ├── popup.html
│ └── trip_planning.html
├── images/
├── jest.config.js
├── js/
│ ├── actions/
│ │ ├── downloadReportData/
│ │ ├── editMemberProfile/
│ │ ├── findMultipleCallings/
│ │ ├── memberFlashcards/
│ │ ├── membersOutsideBoundary/
│ │ ├── noPhotoList/
│ │ ├── processAttendance/
│ │ ├── tableFilters/
│ │ └── tripPlanning/
│ ├── actions.js
│ ├── directory.js
│ ├── popup.js
│ ├── utils/
│ │ ├── dataUtils.js
│ │ ├── fileUtils.js
│ │ ├── loggingUtils.js
│ │ ├── modalUtils.js
│ │ ├── navigationUtils.js
│ │ ├── tableUtils.js
│ │ ├── uiUtils.js
│ │ └── utils.js
│ └── vendor/
│ ├── html2canvas.min.js
│ ├── jspdf.umd.min.js
│ ├── jszip.min.js
│ ├── leaflet.js
│ ├── papaparse.min.js
│ └── turf.min.js
├── LICENSE
├── manifest.json
├── package.json
├── PRIVACY_POLICY.md
├── README.md
└── tests/
├── actions/
│ ├── membersOutsideBoundary/
│ ├── processAttendance/
│ └── tripPlanning/
├── README.md
├── setup.js
├── TESTING_GUIDE.md
├── ui/
└── utils/
A brief overview of the project’s organization:
manifest.json: The core configuration file for the extension.build.js: Node.js script to quickly build the packaged extension for upload to the Chrome Web Store.html/: All defined standalone HTML files for the extension.html/popup.html / js/popup.js: Defines the UI and logic for the extension’s main popup menu.js/actions.js: Central registry that determines which actions appear for the current page (getActionsForUrl).css/: Stylesheets for the popup and any injected UI.images/: Icons for the extension.tests/: JavaScript tests run with Jest.js/actions/: Content scripts grouped by LCR page or task (e.g., attendance, photos, flashcards).js/utils/: Shared utilities for CSV operations, UI creation, logging, navigation, and data handling.js/vendor/: Third-party libraries (e.g., jszip for ZIP creation).js/actions/.js/actions.js inside getActionsForUrl() for the appropriate LCR page, including any required utility and vendor files.js/utils/ for common operations like CSV handling, UI creation, file operations, and date manipulation."scripting": For script injection."storage": For use of local storage (so far, only implemented in the trip planning action)."host_permissions": Restricted to https://lcr.churchofjesuschrist.org/*, https://lcrf.churchofjesuschrist.org/*, https://lcrffe.churchofjesuschrist.org/*, and https://directory.churchofjesuschrist.org/*.This extension is brand new and, admittably, was vibe coded since the author didn’t want to spend weeks trying to get an MVP with the basic functionality that he needed yesterday. Please reach out to the author with any concerns and we will work to get it resolved. If you are an experienced developer, feel free to suggest any feature improvements! AI models like ChatGPT (4o-mini, 4.1, 5, etc.), Gemini (2.5 Flash and Pro, 3 Pro), and Claude (3.7 and 4) were used extensively, along with tools like GitHub Copilot, Cursor, Claude Code, Gemini CLI, and Google’s Antigravity.
LCR Tools is an independent project and is not an official tool of or endorsed by The Church of Jesus Christ of Latter-day Saints. It is provided “as-is” without any warranty. Use at your own risk. Always ensure you are complying with Church policies and data privacy guidelines when using this tool.