Laravel Telescope, redesigned for NestJS

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

telescope · /entrieslive

Recent entries

correlated · batch a3f9
requestGET /api/orders20042ms
querySELECT * FROM orders WHERE user_id = ?3ms
exceptionQueryFailedError: deadlock detected500118ms
jobqueue:emails · OrderConfirmationdone210ms
cacheGET user:42:profilehit0.4ms

Telescope health

Capture cost

8.7 µs

Added latency

0 ms

Buffer

12 / 512

Dropped

0

Throughput1.2k / min

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.

Wire it in

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.

Full setup guide
app.module.ts
@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.