Luma Cli Lightweight avatar

Luma Cli Lightweight

Under maintenance

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Luma Cli Lightweight

Luma Cli Lightweight

Under maintenance

Lightweight playwright based on Luma Scrapper. Optimized for agents and project modularity on Local and VPS environments.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

New Fish

New Fish

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

luma-cli

A lightweight CLI tool for scraping event data and guest profiles from lu.ma.

Setup

Requires Node.js >= 18.3 and a cloned copy of this repo.

git clone git@github.com:profishional/luma-cli.git
cd luma-cli
npm install
npx playwright install chromium
npm link

npm link makes the luma command available globally. Do not move the directory after linking — the global command symlinks to this location.

Authentication

Some commands require a saved login session. Run this once per machine:

$luma auth

A browser window opens. Log in to lu.ma, then close the window. Your session is saved to auth.json (gitignored, never committed).

Re-run luma auth if you see Auth session expired.

Commands

luma event <url> # Scrape event info (no auth required)
luma guests <url> # Scrape guest list
luma scrape <url> # Scrape event info + guests in one session
luma profile <url> # Scrape user profile (stats + socials)
luma hosted-events <profile-url> # Scrape hosted events from a profile
luma past-events [--status going|all] # Scrape your past attended events (default: going)
luma guests-hosted <url> # Download CSV from event and unify (SOON)

All commands output JSON to stdout. Progress is printed to stderr.

Examples

luma event https://lu.ma/[slug]
luma guests https://lu.ma/[slug]
luma scrape https://lu.ma/[slug]
luma profile https://luma.com/user/[name]
luma hosted-events https://luma.com/user/[name]
luma past-events
luma past-events --status all

Pipe to jq for filtering:

luma guests https://lu.ma/bf01c9oe | jq '.guests[].name'
luma scrape https://lu.ma/bf01c9oe | jq '.event.title'
luma past-events | jq '.events[] | select(.attendees > 100)'

Output Shapes

// luma event <url>
{ title, location, datetime, description }
// datetime: "2026-03-21T10:00"
// luma guests <url>
{
stats: { count, with_socials, url, fetchedAt },
guests: [{
name, url,
socials: { instagram, twitter, tiktok, linkedin, website }
}]
}
// luma scrape <url>
{
event: { title, location, datetime, description },
stats: { count, with_socials, url, fetchedAt },
guests: [{ name, url, socials: { ... } }]
}
// luma profile <url>
{
name,
stats: { hosted, attended, together },
socials: { instagram, twitter, tiktok, linkedin, website }
}
// luma hosted-events <profile-url>
{
stats: { count, scrolls, url, fetchedAt },
events: [{ title, url, datetime, location }]
}
// luma past-events [--status going|all]
{
stats: { count, scrolls, statusFilter, url, fetchedAt },
events: [{ title, url, datetime, location, attendees, status }]
}
// datetime: "2026-03-21-10-00", attendees: estimated from visible heads + remaining count

On a New Machine

git clone git@github.com:profishional/luma-cli.git
cd luma-cli
npm install
npx playwright install chromium
npm link
luma auth

Notes

  • auth.json stores your login session — treat it like a password, never commit it
  • Selectors are hardcoded to lu.ma's current DOM structure and may break if they redesign the site
  • A 1.5s delay is added before each request to avoid hammering their servers
  • Large events (1000+ guests) and long event histories use infinite scroll — expect a few minutes for these