See what your NestJS app is actually doing.
Watch every request, query, job, email, cache hit, and exception — correlated under one batch, off the response path, pluggable to the core, and safe in production. Alert new errors to Slack, diagnose them with AI, capture frontend errors, and archive before you prune. Plus a Horizon-style live queue console and a Pulse-style health dashboard. Works on Express and Fastify.
17 packages on npm · zero added response latency · SQLite zero-config
Recent entries
correlated · batch a3f9Telescope health
Capture cost
8.7 µs
Added latency
0 ms
Buffer
12 / 512
Dropped
0
One console for everything in flight
Capture, correlate, alert, diagnose. Every signal your NestJS app emits — backend and browser — on one mental model.
Watchers, correlated
Requests, DB queries, exceptions, jobs, mail, cache and schedules — all stitched under one batch per request via AsyncLocalStorage.
Live queue console
A Horizon-style cockpit for BullMQ and SQS: retry, remove, promote and redrive jobs while they run, with throughput per queue.
Pulse health dashboard
p50 / p99 latency, slowest routes and automatic N+1 detection — know what is hurting before your users do.
Near-zero overhead
Capture runs off the response path at ~8.7µs per query — zero added latency. A built-in /health endpoint proves it in your app.
Pluggable storage
SQLite zero-config out of the box; MikroORM, TypeORM, Prisma and Redis adapters with self-healing schema. Archive entries to S3 before per-type retention prunes them.
Error alerting
A new exception pages you in Slack — formatted Block Kit with route, user and a deep link — or any webhook or custom sink. Rate, slow-route and dropped-entry rules too.
AI diagnosis
One click turns an exception into a triage report — probable cause, where to look, a suggested fix — from the stack, route and the SQL that just ran. Bedrock, OpenAI, or any AI-SDK model.
Frontend errors
Point your browser error handler at a public endpoint and report client_exceptions through the same pipeline — family hashing, alerts, the dashboard. A react-error-boundary in minutes.
Production-ready auth
Signed-cookie dashboard sessions and OTel trace linking. Ship it to prod on Express or Fastify with confidence.
Two modules. That's the install.
Add TelescopeModule to start capturing and TelescopeUiModule to mount the dashboard. SQLite needs no config — it just works on the first boot. Swap the storage adapter whenever you outgrow it.
@Module({ imports: [ TelescopeModule.forRoot({}), // captures everything TelescopeUiModule.forRoot({ path: '/telescope' }), ],})export class AppModule {}Stop guessing what your app is doing.
Install in five minutes, capture everything, and ship the dashboard to production — safely.