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

argus-media-cli

v0.4.5

Published

CLI for Argus — AI-native media asset management. Upload, search, analyze, and manage media assets from the terminal.

Readme

argus-media-cli

CLI for Argus — AI-native media asset management.

Install

npm install -g argus-media-cli

Or run directly:

npx argus-media-cli upload photo.jpg

Setup

argus-media-cli login

Or set your API key as an environment variable:

export ARGUS_API_KEY=ak_your_key_here

Install the agent skills

Argus ships two Claude agent skillsargus (the API/MCP operating manual) and argus-brand-onboarding (the end-to-end legacy-folder → brand-system arc). They're bundled in this package; install them into your Claude skills directory in one shot:

npx argus-media-cli skills install            # → ~/.claude/skills/<name>/SKILL.md
argus-media-cli skills install --dir ./skills # custom target

It's idempotent (overwrites with newer content) and prints what landed. Restart your Claude/agent session afterward so it picks the skills up. For a deterministic trigger, invoke a skill explicitly, e.g. "use the argus-brand-onboarding skill to onboard this brand folder into Argus".

Stage 2+ of brand onboarding (cohesion, style guide, creative direction) runs through the Argus MCP server — set it up with npx argus-media-mcp and an ARGUS_API_KEY. See the skill's Stage 0 for the config.

Commands

Upload

argus-media-cli upload photo.jpg
argus-media-cli upload hero.png --project campaign-q2 --tags hero,banner

Sync

Onboard an entire folder of assets in one shot — ideal for migrating a legacy brand folder. sync walks the folder recursively, filters out junk and unsupported files, dedupes, uploads what's left sequentially, and prints a manifest of what was synced, skipped, and failed.

argus-media-cli sync ./legacy-brand-folder --dry-run          # preview the plan
argus-media-cli sync ./legacy-brand-folder                    # upload for real
argus-media-cli sync ./assets --project brand-2019 --tags legacy,imported
argus-media-cli sync ./assets --json                          # structured manifest

What it uploads: JPEG, PNG, GIF, WebP, and SVG files up to 20 MB.

What it skips (with a stated reason):

  • Junk files (.DS_Store, Thumbs.db, desktop.ini) and hidden dotfiles
  • Unsupported file types
  • Files larger than the 20 MB server cap
  • Duplicates — identical file contents (hashed), and any asset already in the target project with the same filename + size

Project: defaults to the kebab-cased folder name (e.g. Legacy Brand Folderlegacy-brand-folder). Override with --project.

Credits: each analyzable upload costs 1 credit. If the plan exceeds your remaining credits, sync warns and asks for confirmation; pass --yes to skip the prompt (uploads past the limit are stored without AI analysis).

| Flag | Description | |---|---| | --project NAME | Target project (default: kebab-cased folder name) | | --tags a,b,c | Tags applied to every synced asset | | --dry-run | Print the plan without uploading | | --json | Emit the manifest as structured JSON | | --yes | Skip the credit-shortfall confirmation prompt |

Init

The inverse of sync. Where sync pushes a folder of files into Argus, init pulls an existing project's brand context into a fresh — often empty — folder, so an agent dropped there knows what it's working with. Use it for "onboard this project with the <brand> assets", where the assets already live in Argus. init is read-only and costs zero credits.

argus-media-cli init brand-2019           # bind this folder to the brand-2019 project
argus-media-cli init brand-2019 --json    # structured output, no prompts
argus-media-cli init                      # no project → lists available projects, exits non-zero

It resolves the project (case-insensitive) against your library, then writes:

  • .argus/DESIGN-CONTEXT.md — the project's style guide as an impeccable-compatible ## Design Context block (palette, type, layout tokens). Omitted, with a pointer to create one, if the project has no style guide yet.
  • .argus/AGENTS.md — pull-flavored agent context: which project this folder is bound to, where the design context lives, and how to pull assets (semantic search, or MCP search_assets / get_asset for inline SVG logos).
  • A <!-- argus:begin -->…<!-- argus:end --> pointer block merged into the root AGENTS.md (created if absent, replaced in place on re-run).

Re-running init refreshes all three in place. Like sync, it then offers to install the Argus skills and MCP server.

| Flag | Description | |---|---| | --json | Machine-readable output; on no/unknown project, lists available projects and exits non-zero | | --no-agent-setup | Write the .argus/ context but skip the skills/MCP install prompt |

Search

argus-media-cli search "sunset landscape"
argus-media-cli search --project website --status ready --json

List

argus-media-cli list
argus-media-cli list --project website --limit 20

Get

argus-media-cli get <asset-id>
argus-media-cli get abc12345 --json

Login

argus-media-cli login                     # Interactive prompt
argus-media-cli login --key ak_xxx       # Non-interactive
argus-media-cli login --url http://localhost:8787  # Custom API URL

API Keys

Manage API keys for the current workspace. Works with either a session (from login) or an existing API key. Use this to rotate a dead or expired key:

argus-media-cli login                       # Magic-link session (no key needed)
argus-media-cli keys list                   # List active keys
argus-media-cli keys create --name "MCP"    # Mint a new key (shown once)
argus-media-cli keys revoke <id>            # Revoke a key (admin only)

Skills

Install the bundled Argus agent skills into your Claude skills directory. See Install the agent skills above.

argus-media-cli skills install              # → ~/.claude/skills
argus-media-cli skills install --dir PATH   # custom target

Options

All commands support --json for structured JSON output.

Environment Variables

| Variable | Description | |---|---| | ARGUS_API_KEY | API key (overrides saved config) | | ARGUS_BASE_URL | API base URL (default: https://argus.build) |

License

MIT