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 🙏

© 2025 – Pkg Stats / Ryan Hefner

directv-cli

v0.0.1

Published

Command line remote control for DirecTV STBs

Readme

directv-cli

This tool makes use of the HTTP API, exposed by most DirecTV STBs (Set Top Boxes), to implement a working remote control on the command line.

Allowing you to simply do things like change the channel:

directv --tune 297

Or see what's playing on channel 500:

directv --guide 500

Setup

Install from npm:

sudo npm install -g directv-cli

If you don't have npm, install Node.js.

For full functionality make sure you enable external device access on your STB.

Menu > Settings > Whole-Home > External Device > Allow

Usage

IP Address

You'll need to specify the IP address of your STB, like:

directv --ip 192.168.1.104 --watching

the --watching parameter will list program information for whatever is currently being watched

Whole-Home DVR

If you have Whole-Home DVR service, you can access the extraneous boxes as well. Use the --locations switch to list the client addresses of each STB in your home, like:

$ directv --ip 192.168.1.104 --locations
Found 3 Set Top Boxes:
MB: 88F7C7DA0269
B2: 88F7C7DA1460
LR: 0

Then you can see what's being watched on any of those boxes, like:

directv --ip 192.168.1.104 --client 88F7C7DA0269 --watching

Command line arguments

These switches each come with a shorthand version as well. --ip can be shortened to -i and --locations can be shortened to -l.

To see the rest of the available arguments, run the program with a --help or -h parameter:

directv --help

Config file

You can store the variables IP address and Client address in a config file, so that they don't have be typed every time the command's invoked.

To store these, create a plaintext file, .directvrc, in the user's home directory, with JSON contents like:

{
  "ipAddr": "192.168.1.104",
  "clientAddr": "88F7C7DA0269"
}

Then you can issue commands without all the extra switches, like:

directv --system

the --system switch will output detailed system info

If the --ip or --client switches are still used, they will override the config file.

Keys

You're able to send any of the normal remote control keys, such as guide, exit, prev...

The full known list of available keys is:

format, power

rew, pause, play, stop, ffwd, replay, advance, record

guide, active, list, exit, menu, info

up, down, select, left, right

red, green, yellow, blue

back, chanup, chandown, prev

1, 2, 3, 4, 5, 6, 7, 8, 9, dash, 0, enter

These can be sent, like:

directv --key yellow