church-account
Automate tasks on churchofjesuschrist.org and LCR (Leader & Clerk Resources). Use when logging into LDS church accounts, looking up ward/stake rosters, managing callings, viewing temple recommend status, accessing the member directory, or any other LCR/church website automation. Covers OAuth login flow, session management, and key church service URLs.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/nathan-deepmm/church-accountChurch Account (LDS/LCR)
Automate login and tasks on churchofjesuschrist.org.
Login
OAuth Flow
The church uses OAuth via id.churchofjesuschrist.org. Any protected page redirects to login:
- Enter username → click Next
- Enter password → click Verify
- Redirects back to target page with session cookies
No MFA or CAPTCHA is typically required. Playwright + playwright-stealth handles it cleanly.
Credentials
Store in a password vault or environment variables:
- Username (church account email or membership ID)
- Password
Login with Playwright
import asyncio
from playwright.async_api import async_playwright
from playwright_stealth import Stealth
async def login(target_url="https://lcr.churchofjesuschrist.org", cookies_path="/tmp/church_cookies.json"):
async with async_playwright() as p:
browser = await p.chromium.launch(
headless=True,
args=["--no-sandbox", "--disable-blink-features=AutomationControlled", "--disable-dev-shm-usage"]
)
context = await browser.new_context(
viewport={"width": 1920, "height": 1080},
user_agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 ..."
)
page = await context.new_page()
await Stealth().apply_stealth_async(page)
await page.goto(target_url)
# Enter username
await page.fill('input[name="identifier"]', USERNAME)
await page.click('button[type="submit"]')
# Enter password
await page.wait_for_selector('input[type="password"]')
await page.fill('input[type="password"]', PASSWORD)
await page.click('button[type="submit"]')
# Wait for redirect
await page.wait_for_url(f"{target_url}/**", timeout=30000)
# Save session
await context.storage_state(path=cookies_path.replace('.json', '_state.json'))
await browser.close()
Reusing a Session
After login, use saved storage state to skip re-authentication:
context = await browser.new_context(
storage_state="/tmp/church_cookies_state.json",
viewport={"width": 1920, "height": 1080},
user_agent="Mozilla/5.0 ..."
)
page = await context.new_page()
await Stealth().apply_stealth_async(page)
Key URLs
| Service | URL |
|---|---|
| LCR (Leader & Clerk Resources) | https://lcr.churchofjesuschrist.org |
| Ward Directory | https://directory.churchofjesuschrist.org |
| Calendar | https://www.churchofjesuschrist.org/calendar |
| Donations | https://donations.churchofjesuschrist.org |
| Temple Reservations | https://tos.churchofjesuschrist.org |
| My Home | https://www.churchofjesuschrist.org/my-home |
| Account Settings | https://id.churchofjesuschrist.org/account |
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-nathan-deepmm-church-account": {
"enabled": true,
"auto_update": true
}
}
}