plugins/litestar/skills/litestar-events/SKILL.md
Use Litestar's event emitter and listener system with `@listener`, `request.app.emit()`, multiple listeners per event, multi-event listeners, shared argument contracts, and custom event emitter backends. Use when decoupling async side effects, fanout-style in-process notifications, or transport-triggered domain events inside a Litestar app. Do not use for startup/shutdown lifecycle hooks, request/response interception, or broker-backed pub-sub systems that belong in app setup, lifecycle hooks, or channels.
npx skillsauth add alti3/litestar-skills litestar-eventsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Litestar app with listeners=[...].request.app.emit(...) or another app reference.*args and **kwargs set.**kwargs defensively when multiple listeners consume different subsets of the same event payload.on_startup / on_shutdown; those are different Litestar mechanisms.litestar-channels instead when the problem is real pub-sub or cross-process fanout.litestar-app-setup instead when the task is startup/shutdown initialization.Read only the sections you need:
SimpleEventEmitter, custom backend requirements, async context manager behavior, and failure semantics, read references/emitter-backends.md.SimpleEventEmitter unless concrete requirements force a custom backend.litestar-app-setup for startup/shutdown hooks and lifespan ownership.litestar-lifecycle-hooks for request/response interception and instrumentation.litestar-channels for broker-backed or cross-process publish-subscribe flows.litestar-testing for event-emission assertions and listener-failure tests.development
Build Litestar WebSocket endpoints with low-level websocket handlers, websocket listeners, websocket streams, dependency injection, custom websocket classes, transport-mode control, and graceful connection lifecycle handling. Use when implementing bidirectional real-time communication, reactive websocket message handling, or proactive server push over WebSockets. Do not use for server-side pub/sub fanout that is better expressed with channels alone.
tools
Test Litestar applications with TestClient, AsyncTestClient, create_test_client, websocket test helpers, dependency overrides, mocked dependencies, lifecycle-aware fixtures, and deterministic success and failure assertions. Use when adding or fixing Litestar test coverage, including exception contracts, override precedence, websocket behavior, event-bus side effects, or live-server-only response patterns. Do not use as a substitute for production observability or runtime debugging strategy.
development
Configure Litestar templating with `TemplateConfig`, Jinja/Mako/MiniJinja engines, file-or-string `Template` responses, request and CSRF-aware context, template callables, and custom engine integration. Use when implementing or fixing server-rendered HTML in Litestar. Do not use for static asset serving or pure JSON API endpoints.
development
Configure Litestar stores and the store registry for caching, server-side sessions, rate limiting, and other key-value state with explicit backend selection, bytes-safe data handling, TTL and renewal policy, namespacing, registry wiring, and lifecycle cleanup. Use when a Litestar app depends on `MemoryStore`, `FileStore`, `RedisStore`, `ValkeyStore`, or `StoreRegistry`. Do not use for relational persistence, domain repositories, or response-caching policy details that belong in database or caching-focused skills.