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

obsdev

v1.1.7

Published

Automate use of OBS recordings via command line to help document development workflows with audio/video

Readme

obsdev

oclif Version Downloads/week

Automate use of OBS recordings to help document development workflows with audio/video

Use obsdev record $recordingName within a git repo to start recording and then stop the recording via OBS or obsdev stop-record.

What is obsdev?

obsdev is a command line utility that helps developers use OBS to record videos as they work and easily organize where the recordings are stored based on the current git branch.

It also takes advantage of oclif plugins to allow developers to add plugins to further process saved recordings. Check out obsdev-jira-plugin which uploads saved recordings to JIRA tickets automatically.

Videos are a crucial communication mechanism for teams, especially remote teams in agile development. They can cut down on meetings, enable clearer async communication, and serve as work documentation (when you are asked by your colleagues if X feature really worked when you tested and merged it, you can back it up with video proof rather than memory).

In a manual flow, you have to:

  • go to OBS
  • start recording
  • stop recording
  • go manually find recording in filesystem
  • recording is generated with hard to read filename (its date recording was made), and its thrown into root OBS recording output directory (~/Users/me/Movies)
  • optionally choose to rename and move recording or keep in one big directory
  • manually upload recording to another platform (JIRA, OneDrive, GitLab)

In obsdev flow, you have to:

  • be in git repo checked out on a branch
  • run obsdev record $recordingName
  • stop recording (use ctrl+c, OBS directly, or obsdev stop-record)
  • filesystem window (Finder) automatically opens to file for easy replay
  • recording is generated with provided $recordingName in a directory named after your branch within the root OBS recording output path that is configured
    • Ex path: ~/Users/me/Movies/BRANCH-1234/demo.mp4
  • Utilize plugins to programmatically upload videos to another platform

Requirements

  • OBS installed with websocket server enabled (Tools > Websocket Server Settings)
  • Verify OBS source is setup and not frozen before recording
    • For MacOS, recommend https://github.com/crinkytreadmill/obs-mac-capture-restarter
  • OBS Recording output set to .mp4

Environment Variables

  • OBS_WS_IP : optional. defaults to 127.0.0.1
  • OBS_WS_PORT: optional. defaults to 4455

Limitations

  • Not tested yet on Windows
  • If tool errors after setting output path for recording, it will require manual fixing back to root path you want to use. Need to find a programmatic fix for this

Usage

$ npm install -g obsdev
$ obsdev COMMAND
running command...
$ obsdev (--version)
obsdev/1.1.7 linux-x64 node-v24.8.0
$ obsdev --help [COMMAND]
USAGE
  $ obsdev COMMAND
...

Commands

obsdev help [COMMAND]

Display help for obsdev.

USAGE
  $ obsdev help [COMMAND...] [-n]

ARGUMENTS
  COMMAND...  Command to show help for.

FLAGS
  -n, --nested-commands  Include all nested commands in the output.

DESCRIPTION
  Display help for obsdev.

See code: @oclif/plugin-help

obsdev plugins

List installed plugins.

USAGE
  $ obsdev plugins [--json] [--core]

FLAGS
  --core  Show core plugins.

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  List installed plugins.

EXAMPLES
  $ obsdev plugins

See code: @oclif/plugin-plugins

obsdev plugins add PLUGIN

Installs a plugin into obsdev.

USAGE
  $ obsdev plugins add PLUGIN... [--json] [-f] [-h] [-s | -v]

ARGUMENTS
  PLUGIN...  Plugin to install.

FLAGS
  -f, --force    Force npm to fetch remote resources even if a local copy exists on disk.
  -h, --help     Show CLI help.
  -s, --silent   Silences npm output.
  -v, --verbose  Show verbose npm output.

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  Installs a plugin into obsdev.

  Uses npm to install plugins.

  Installation of a user-installed plugin will override a core plugin.

  Use the OBSDEV_NPM_LOG_LEVEL environment variable to set the npm loglevel.
  Use the OBSDEV_NPM_REGISTRY environment variable to set the npm registry.

ALIASES
  $ obsdev plugins add

EXAMPLES
  Install a plugin from npm registry.

    $ obsdev plugins add myplugin

  Install a plugin from a github url.

    $ obsdev plugins add https://github.com/someuser/someplugin

  Install a plugin from a github slug.

    $ obsdev plugins add someuser/someplugin

obsdev plugins:inspect PLUGIN...

Displays installation properties of a plugin.

USAGE
  $ obsdev plugins inspect PLUGIN...

ARGUMENTS
  PLUGIN...  [default: .] Plugin to inspect.

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  Displays installation properties of a plugin.

EXAMPLES
  $ obsdev plugins inspect myplugin

See code: @oclif/plugin-plugins

obsdev plugins install PLUGIN

