One line of code. Zero instrumentation. Your entire app—routes, cron jobs, agents, flows, circuit breakers—visible in seconds.
You've Been There
It's 2 PM. A new dev joins your team. "Where does POST /orders go?" You open three files, trace five imports, and 20 minutes later you're still not sure. The OpenAPI spec? Last updated six months ago. The README? "See code."
Or it's 11 PM. Production is acting weird. "Is that cron job even running?" You dig through service files, grep for @Cron, wonder if the expression is right. No way to know without logs—and logs won't tell you what's registered.
Or you're refactoring. "What breaks if I move this module?" You map dependencies in your head. Or in a doc. Or you just... hope.
Sound familiar?
The Moment It Clicks
Imagine this instead:
You add one import to your app. You run it. You open http://localhost:3000/__hazel.
Suddenly you see:
- Every route, method, path, controller—live
- Every cron job, expression, next run time
- Every agent, AI function, RAG pipeline
- Every flow, with a visual diagram
- Every circuit breaker and its state
- Health, memory, uptime—at a glance
No grep. No stale docs. No archaeology. Just the truth.
That's HazelJS Inspector.
Why Devs Love It
Zero Friction
InspectorModule.forRoot({ developmentOnly: true })
That's it. No middleware. No manual registration. No OpenAPI generation. The Inspector discovers everything from your framework metadata and decorators. Add it, run, done.
Framework-Aware, Not Generic
Generic APM tools treat your app like a black box. Inspector speaks HazelJS. It knows:
-
@Controller→ routes -
@Cron→ scheduled jobs -
@Agent,@Tool→ AI agents -
@Flow,@Node→ workflows -
@RAG,@Model→ pipelines and ML
It understands your stack. So you don't have to explain it—to yourself or to others.
One Dashboard, Everything
- Overview — Environment, health, runtime, gateway, discovery, resilience
- Routes — Search, filter, try endpoints
- Modules — Full hierarchy, imports, providers
- Jobs — Cron expressions, next run, enabled status
- Agents, AI, RAG, GraphQL, gRPC, Kafka, Flows — All discoverable, all searchable
No context switching. No tab chaos. One place.
Try It in 60 Seconds
1. Install
npm install @hazeljs/inspector @hazeljs/core
2. Add to your app module
import { HazelModule } from '@hazeljs/core';
import { InspectorModule } from '@hazeljs/inspector';
@HazelModule({
imports: [
InspectorModule.forRoot({ developmentOnly: true }),
// ... your other modules
],
})
export class AppModule {}
3. Run and open
npm run dev
Open http://localhost:3000/__hazel. That's it. You're in.
What You Can Inspect
| Category | What You Get |
|---|---|
| Framework | Routes, modules, providers, decorators |
| Scheduled | Cron jobs with expressions and next run times |
| AI | Agents, AI functions, RAG pipelines, prompts, ML models |
| APIs | GraphQL resolvers, gRPC methods, Kafka consumers |
| Workflows | Flows with visual diagrams, data pipelines |
| Serverless | Lambda-style handlers |
| Events | Event listeners |
| Resilience | Circuit breakers (CLOSED/OPEN/HALF-OPEN) |
All from decorators. All automatic.
Real Scenarios
Onboarding — New dev opens /__hazel. Sees every route and module. Understands the app in minutes, not hours.
Debugging — "Which controller handles POST /orders?" Search. "Is that cron job enabled?" Check Jobs. "Circuit breaker state?" Check Resilience.
Refactoring — Before moving a module, see dependencies and consumers. No guesswork.
Documentation — Export snapshot as JSON. Generate docs. Assert in CI that expected routes exist.
Security First
-
developmentOnly: true(default) — Inspector is off in production -
Sensitive data redaction —
password,secret,tokenare redacted -
Explicit opt-in — Production use requires
developmentOnly: falseandenableInspector: true
Extend It
Register Gateway and Discovery for service mesh overview:
import { InspectorRuntime } from '@hazeljs/inspector';
InspectorRuntime.registerGateway(gateway);
InspectorRuntime.registerDiscovery(discovery);
Or add custom plugins to expose your own metadata. The plugin registry is open.
The Bottom Line
You shouldn't have to grep, guess, or dig through code to understand your own application. HazelJS Inspector gives you that clarity—in one line, in seconds.
Try it. You'll feel the difference.
Get Started
- Example app — hazeljs-inspector-dashboard-example — Run it, explore it, fork it
-
Inspector —
@hazeljs/inspectorin the HazelJS monorepo - HazelJS — hazeljs.ai
If this made your dev life easier, consider giving the repo a ⭐. It helps others discover it—and it means a lot to the folks building it.
Apache-2.0 License

Top comments (0)