An agent skill for managing Luma events — discover local events, view your calendar, check guest lists, RSVP, and create events.
Clone the repo into wherever your agent loads skills from — the layout is a
plain SKILL.md plus this README, so any agent runtime that reads Markdown
skills can use it as-is:
git clone https://github.com/echennells/luma-skill.git <your-skills-dir>/lumaFor Claude Code, that directory is
~/.claude/skills:
git clone https://github.com/echennells/luma-skill.git ~/.claude/skills/lumaThe skill calls the Luma API using your session cookie. Set it as an env var:
export LUMA_AUTH_SESSION_KEY="usr-..."Luma does not issue public API keys — authentication is cookie-based, so you extract your own session cookie from the browser:
- Open luma.com in your browser and log in.
- Open DevTools (Cmd+Opt+I on Mac, F12 on Windows/Linux).
- Go to Application (Chrome/Edge) or Storage (Firefox) → Cookies →
https://luma.com. - Find the cookie named
luma.auth-session-keyand copy its Value (starts withusr-). - Export it as
LUMA_AUTH_SESSION_KEYin your shell.
The cookie is tied to your Luma account — treat it like a password. It expires when your browser session does, so you may need to refresh it periodically.
Once installed, the agent invokes the skill automatically when you ask about Luma events. Examples:
- "What events are happening in Vancouver this weekend?"
- "Show my upcoming events"
- "Who's RSVP'd to [event]?"
- "Create a Luma event for Friday at 6pm"
SKILL.md documents the Luma API endpoints the skill uses: discover, search, RSVP, guest lists, user profile events, URL resolution, and the single-call event creation payload (including the ProseMirror format for rich descriptions).
Luma moved its API from api.lu.ma to api.luma.com (and the site from lu.ma to luma.com). This skill targets the new host.
The catch for anyone running an older copy: the retired host still answers read endpoints, so a stale integration keeps working for search, guest lists and calendar reads — but POST api.lu.ma/event/create returns 400 {"message":"Invalid request.","code":null} for every payload, including an empty body. The error carries no field-level detail, so it reads like a payload bug when it is really a dead host. Your existing session cookie is unaffected and works on both hosts.
Event creation also changed shape: end_at is gone in favour of duration_interval (ISO-8601, e.g. "PT1H"), and the create call now accepts the full event definition in one request instead of requiring a follow-up /event/admin/update.
curl- A valid
LUMA_AUTH_SESSION_KEY