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.
Maintainers
Readme
argus-media-cli
CLI for Argus — AI-native media asset management.
Install
npm install -g argus-media-cliOr run directly:
npx argus-media-cli upload photo.jpgSetup
argus-media-cli loginOr set your API key as an environment variable:
export ARGUS_API_KEY=ak_your_key_hereInstall the agent skills
Argus ships two Claude agent skills — argus (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 targetIt'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-mcpand anARGUS_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,bannerSync
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 manifestWhat 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
Folder → legacy-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-zeroIt resolves the project (case-insensitive) against your library, then writes:
.argus/DESIGN-CONTEXT.md— the project's style guide as an impeccable-compatible## Design Contextblock (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 (semanticsearch, or MCPsearch_assets/get_assetfor inline SVG logos).- A
<!-- argus:begin -->…<!-- argus:end -->pointer block merged into the rootAGENTS.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 --jsonList
argus-media-cli list
argus-media-cli list --project website --limit 20Get
argus-media-cli get <asset-id>
argus-media-cli get abc12345 --jsonLogin
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 URLAPI 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 targetOptions
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
