Iptvnator Sqlite DB Worker
4gray/iptvnator
A skill your agent uses when changing Electron SQLite IPC, database-worker operations, request-scoped progress or cancellation, worker packaging, or runtime verification of non-EPG database work.
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.
$ npx skills add mvanhorn/printing-press-library --skill pp-movie-goat -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mvanhorn/printing-press-library pp-movie-goat --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cli-skills/pp-movie-goat .claude/skills/pp-movie-goat && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "pp-movie-goat" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-movie-goat into .claude/skills/pp-movie-goat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-movie-goat", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-movie-goatType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mvanhorn/printing-press-library --skill pp-movie-goat -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mvanhorn/printing-press-library pp-movie-goat --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .agents/skills && cp -r skills-src/cli-skills/pp-movie-goat .agents/skills/pp-movie-goat && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pp-movie-goat" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-movie-goat into .agents/skills/pp-movie-goat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-movie-goat", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-movie-goat -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mvanhorn/printing-press-library pp-movie-goat --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/cli-skills/pp-movie-goat .cursor/skills/pp-movie-goat && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pp-movie-goat" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-movie-goat into .cursor/skills/pp-movie-goat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-movie-goat", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mvanhorn/printing-press-library.git --path cli-skills/pp-movie-goat--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mvanhorn/printing-press-library --skill pp-movie-goat -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mvanhorn/printing-press-library pp-movie-goat --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/cli-skills/pp-movie-goat .gemini/skills/pp-movie-goat && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pp-movie-goat" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-movie-goat into .gemini/skills/pp-movie-goat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-movie-goat", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mvanhorn/printing-press-library pp-movie-goatInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mvanhorn/printing-press-library --skill pp-movie-goat -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .github/skills && cp -r skills-src/cli-skills/pp-movie-goat .github/skills/pp-movie-goat && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pp-movie-goat" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-movie-goat into .github/skills/pp-movie-goat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-movie-goat", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-movie-goat -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mvanhorn/printing-press-library pp-movie-goat --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/cli-skills/pp-movie-goat .opencode/skills/pp-movie-goat && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pp-movie-goat" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-movie-goat into .opencode/skills/pp-movie-goat/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-movie-goat", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pp-movie-goatThe 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.
Pp Movie Goat is an agent skill from mvanhorn/printing-press-library. 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, what's <person's filmography, plan a <franchise marathon, use movie-goat, run movie-goat.
Its SKILL.md is about 5.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Databases. It works with SQLite. The repository describes itself as: Official library of CLIs generated by the CLI Printing Press. Endorsed, tested, and community-contributed. The licence is Apache-2.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d9a1696. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadBashFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
goclaudenpxjqFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
themoviedb.orgomdbapi.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
OMDB_API_KEYTMDB_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Pp Movie Goat loads about 5.1k tokens when it runs. Until then it costs about 103 tokens; SKILL.md has 2,112 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, BashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from mvanhorn/printing-press-library at commit d9a1696, republished under its Apache-2.0 licence (© mvanhorn). 2,112 words, ~5,115 tokens.
.claude/skills/pp-movie-goat/SKILL.md (or your agent's skills folder).<!-- 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/". -->
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:
$HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:npx -y @mvanhorn/printing-press-library install movie-goat --cli-onlymovie-goat-pp-cli --version$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):
go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/movie-goat/cmd/movie-goat-pp-cli@latestIf --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.
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.
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.
These capabilities aren't available in any other tool for this API.
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 --jsonratings — 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 --jsonRemake-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.
movie-goat-pp-cli ratings "Sabrina" --year 1954 --jsonmarathon — 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 --jsoncareer — 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 --jsonversus — 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 --jsoncollaborators — 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 --jsonwatchlist 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 --jsonqueue — 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 --jsonauth — Manage TMDB_API_KEY and OMDB_API_KEY credentials
movie-goat-pp-cli auth status — Show authentication status for both the TMDb and OMDb credentialsmovie-goat-pp-cli auth set-token — Save the TMDb API token to the config filemovie-goat-pp-cli auth set-omdb-token — Save the optional OMDb API token to the config filemovie-goat-pp-cli auth logout — Clear stored credentialsdiscover — 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 providergenres — 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 genresmovies — 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 theatersmulti — Multi-search across movies, TV shows, and people
movie-goat-pp-cli multi <query> — Search for movies, TV shows, and people in a single querypeople — 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 nametrending — 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 showstv — 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 showsWhen you know what you want to do but not which command does it, ask the CLI directly:
movie-goat-pp-cli which "<capability in your own words>"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.
movie-goat-pp-cli tonight --mood drama --max-runtime 130 --providers netflix,max,prime --region US --agent --select "results.title,results.year,results.rating,results.providers"Streaming-filtered shortlist with only the high-gravity fields an agent needs to decide.
movie-goat-pp-cli watchlist list --available --providers netflix,max --region US --agentWeekly check: which saved titles became streamable on services I have.
movie-goat-pp-cli career "Lynne Ramsay" --role director --agent --select "credits.title,credits.year,credits.rating_imdb,credits.rating_rt"Agent-bounded chronological filmography with the cross-source rating columns that matter.
movie-goat-pp-cli versus 27205 87108 --region US --agentAligned compare card for Inception vs. Tenet; ratings, runtime, cast overlap, providers.
movie-goat-pp-cli auth set-token YOUR_TMDB_API_KEY
movie-goat-pp-cli auth set-omdb-token YOUR_OMDB_API_KEY
movie-goat-pp-cli auth status --agentWrites 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.
movie-goat-pp-cli ratings "Sabrina" --year 1954 --agent
movie-goat-pp-cli ratings "Sabrina (1954)" --agent
movie-goat-pp-cli versus "Sabrina (1954)" "Sabrina (1995)" --agentratings, 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:
warn: "Sabrina" matches 3 titles on TMDb; using id 11860 — Sabrina (1995).
TMDb's search relevance put it first, but Sabrina (1954) has more ratings (1373 vs 703).
Other matches:
6620 Sabrina (1954)
503902 Sabrina (2018)
Disambiguate with --year <YYYY>, a "title (YYYY)" suffix, or the TMDb id./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:
movie-goat-pp-cli ratings "Sabrina" --agent 2>/dev/null | jq '.meta.ambiguous'[
{
"query": "Sabrina",
"kind": "titles",
"match_count": 3,
"signal": "alternative_better_rated",
"chosen": { "tmdb_id": 11860, "title": "Sabrina", "year": "1995", "vote_count": 703 },
"alternatives": [
{ "tmdb_id": 6620, "title": "Sabrina", "year": "1954", "vote_count": 1373 },
{ "tmdb_id": 503902, "title": "Sabrina", "year": "2018", "vote_count": 194 }
],
"hint": "Disambiguate with --year <YYYY>, a \"title (YYYY)\" suffix, or the TMDb id."
}
]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:
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.movie-goat-pp-cli marathon "Mission: Impossible" --order release --breaks-every 240 --agentOrdered watchlist with total runtime and break suggestions.
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.
Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.
Pipeable — JSON on stdout, errors on stderr
Filterable — --select keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:
movie-goat-pp-cli movies get mock-value --agent --select id,name,statusPreviewable — --dry-run shows the request without sending
Offline-friendly — sync/search commands can use the local SQLite store when available
Non-interactive — never prompts, every input is a flag
Read-only — do not use this CLI for create, update, delete, publish, comment, upvote, invite, order, send, or other mutating requests
Commands that read from the local store or the API wrap output in a provenance envelope:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}Parse .results for data and .meta.source to know whether it's live or local. A human-readable N results (live) summary is printed to stderr only when stdout is a terminal — piped/agent consumers get pure JSON on stdout.
When you (or the agent) notice something off about this CLI, record it:
movie-goat-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
movie-goat-pp-cli feedback --stdin < notes.txt
movie-goat-pp-cli feedback list --json --limit 10Entries are stored locally at ~/.movie-goat-pp-cli/feedback.jsonl. They are never POSTed unless MOVIE_GOAT_FEEDBACK_ENDPOINT is set AND either --send is passed or MOVIE_GOAT_FEEDBACK_AUTO_SEND=true. Default behavior is local-only.
Write what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.
Every command accepts --deliver <sink>. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:
| Sink | Effect |
|---|---|
stdout | Default; write to stdout only |
file:<path> | Atomically write output to <path> (tmp + rename) |
webhook:<url> | POST the output body to the URL (application/json or application/x-ndjson when --compact) |
Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.
A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.
movie-goat-pp-cli profile save briefing --json
movie-goat-pp-cli --profile briefing movies get mock-value
movie-goat-pp-cli profile list --json
movie-goat-pp-cli profile show briefing
movie-goat-pp-cli profile delete briefing --yesExplicit flags always win over profile values; profile values win over defaults. agent-context lists all available profiles under available_profiles so introspecting agents discover them at runtime.
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Usage error (wrong arguments) |
| 3 | Resource not found |
| 4 | Authentication required |
| 5 | API error (upstream issue) |
| 7 | Rate limited (wait and retry) |
| 10 | Config error |
Parse $ARGUMENTS:
help, or --help → show movie-goat-pp-cli --help outputinstall → ends with mcp → MCP installation; otherwise → see Prerequisites above--agent)go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/movie-goat/cmd/movie-goat-pp-mcp@latestclaude mcp add -e TMDB_API_KEY=<your-tmdb-key> -e OMDB_API_KEY=<your-omdb-key> movie-goat-pp-mcp -- movie-goat-pp-mcpOMDB_API_KEY is optional, but it enables IMDb, Rotten Tomatoes, and Metacritic enrichment in ratings, versus, and career.claude mcp listwhich movie-goat-pp-cli
If not found, offer to install (see Prerequisites at the top of this skill).--agent flag:movie-goat-pp-cli <command> [subcommand] [args] --agentmovie-goat-pp-cli <command> --help.© mvanhorn, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in cli-skills/pp-movie-goat of mvanhorn/printing-press-library.
Open the folder on GitHubat commit d9a1696
Pp Movie Goat next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pp Movie Goat this skillmvanhorn/printing-press-library | 2.1k | — | ~5.1k | Automated safety check: Notes | Apache-2.0 | |
| Iptvnator Sqlite DB Worker4gray/iptvnator | 7.3k | — | ~824 | Automated safety check: Pass | MIT | |
| Restore Legacy Sessionszai-org/ZCode | 7.7k | — | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| Analyze Nsys Profilemlc-ai/pith-train | 355 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Reactive Sqlite UIfastrepl/anarlog | 9.5k | — | ~699 | Automated safety check: Pass | MIT | |
| Composer Forensicsdxos/dxos | 526 | — | ~3.1k | Automated safety check: Pass | Custom licence |
4gray/iptvnator
A skill your agent uses when changing Electron SQLite IPC, database-worker operations, request-scoped progress or cancellation, worker packaging, or runtime verification of non-EPG database work.
zai-org/ZCode
A skill your agent uses when ZCode needs to inspect, plan, or execute restoration of old ACP-era ZCode sessions from ~/.zcode/v2/sessions into the new ZCode task/session stores.
mlc-ai/pith-train
Query a captured PithTrain Nsight Systems profile to measure compute/communication overlap, locate exposed comm by DualPipeV stage, and inspect per-rank stream behavior.
fastrepl/anarlog
Build SQLite-backed reactive UI in apps/desktop using stable patterns for reads, selection, forms, writes, and loading states.
dxos/dxos
Forensically inspect and repair Composer browser profiles — offline (Chrome OPFS / SQLite extract) or live via /recovery.html debug port.
fastrepl/anarlog
Design or review schemas for crates/cloudsync using SQLite Sync constraints, not generic SQLite advice.
mvanhorn/printing-press-library
Desktop automation through the real Rust agent-desktop CLI, published in Printing Press through a small bridge.
mvanhorn/printing-press-library
Search, browse, and download Google Fonts from the terminal via the gfonts CLI.
mvanhorn/printing-press-library
The free, offline Trigger phrases: search 1688 for, find a factory on 1688 for, wholesale price on 1688 for, who is the cheapest supplier on 1688 for, compare 1688 suppliers for, use 1688, run 1688.
mvanhorn/printing-press-library
Inspect known Activity Japan plan IDs or URLs, compare dated prices and sessions, check language-sitemap coverage, and hand off to canonical booking pages.
mvanhorn/printing-press-library
Every Admin By Request portal action, plus a local SQLite mirror of audit, events, inventory and requests for ad-hoc...
mvanhorn/printing-press-library
macOS screen capture, window recording, GIF conversion, and agent evidence bundles from the terminal.
Works with
Categories
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. Pp Movie Goat is an agent skill from mvanhorn/printing-press-library. 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.
Pp Movie Goat fits situations like: phrases: what should I watch tonight; where can I stream <title; compare <title and <title; whats <persons filmography.
Run `npx skills add mvanhorn/printing-press-library --skill pp-movie-goat -a claude-code`. Or copy the skill folder (cli-skills/pp-movie-goat in mvanhorn/printing-press-library) into .claude/skills/pp-movie-goat in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mvanhorn/printing-press-library --skill pp-movie-goat -a codex`. Or copy the skill folder (cli-skills/pp-movie-goat in mvanhorn/printing-press-library) into .agents/skills/pp-movie-goat in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mvanhorn/printing-press-library --skill pp-movie-goat -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pp-movie-goat, .gemini/skills/pp-movie-goat, .github/skills/pp-movie-goat and .opencode/skills/pp-movie-goat in your project.
Going by SKILL.md and its folder, Pp Movie Goat needs the command-line tools its instructions call (go, claude, npx and jq) and credentials named OMDB_API_KEY and TMDB_API_KEY. Our summary lists: Node.js; A credential in OMDB_API_KEY; A credential in TMDB_API_KEY. Its frontmatter pre-approves these tools: Read, Bash.
SKILL.md names 2 domains. As links in the text: themoviedb.org and omdbapi.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Pp Movie Goat is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.1k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Pp Movie Goat: Iptvnator Sqlite DB Worker (4gray/iptvnator, 7.3k stars), Restore Legacy Sessions (zai-org/ZCode, 7.7k stars), Analyze Nsys Profile (mlc-ai/pith-train, 355 stars) and Reactive Sqlite UI (fastrepl/anarlog, 9.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mvanhorn (a GitHub user) maintains it in mvanhorn/printing-press-library, which has 2,056 GitHub stars. The repository holds 506 skills in this directory. The repository was last updated on October 9, 2026.
Source: mvanhorn/printing-press-library on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.