owlservable
v0.2.11
Published
Minimalist Observability Platform. Zero config, zero dependencies.
Readme
owlservable
One line. See every API call your app makes.
import 'owlservable/auto'Open http://localhost:4321 and watch requests arrive in real time.
No config. No dependencies. No build step. ~400 lines of vanilla Node.js.
Install
npm install owlservableUsage
Drop one import at the top of your entry file:
import 'owlservable/auto'
// ... rest of your appEvery fetch(), http.request(), and https.request() your app makes will appear in the dashboard instantly.
CJS projects (TypeScript compiled to CommonJS, Firebase Functions, etc.) — the same import works, Node resolves the right wrapper automatically:
import 'owlservable/auto' // or require('owlservable/auto')Manual init
import { init } from 'owlservable'
init({
port: 4321, // default: 4321
dashboard: true, // default: true
logging: false, // log to console, default: false
})Dashboard
- Live request log — method, status, latency, URL
- AI token counts — including streaming
- Optional 1h / 24h / 7d logs + clear logs
How it works
On import, owlservable monkey-patches globalThis.fetch, node:http, and node:https. Every outbound call passes through a thin wrapper that records timing and metadata, then forwards unchanged. A plain http.createServer serves one HTML file. Real-time updates arrive via Server-Sent Events
Requirements
- Node.js 18+
- Zero runtime dependencies
Security
Development only. owlservable exits immediately when NODE_ENV=production. Keep it in devDependencies and never bundle it into a production build.
- Dashboard binds to
127.0.0.1only — not accessible over a network - No authentication on the dashboard port
- Request bodies up to 32 KB are captured in memory — avoid secrets in request bodies
Authorizationheaders are not captured- API keys passed as query params will appear in the URL log
- When persistence is enabled,
.owlservable/log.ndjsoncontains full request data — treat it as sensitive
License
MIT
