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

anylist-cli

v0.1.0

Published

Unofficial CLI for AnyList grocery and shopping lists

Downloads

122

Readme

anylist-cli

⚠️ Unofficial CLI for AnyList
Not affiliated with or endorsed by AnyList.

A command-line interface for managing your AnyList grocery and shopping lists.

Installation

npm install -g anylist-cli

Or run directly with npx:

npx anylist-cli --help

Quick Start

# Authenticate (interactive)
anylist auth

# View your lists
anylist lists

# View items on a list
anylist items "Grocery"

# Add an item
anylist add "Grocery" "Milk" --category dairy

# Check off an item
anylist check "Grocery" "Milk"

Commands

Authentication

# Interactive login (credentials stored securely)
anylist auth

# Clear stored credentials
anylist logout

# Show current user
anylist whoami

Lists

# Show all lists
anylist lists
anylist lists --json

Items

# Show items in a list
anylist items "Grocery"
anylist items "Grocery" --json
anylist items "Grocery" --unchecked   # Only unchecked items

# Add item to a list
anylist add "Grocery" "Milk"
anylist add "Grocery" "Milk" --quantity "2"
anylist add "Grocery" "Chicken" --category meat

# Check/uncheck items
anylist check "Grocery" "Milk"
anylist uncheck "Grocery" "Milk"

# Remove item
anylist remove "Grocery" "Milk"

# Clear all checked items
anylist clear "Grocery"

Categories

# List available categories
anylist categories

Available categories: produce, meat, seafood, dairy, bakery, bread, frozen, canned, condiments, beverages, snacks, pasta, rice, cereal, breakfast, baking, spices, seasonings, household, personal care, other

Options

Global flags available on all commands:

| Flag | Description | |------|-------------| | -h, --help | Show help | | -V, --version | Show version number | | --no-color | Disable colored output | | --json | Output as JSON (where applicable) |

Environment Variables

| Variable | Description | |----------|-------------| | ANYLIST_EMAIL | Email for authentication (for CI/automation) | | ANYLIST_PASSWORD | Password for authentication (for CI/automation) | | NO_COLOR | Disable colored output (any value) |

For non-interactive use (CI/CD pipelines, scripts), set both ANYLIST_EMAIL and ANYLIST_PASSWORD environment variables instead of using anylist auth.

Exit Codes

| Code | Meaning | |------|---------| | 0 | Success | | 1 | Generic failure | | 2 | Invalid usage (bad arguments) | | 3 | Authentication failure |

Examples

Scripting with JSON output

# Get items as JSON for processing
anylist items "Grocery" --json | jq '.items[] | select(.checked == false) | .name'

# Check if authenticated
if anylist whoami --json | jq -e '.authenticated' > /dev/null; then
  echo "Logged in"
fi

Adding multiple items

# Add ingredients from a recipe
anylist add "Grocery" "Ground beef" --category meat
anylist add "Grocery" "Onions" --category produce
anylist add "Grocery" "Tomatoes" --category produce
anylist add "Grocery" "Pasta" --category pasta

Non-Interactive Usage

For scripts and automation, set credentials via environment variables instead of using interactive anylist auth:

# Commands will use these automatically
ANYLIST_EMAIL="..." ANYLIST_PASSWORD="..." anylist lists --json

In CI/CD pipelines, store credentials as secrets and inject them as environment variables.

Development

# Clone the repository
git clone https://github.com/mjrussell/anylist-cli
cd anylist-cli

# Install dependencies
npm install

# Build
npm run build

# Run locally
node dist/cli.js --help

How It Works

This CLI wraps the unofficial anylist npm package, which reverse-engineers AnyList's private API. As such:

  • This is not an official tool and may break if AnyList changes their API
  • Use at your own risk
  • Do not use for mission-critical applications

Contributing

Contributions welcome! Please open an issue or pull request on GitHub.

License

MIT © Matt Russell

Disclaimer

This is an unofficial tool created by the community. AnyList is a trademark of Purple Cover, Inc. This project is not affiliated with, endorsed by, or connected to AnyList or Purple Cover, Inc. in any way.