Installs a plugin into obsdev.

USAGE
  $ obsdev plugins install PLUGIN... [--json] [-f] [-h] [-s | -v]

ARGUMENTS
  PLUGIN...  Plugin to install.

FLAGS
  -f, --force    Force npm to fetch remote resources even if a local copy exists on disk.
  -h, --help     Show CLI help.
  -s, --silent   Silences npm output.
  -v, --verbose  Show verbose npm output.

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  Installs a plugin into obsdev.

  Uses npm to install plugins.

  Installation of a user-installed plugin will override a core plugin.

  Use the OBSDEV_NPM_LOG_LEVEL environment variable to set the npm loglevel.
  Use the OBSDEV_NPM_REGISTRY environment variable to set the npm registry.

ALIASES
  $ obsdev plugins add

EXAMPLES
  Install a plugin from npm registry.

    $ obsdev plugins install myplugin

  Install a plugin from a github url.

    $ obsdev plugins install https://github.com/someuser/someplugin

  Install a plugin from a github slug.

    $ obsdev plugins install someuser/someplugin

See code: @oclif/plugin-plugins

obsdev plugins link PATH

Links a plugin into the CLI for development.

USAGE
  $ obsdev plugins link PATH [-h] [--install] [-v]

ARGUMENTS
  PATH  [default: .] path to plugin

FLAGS
  -h, --help          Show CLI help.
  -v, --verbose
      --[no-]install  Install dependencies after linking the plugin.

DESCRIPTION
  Links a plugin into the CLI for development.

  Installation of a linked plugin will override a user-installed or core plugin.

  e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
  command will override the user-installed or core plugin implementation. This is useful for development work.


EXAMPLES
  $ obsdev plugins link myplugin

See code: @oclif/plugin-plugins

obsdev plugins remove [PLUGIN]

Removes a plugin from the CLI.

USAGE
  $ obsdev plugins remove [PLUGIN...] [-h] [-v]

ARGUMENTS
  PLUGIN...  plugin to uninstall

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Removes a plugin from the CLI.

ALIASES
  $ obsdev plugins unlink
  $ obsdev plugins remove

EXAMPLES
  $ obsdev plugins remove myplugin

obsdev plugins reset

Remove all user-installed and linked plugins.

USAGE
  $ obsdev plugins reset [--hard] [--reinstall]

FLAGS
  --hard       Delete node_modules and package manager related files in addition to uninstalling plugins.
  --reinstall  Reinstall all plugins after uninstalling.

See code: @oclif/plugin-plugins

obsdev plugins uninstall [PLUGIN]

Removes a plugin from the CLI.

USAGE
  $ obsdev plugins uninstall [PLUGIN...] [-h] [-v]

ARGUMENTS
  PLUGIN...  plugin to uninstall

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Removes a plugin from the CLI.

ALIASES
  $ obsdev plugins unlink
  $ obsdev plugins remove

EXAMPLES
  $ obsdev plugins uninstall myplugin

See code: @oclif/plugin-plugins

obsdev plugins unlink [PLUGIN]

Removes a plugin from the CLI.

USAGE
  $ obsdev plugins unlink [PLUGIN...] [-h] [-v]

ARGUMENTS
  PLUGIN...  plugin to uninstall

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Removes a plugin from the CLI.

ALIASES
  $ obsdev plugins unlink
  $ obsdev plugins remove

EXAMPLES
  $ obsdev plugins unlink myplugin

obsdev plugins update

Update installed plugins.

USAGE
  $ obsdev plugins update [-h] [-v]

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Update installed plugins.

See code: @oclif/plugin-plugins

obsdev record [FILENAME]

Start an OBS recording

USAGE
  $ obsdev record [FILENAME] [-d]

ARGUMENTS
  FILENAME  filename for saved recording with no extension

FLAGS
  -d, --dryRun  Print what would happen but take no action

DESCRIPTION
  Start an OBS recording

EXAMPLES
  $ obsdev record -d demo-1

See code: src/commands/record.ts

obsdev stop-record

Stop an OBS recording

USAGE
  $ obsdev stop-record

DESCRIPTION
  Stop an OBS recording

EXAMPLES
  $ obsdev stop-record

See code: src/commands/stop-record.ts

obsdev version

USAGE
  $ obsdev version [--json] [--verbose]

FLAGS
  --verbose  Show additional information about the CLI.

GLOBAL FLAGS
  --json  Format output as json.

FLAG DESCRIPTIONS
  --verbose  Show additional information about the CLI.

    Additionally shows the architecture, node version, operating system, and versions of plugins that the CLI is using.

See code: @oclif/plugin-version

Hooks

The following are hooks that obsdev emits for plugins to tap into

  • videoSaved
    • dryRun : boolean
    • path : string - this is the path the video was saved to