@microsoft/events-cli
v0.2.0
Published
CLI for searching Microsoft flagship event sessions (Build, Ignite).
Readme
Microsoft Events CLI preview
msevents is a terminal CLI for searching Microsoft flagship event session catalogs (Build, Ignite, AI Tour).
It fetches public session catalogs, builds a local search index, and returns filtered results — useful for agents, scripts, or quick lookups from the terminal.
Requirements
This project requires Node.js 22 or later.
node --versionInstallation
Option A: Run instantly with npx (no install)
npx @microsoft/events-cli sessions --query "Microsoft Foundry"Option B: Install globally
npm install -g @microsoft/events-cli
msevents sessions --query "Microsoft Foundry"Commands
msevents sessions --query "agent orchestration"
msevents sessions --tech "Microsoft Foundry"
msevents sessions --tech "Azure Cosmos DB" --type lab
msevents sessions --speaker "Scott Hanselman"
msevents sessions --tech "Microsoft Foundry" --speaker "Yina Arenas"
msevents sessions --event build-2025 --query "Foundry"
msevents session BRK155
msevents refresh
msevents refresh --event build-2026
msevents statusAvailable commands:
sessionssearches sessions across all cached events.--query <text>keyword search across all fields (boosts title)--tech <name>search by technology (matches product, tags, topic, languages)--speaker <name>search by speaker name--type <type>filter by session type (breakout, lab, demo, keynote)--event <id>filter to a specific event (e.g.,build-2026,ignite-2025)--limit <n>max results (default: 10)
session <code>looks up a specific session by code. Searches all cached events; disambiguates if the code appears in multiple events.--event <id>scope to a specific event
refreshchecks for session catalog updates and updates the local cache.--event <id>check a specific event only--forcebypass conditional revalidation and re-fetch unconditionally
statusshows what's cached and how fresh it is.
The sessions and session commands output human-readable text by default. Pass --json to get structured JSON, which is useful for piping to agents or other tools:
msevents sessions --query "Foundry" --json | jq '.[].title'
msevents session BRK155 --jsonSupported events
| Event | Event ID | Status |
|-------|----------|--------|
| Build 2026 | build-2026 | Live |
| Ignite 2025 | ignite-2025 | Live |
| Build 2025 | build-2025 | Live |
Use --event <id> to filter to a single event. Without it, commands search across everything cached.
Behavior
- Auto-refresh: search and lookup commands are cache-first. Missing caches are fetched automatically, and existing caches are revalidated only when their next check is due.
- Revalidation: due caches use conditional GET (ETag/Last-Modified). A 304 response avoids downloading the catalog body; network failures fall back to stale cache.
- Network-friendly checks: recent checks are skipped, stable catalogs are checked less often, and failed checks use backoff with jitter to avoid request spikes.
- Disambiguation: if a session code exists in multiple events, the CLI shows options.
- Results: 10 by default,
--limitto override.
Development
To build and test from source:
cd cli
npm install
npm run build
npm test
node dist/index.js --help