Documentation
Movie Goat CLI
movie-goat-pp-cli
Install
npx -y @mvanhorn/printing-press-library install movie-goatInstalls the CLI binary and the agent skill for Claude Code, Codex, Cursor, Gemini CLI, Copilot, and more. Add --cli-only or --skill-only for one half. Requires Node.
Documentation
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.
Movie Goat unifies the workflows that today require four browser tabs: discovery (TMDb), multi-source ratings (TMDb + IMDb + RT + Metacritic via OMDb), where-to-watch (TMDb watch providers), and a local watchlist that knows your streaming services. Flagship transcendence: tonight picks something well-rated that's actually streaming on your services; ratings shows the four canonical scores for any title; marathon totals runtime across a franchise.
Learn more at Movie Goat.
Created by @tmchow (Trevin Chow).
Authentication
TMDb v3 API key (free, https://www.themoviedb.org/settings/api) is required and goes in TMDB_API_KEY — used as a query parameter, not a Bearer header. OMDb key (free, http://www.omdbapi.com/apikey.aspx) is optional and goes in OMDB_API_KEY; without it, ratings and versus show TMDb-only and gracefully omit the IMDb/RT/Metacritic columns.
Quick Start
# The fastest path to the value: a streaming-filtered, well-rated shortlist for tonight.
movie-goat-pp-cli tonight --providers "Netflix,Max" --region US
# Multi-type search across movies, TV, and people.
movie-goat-pp-cli multi "the bear"
# Cross-source rating card for Fight Club (TMDb id 550).
movie-goat-pp-cli ratings 550
# Add Inception to the local SQLite watchlist.
movie-goat-pp-cli watchlist add 27205 --kind movie
# Show which saved titles are streamable on your services right now.
movie-goat-pp-cli watchlist list --available --providers netflix,max --region US
# Plan a franchise marathon with totalled runtime.
movie-goat-pp-cli marathon "The Avengers" --order release
Unique Features
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.
movie-goat-pp-cli tonight --mood thriller --max-runtime 120 --providers netflix,max --region US --json -
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.
movie-goat-pp-cli ratings 550 --json -
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.
movie-goat-pp-cli marathon "The Avengers" --order release --breaks-every 240 --json -
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.
movie-goat-pp-cli career "Christopher Nolan" --since 2010 --role director --json -
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.
movie-goat-pp-cli versus 550 27205 --region US --json -
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.
movie-goat-pp-cli collaborators "Christopher Nolan" --min-count 3 --role crew --json
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.
movie-goat-pp-cli watchlist list --available --providers netflix,max --region US --json -
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.
movie-goat-pp-cli queue --limit 20 --providers netflix,max --region US --json
Usage
Run movie-goat-pp-cli --help for the full command reference and flag list.
Commands
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 moremovie-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 genresmovie-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 availabilitymovie-goat-pp-cli movies now-playing- Get movies currently in theatersmovie-goat-pp-cli movies popular- Get current popular moviesmovie-goat-pp-cli movies search- Search for movies by titlemovie-goat-pp-cli movies top-rated- Get the highest rated moviesmovie-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 search- 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 filmographymovie-goat-pp-cli people popular- Get popular people in entertainmentmovie-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 peoplemovie-goat-pp-cli trending movies- Get trending moviesmovie-goat-pp-cli trending people- Get trending peoplemovie-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 todaymovie-goat-pp-cli tv get- Get detailed info about a TV showmovie-goat-pp-cli tv on-the-air- Get TV shows currently on the airmovie-goat-pp-cli tv popular- Get current popular TV showsmovie-goat-pp-cli tv search- Search for TV shows by titlemovie-goat-pp-cli tv top-rated- Get the highest rated TV shows
Cookbook
Real-world recipes using verified flag names. Pipe --json and chain with
jq for scripting; pair with --select to keep only the fields you need.
# 1. Movie-night picker: thrillers under 2h that are streaming on your services tonight.
movie-goat-pp-cli tonight --mood thriller --max-runtime 120 --providers netflix,max --region US
# 2. Multi-source ratings card for any title (TMDb, IMDb, RT, Metacritic).
movie-goat-pp-cli ratings 550
# 3. Plan a marathon, skipping unreleased entries (default), with a break every ~3.5 hrs.
movie-goat-pp-cli marathon "The Lord of the Rings" --order release --breaks-every 210
# 4. Compare two finalists side-by-side before committing.
movie-goat-pp-cli versus "Fight Club" "Inception" --region US --json
# 5. Filmmaker's recurring crew — useful for casting/producer research.
movie-goat-pp-cli collaborators "Christopher Nolan" --role crew --min-count 3
# 6. Director's filmography since 2010, sorted chronologically.
movie-goat-pp-cli career "Christopher Nolan" --since 2010 --role director
# 7. Save a watchlist locally and check what's streamable now.
movie-goat-pp-cli watchlist add 27205 --kind movie
movie-goat-pp-cli watchlist list --available --providers netflix,max --region US
# 8. Discover trending titles, JSON-only, top 5 fields.
movie-goat-pp-cli trending all --json --select results.title,results.popularity | jq '.results[:5]'
# 9. Search and pipe straight into `jq` for the top result.
movie-goat-pp-cli movies search "Dune" --json | jq '.results[0] | {id, title, year: .release_date[0:4]}'
# 10. Get a movie by id with credits + watch providers in one call.
movie-goat-pp-cli movies get 550 --append-to-response credits,watch/providers,videos
# 11. Discover-by-filter: action thrillers from 2020 onwards, sorted by vote count.
movie-goat-pp-cli discover movies --with-genres 28,53 --primary-release-date-gte 2020-01-01 --vote-count-gte 1000 --sort-by vote_average.desc
# 12. Recommendation queue from your watchlist (suggests next-watch picks).
movie-goat-pp-cli queue --providers netflix,max --region US --limit 10
Output Formats
# Human-readable table (default in terminal, JSON when piped)
movie-goat-pp-cli movies search "Inception"
# JSON for scripting and agents
movie-goat-pp-cli movies search "Inception" --json
# Filter to specific fields
movie-goat-pp-cli movies get 27205 --json --select id,title,runtime
# Dry run — show the request without sending
movie-goat-pp-cli movies get 27205 --dry-run
# Agent mode — JSON + compact + no prompts in one flag
movie-goat-pp-cli movies get 27205 --agent
Agent Usage
This CLI is designed for AI agent consumption:
- Non-interactive - never prompts, every input is a flag
- Pipeable -
--jsonoutput to stdout, errors to stderr - Filterable -
--select id,namereturns only fields you need - Previewable -
--dry-runshows the request without sending - Read-only by default - this CLI does not create, update, delete, publish, send, or mutate remote resources
- Offline-friendly - sync/search commands can use the local SQLite store when available
- Agent-safe by default - no colors or formatting unless
--human-friendlyis set
Exit codes: 0 success, 2 usage error, 3 not found, 4 auth error, 5 API error, 7 rate limited, 10 config error.
Health Check
movie-goat-pp-cli doctor
Verifies configuration, credentials, and connectivity to the API.
Configuration
Config file: ~/.config/movie-goat-pp-cli/config.toml
Environment variables:
TMDB_API_KEYOMDB_API_KEY(optional; enables IMDb, Rotten Tomatoes, and Metacritic enrichment)
Troubleshooting
Authentication errors (exit code 4)
- Run
movie-goat-pp-cli doctorto check credentials - Verify the environment variable is set:
echo $TMDB_API_KEYNot found errors (exit code 3) - Check the resource ID is correct
- Run the
listcommand to see available items
API-specific
- 401 Unauthorized: "Invalid API key: You must be granted a valid key." — TMDb v3 keys (32-char hex) must be sent as a query parameter, not as a Bearer header. The CLI does this automatically — re-check that TMDB_API_KEY is set to the v3 key from https://www.themoviedb.org/settings/api, not a v4 read access token.
ratingsshows only the TMDb score and skips IMDb/RT/Metacritic columns. — Set OMDB_API_KEY to a free key from http://www.omdbapi.com/apikey.aspx. Without it the CLI degrades to TMDb-only by design.watchlist list --availablereturns rows but every row saysnot available. — Pass--region(e.g.--region US) and confirm--providersmatches TMDb's canonical provider names exactly (e.g."Netflix","Max","Amazon Prime Video"). Usemovie-goat-pp-cli movies get <id> --select watch_providersto see the canonical names for any title.- 429 Too Many Requests when running
careerormarathonon long filmographies/collections. — TMDb's rate limit is ~40 req/10s. The CLI's adaptive limiter ramps down on 429 automatically; rerun, and the ceiling will be discovered. For very long careers, use--since YEARto scope the fan-out.
Sources & Inspiration
This CLI was built by studying these projects and resources:
- tmdb-mcp — Go
- imdb-mcp-server — Python
- tmdb-cli (degerahmet) — Go
- TMDB_CLI (illegalbyte) — Python
- mediascore — Go
- tmdbv3api — Python
Generated by CLI Printing Press
For agents: pass /documentation/movie-goat/agents.md to install this CLI from a prompt.