pp-movie-goat

The movie CLI that combines TMDb's discovery engine with OMDb's multi-source ratings — and ships a SQLite watchlist that flags what's streaming on your services right now. Trigger phrases: `what should I watch tonight`, `where can I stream <title>`, `rate <title>`, `compare <title> and <title>`, `wh

By mvanhorn · 3,343 installs

npx skills add mvanhorn/printing-press-library --skill pp-movie-goat

Source repository · Upstream listing

<! GENERATED FILE — DO NOT EDIT. This file is a verbatim mirror of library/media and entertainment/movie goat/SKILL.md, regenerated post merge by tools/generate skills/. Hand edits here are silently overwritten on the next regen. Edit the library/ source instead. See the repository agent guide, section "Generated artifacts: registry.json, cli skills/". Movie Goat — Printing Press CLI Prerequisites: Install the CLI This skill drives the movie goat pp cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first: 1. Install via the Printing Press installer. It defaults binaries to $HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows: 2. Verify: movie goat pp cli version 3. Ensure the reported install directory is on $PATH for the agent/runtime that will invoke this skill. If the npx install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.6 or newer): If version reports "command not found" after install, the runtime cannot see the binary directory on $PATH . Do not proceed with skill commands until verification succeeds. When to Use This CLI Use Movie Goat when an agent needs to answer cinephile questions that require combining streaming availability with multi source ratings. It is the right choice for tonight picker scenarios, franchise marathon planning, and rated career timelines. It is not the right choice for box office tracking, review sentiment analysis, or any workflow that needs LLM style summaries of plot or reviews. When Not to Use This CLI Do not activate this CLI for requests that require creating, updating, deleting, publishing, commenting, upvoting, inviting, ordering, sending messages, booking, purchasing, or changing remote state. This printed CLI exposes read only commands for inspection, export, sync, and analysis. Unique Capabilities These capabilities aren't available in any other tool for this API. Cinephile rituals tonight — Pick what to watch tonight from trending titles actually streaming on your services. Use this when an agent needs a streaming filtered shortlist; one call replaces tab bouncing across TMDb/RT/JustWatch. ratings — TMDb + IMDb + Rotten Tomatoes + Metacritic ratings for any title in one card. Use when an agent needs the canonical multi source rating for a title; degrades gracefully to TMDb only if OMDB API KEY is unset. Remake aware title resolution — Every command that accepts a title instead of a TMDb id says so out loud when the title is shared. TMDb's search ranks by a proprietary relevance score, so "Sabrina" resolves to the 1995 remake even though the 1954 Wilder original is better rated. When a title has more than one well rated match, the CLI reports it on both channels: a human notice on stderr, and a meta.ambiguous record in the JSON on stdout for consumers that never read stderr. Pin the one you meant with year , a "Title (YYYY)" suffix, or the id. marathon — Plan a franchise marathon with watch order, total runtime, and suggested breaks. Use when planning an event watch; agent can dump the schedule to share with a group. career — Explore any actor or director's full filmography with ratings and chronology. Use when an agent needs a rated chronological filmography; replaces flat IMDb lists with cross source ratings. versus — Compare two movies or shows side by side across ratings, cast, runtime, and streaming. Use when an agent has to pick between two finalists; one command shows where they differ on every axis. collaborators — List people who appear in 2+ of a person's credits, with count and titles. Use when an agent is researching a filmmaker's circle; surfaces recurring DPs/composers/actors mechanically. Local state that compounds watchlist list — Local SQLite watchlist; flag rows that are streamable on your services. Use weekly to surface streamable items from a saved list; eliminates ad hoc JustWatch checks per title. queue — Suggest next watch picks derived from your watchlist's recommendations and similars. Use when an agent needs a fresh queue derived from saved interests; combines local state with API recommendations. Command Reference auth — Manage TMDB API KEY and OMDB API KEY credentials movie goat pp cli auth status — Show authentication status for both the TMDb and OMDb credentials movie goat pp cli auth set token — Save the TMDb API token to the config file movie goat pp cli auth set omdb token — Save the optional OMDb API token to the config file movie goat pp cli auth logout — Clear stored credentials discover — Discover movies and TV shows with rich filters movie goat pp cli discover movies — Discover movies by genre, year, rating, certification, cast, crew, streaming provider, and more movie goat pp cli discover tv — Discover TV shows by genre, year, rating, network, and streaming provider genres — Get genre lists for movies and TV movie goat pp cli genres movies — Get the list of movie genres movie goat pp cli genres tv — Get the list of TV genres movies — Search and browse movies movie goat pp cli movies get — Get detailed info about a movie including cast, ratings, and streaming availability movie goat pp cli movies now playing — Get movies currently in theaters movie goat pp cli movies popular — Get current popular movies movie goat pp cli movies search — Search for movies by title movie goat pp cli movies top rated — Get the highest rated movies movie goat pp cli movies upcoming — Get movies coming soon to theaters multi — Multi search across movies, TV shows, and people movie goat pp cli multi <query — Search for movies, TV shows, and people in a single query people — Search and browse people (actors, directors, crew) movie goat pp cli people get — Get detailed info about a person including their filmography movie goat pp cli people popular — Get popular people in entertainment movie goat pp cli people search — Search for people by name trending — Get trending movies, TV shows, and people movie goat pp cli trending all — Get trending movies, TV, and people movie goat pp cli trending movies — Get trending movies movie goat pp cli trending people — Get trending people movie goat pp cli trending tv — Get trending TV shows tv — Search and browse TV shows movie goat pp cli tv airing today — Get TV shows with episodes airing today movie goat pp cli tv get — Get detailed info about a TV show movie goat pp cli tv on the air — Get TV shows currently on the air movie goat pp cli tv popular — Get current popular TV shows movie goat pp cli tv search — Search for TV shows by title movie goat pp cli tv top rated — Get the highest rated TV shows Finding the right command When you know what you want to do but not which command does it, ask the CLI directly: which resolves a natural language capability query to the best matching command from this CLI's curated feature index. Exit code 0 means at least one match; exit code 2 means no confident match — fall back to help or use a narrower query. Recipes Tonight, well rated, on my services Streaming filtered shortlist with only the high gravity fields an agent needs to decide. Watchlist sweep Weekly check: which saved titles became streamable on services I have. Rated career deep dive Agent bounded chronological filmography with the cross source rating columns that matter. Pick between two finalists Aligned compare card for Inception vs. Tenet; ratings, runtime, cast overlap, providers. Store both API keys without touching the shell environment Writes both credentials to ~/.config/movie goat pp cli/config.toml (mode 0600 ) so every agent and shell on the machine sees them, not just the one that exported an environment variable. auth status reports authenticated , omdb configured , and omdb source so an agent can tell whether the IMDb / RT / Metacritic columns will be populated before it runs ratings . Pin the original, not the remake ratings , marathon , and watchlist add take year ; every title taking command (including the two positional versus ) accepts the inline "Title (YYYY)" suffix. Without either, the CLI still takes TMDb's top ranked result but prints the rival ids on stderr: /search/ orders results by a relevance score TMDb does not expose. It is not the vote count and not the popularity field — in this very case the 1954 entry leads on both (1373 vs 703 ratings, 4.25 vs 3.60 popularity) and still comes back second. That is why the top result can differ from the canonical edition, and why the notice compares vote counts: they are the only ranking input you can read. Unrated same title obscurities never trigger it, so ratings "Inception" stays silent. A script that never reads stderr still finds out. The same event is recorded in the JSON response under meta.ambiguous , so a cron job or a pipeline running with 2 /dev/null — the case where nobody is watching and a wrong year is most dangerous — can detect it: signal is alternative better rated when the entry TMDb's search ranked first is not the best rated one — treat that as "stop and pin an id" — or multiple exact matches when the top pick is also the best rated. meta.ambiguous is a list because one command can resolve several titles ( versus resolves two). popularity is TMDb's trending score, passed through as reported. It is not the order the results came back in, and it is not what the signal compares — that is vote count . Rules worth knowing: Additive. The field appears only when the stderr notice fires. Unambiguous lookups carry no meta key at all, so nothing changes for existing parsers. select cannot filter it out. select title,ratings still returns meta.ambiguous when a lookup was ambiguous — narrowing the field list is exactly the habit that would otherwise hide it. compact / agent keep it. The compact allow list applies to arrays; these responses are objects, whose compaction is a blocklist that leaves meta alone. quiet silences the stderr notice but not the record. They are separate channels with separate audiences. Note that on these commands quiet suppresses stdout entirely (pre existing behavior), so use json without quiet to read the field. Plan a franchise night Ordered watchlist with total runtime and break suggestions. Auth Setup Movie Goat uses two API keys, and each can live in the config file or the environment. Key Required Save to config Environment variable TMDb v3 (free, https://www.themoviedb.org/settings/api) yes movie goat pp cli auth set token <token TMDB API KEY OMDb (free, http://www.omdbapi.com/apikey.aspx) no movie goat pp cli auth set omdb token <token OMDB API KEY Both keys are stored in ~/.config/movie goat pp cli/config.toml (mode 0600 ) as api key and omdb api key . The environment variable wins over the saved value for either key, so an existing environment based setup keeps working unchanged. The TMDb key is sent as a query parameter, not a Bearer header. Without an OMDb key, ratings , versus , and career show TMDb only and gracefully omit the IMDb / RT / Metacritic columns. movie goat pp cli auth status reports both credentials and where each resolved from; movie goat pp cli auth logout clears both from the config file. Run movie goat pp cli doctor to verify setup. Agent Mode Add agent to any command. Expands to: json compact no input no color yes . Pipeable — JSON on stdout, errors on stderr Filterable — select k