npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@runsidekick/sidekick-agent-nodejs

v0.0.19

Published

Sidekick node.js agent

Readme

What is Sidekick?

Sidekick is a live application debugger that lets you troubleshoot your applications while they keep on running.

Add dynamic logs and put non-breaking breakpoints in your running application without the need of stopping & redeploying.

Sidekick Open Source is here to allow self-hosting and make live debugging more accessible. Built for everyone who needs extra information from their running applications.

Sidekick Actions:

Sidekick has two major actions; Tracepoints & Logpoints.

  • A tracepoint is a non-breaking remote breakpoint. In short, it takes a snapshot of the variables when the code hits that line.
  • Logpoints open the way for dynamic(on-demand) logging to Sidekick users. Replacing traditional logging with dynamic logging has the potential to lower stage sizes, costs, and time for log searching while adding the ability to add new logpoints without editing the source code, redeploying, or restarting the application.

Supported runtimes: Java, Python, Node.js

To learn more about Sidekick features and capabilities, see our web page.

Sidekick Node.js Agent

Sidekick Node.js agent allows you to inject tracepoints (non-breaking breakpoints) and logpoints dynamically to capture call stack snapshots (with variables) and add log messages on the fly without code modification, re-build and re-deploy. So it helps you, your team, and your organization to reduce MTTR (Minimum Time to Repair/Resolve).

To achieve this, Sidekick Node.js agent makes use of V8's inspector API.

The advantages of Sidekick over classical APM solutions is that, Sidekick

  • can debug and trace any location (your code base or 3rd party dependency) in your application, not just the external (DB, API, etc ...) calls like APM solutions
  • has zero overhead when you don't have any tracepoint or logpoint but APMs have always
  • doesn't produce too much garbage data because it collects data only at the certain points you specified as long as that point (tracepoint/logpoint) is active

Usage

npm install @runsidekick/sidekick-agent-nodejs

Docs

There are two way to integrate Sidekick agent to your application.

Integrate Agent with Environment Variable

You can easily integrate Sidekick using below environment variables.

  • set SIDEKICK_APIKEY environment variable with your Sidekick api key.
  • set NODE_OPTIONS environment variable with '-r @runsidekick/sidekick-agent-nodejs/dist/bootstrap'

Integrate Agent with Code

You can easily integrate Sidekick adding below code block to top of your project.

JS example

const SidekickDebugger = require('@runsidekick/sidekick-agent-nodejs');

SidekickDebugger.start({ 
    apiKey: '<Your_Api_Key>'
});

...

TS example

import * as SidekickDebugger from '@runsidekick/sidekick-agent-nodejs';

SidekickDebugger.start({ 
    apiKey: '<Your_Api_Key>'
});

...

Configs

| Config | Requirement | Environment Variable | Default | --- | --- | --- | --- | apiKey | Required | SIDEKICK_APIKEY | None | logLevel | Optional | SIDEKICK_AGENT_LOG_LEVEL | info | disable | Optional | SIDEKICK_AGENT_DISABLE | false | brokerHost | Optional | SIDEKICK_AGENT_BROKER_HOST | Sidekick broker address | brokerPort | Optional | SIDEKICK_AGENT_BROKER_PORT | Sidekick broker port | brokerClient | Optional | SIDEKICK_AGENT_BROKER_CLIENT | Logged in user | applicationId | Optional | SIDEKICK_AGENT_APPLICATION_ID | Generated by agent | applicationName | Optional | SIDEKICK_AGENT_APPLICATION_NAME | Empty string | applicationInstanceId | Optional | SIDEKICK_AGENT_APPLICATION_INSTANCE_ID | Generated by agent | applicationVersion | Optional | SIDEKICK_AGENT_APPLICATION_VERSION | Empty string | applicationStage | Optional | SIDEKICK_AGENT_APPLICATION_STAGE | Empty string | applicationTag | Optional | SIDEKICK_AGENT_APPLICATION_TAG | None | maxFrames | Optional | SIDEKICK_AGENT_MAX_FRAMES | 20 | maxExpandFrames | Optional | SIDEKICK_AGENT_MAX_EXPAND_FRAMES | 1 | maxProperties | Optional | SIDEKICK_AGENT_MAX_PROPERTIES | 10 | maxParseDepth | Optional | SIDEKICK_AGENT_MAX_PARSE_DEPTH | 3 | propertyAccessClassification | Optional | SIDEKICK_AGENT_PROPERTY_ACCESS_CLASSIFICATION | ENUMERABLE-OWN | scriptPrefix | Optional | SIDEKICK_AGENT_SCRIPT_PREFIX | None | rejectOnStartup | Optional | SIDEKICK_AGENT_REJECT_ON_STARTUP | false | captureFrameDataReductionCallback | Optional | | None | logMessageDataReductionCallback | Optional | | None | errorCollectionEnable | Optional | SIDEKICK_AGENT_ERROR_COLLECTION_ENABLE | false | errorCollectionEnableCaptureFrame | Optional | SIDEKICK_AGENT_ERROR_COLLECTION_CAPTURE_FRAME | false

Valid Config Values

  • propertyAccessClassification (SIDEKICK_AGENT_PROPERTY_ACCESS_CLASSIFICATION) configuration can take one of following values:
    • ENUMERABLE-OWN (default value)
    • ENUMERABLE-OWN-AND-ENUMERABLE-PARENT
    • ENUMERABLE-OWN-AND-NON-ENUMERABLE-OWN
    • ENUMERABLE-OWN-AND-NON-ENUMERABLE-OWN-ENUMERABLE-PARENT

Build

  • npm run clean-build:all

Official Sidekick Agents

Resources:

Questions? Problems? Suggestions?

To report a bug or request a feature, create a GitHub Issue. Please ensure someone else has not created an issue for the same topic.

Contact

Reach out on the Discord. A fellow community member or Sidekick engineer will be happy to help you out.