{"id":912032,"date":"2026-07-21T22:55:16","date_gmt":"2026-07-21T22:55:16","guid":{"rendered":"https:\/\/cri-one.com\/blog\/2026\/07\/21\/wonderphi-library-25-recipes-for-the-programs-you-already-use\/"},"modified":"2026-07-21T23:15:22","modified_gmt":"2026-07-21T23:15:22","slug":"wonderphi-library-25-recipes-for-the-programs-you-already-use","status":"publish","type":"post","link":"https:\/\/cri-one.com\/blog\/2026\/07\/21\/wonderphi-library-25-recipes-for-the-programs-you-already-use\/","title":{"rendered":"WonderPhi Library \u2014 25 Recipes for the Programs You Already Use"},"content":{"rendered":"<p style=\"font-size:18px;font-weight:bold;color:#1a1a2e;background:#f0f0ff;padding:16px 20px;border-left:4px solid #302b63;border-radius:4px;margin:0 0 1.5em\">Software acceleration for existing hardware.<\/p>\n<p>You have 500 videos to transcode. You don&#8217;t sit down and write a parallel execution plan from scratch. You run one line:<\/p>\n<pre>python wpc-recipe.py ffmpeg-h264 .videos<\/pre>\n<p>&#8230;and out comes <code>videos.plan.wpc.txt<\/code> \u2014 one tuned command per file, ready to feed straight to <a href=\"https:\/\/cri-one.com\/store\/wonderphi-compute-constitutional-parallel-runner.html\">WonderPhi Compute<\/a>, which runs them across every core you own.<\/p>\n<p><strong>WonderPhi Library<\/strong> is the recipe book for WonderPhi Compute. It ships 25 pre-optimized recipes for the most popular command-line tools. Point a recipe at a folder, and it generates a WPC plan with the right flags already filled in \u2014 the ones you&#8217;d otherwise have to look up on Stack Overflow.<\/p>\n<h2>Three Steps<\/h2>\n<ol>\n<li><code>python wpc-recipe.py --list<\/code> \u2014 see every recipe<\/li>\n<li><code>python wpc-recipe.py &lt;recipe&gt; &lt;folder&gt;<\/code> \u2014 generate the plan<\/li>\n<li><code>wpc.exe that-plan.plan.wpc.txt<\/code> \u2014 WonderPhi Compute runs it<\/li>\n<\/ol>\n<p>Or, with the always-on watcher installed, add <code>--inbox<\/code> and the plan drops straight into the pipeline to run itself.<\/p>\n<h2>The Full Recipe Index<\/h2>\n<h3>Media<\/h3>\n<table style=\"width:100%;border-collapse:collapse;margin:1em 0\">\n<thead>\n<tr style=\"background:#f4f4f4\">\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">Recipe<\/th>\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">What It Does<\/th>\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">Needs<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>ffmpeg-h264<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Transcode each video to H.264 MP4<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">ffmpeg<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>ffmpeg-audio<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Extract audio from each video to MP3<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">ffmpeg<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>ffmpeg-thumb<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Grab a thumbnail from each video<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">ffmpeg<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>ffmpeg-gif<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Convert each video to an optimized GIF<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">ffmpeg<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Images<\/h3>\n<table style=\"width:100%;border-collapse:collapse;margin:1em 0\">\n<thead>\n<tr style=\"background:#f4f4f4\">\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">Recipe<\/th>\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">What It Does<\/th>\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">Needs<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>img-resize<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Resize each image to max 1920px<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">ImageMagick<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>img-webp<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Convert each image to WebP<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">ImageMagick<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>img-thumb<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Make a 256&#215;256 thumbnail of each<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">ImageMagick<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>img-compress<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Strip metadata and recompress<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">ImageMagick<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Documents<\/h3>\n<table style=\"width:100%;border-collapse:collapse;margin:1em 0\">\n<thead>\n<tr style=\"background:#f4f4f4\">\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">Recipe<\/th>\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">What It Does<\/th>\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">Needs<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>pdf-text<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Extract text from each PDF<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">pdftotext<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>pdf-compress<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Compress each PDF<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Ghostscript<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>pandoc-pdf<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Convert documents to PDF<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">pandoc<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>pandoc-docx<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Convert documents to Word .docx<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">pandoc<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Archives and Integrity<\/h3>\n<table style=\"width:100%;border-collapse:collapse;margin:1em 0\">\n<thead>\n<tr style=\"background:#f4f4f4\">\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">Recipe<\/th>\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">What It Does<\/th>\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">Needs<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>zip-each<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Compress each file into its own .7z<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">7-Zip<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>unzip-each<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Extract each archive into its own subfolder<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">7-Zip<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>sha256<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">SHA-256 each file with a combined manifest<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">certutil (built-in)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>md5<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">MD5 each file<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">certutil (built-in)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Web and Dev<\/h3>\n<table style=\"width:100%;border-collapse:collapse;margin:1em 0\">\n<thead>\n<tr style=\"background:#f4f4f4\">\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">Recipe<\/th>\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">What It Does<\/th>\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">Needs<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>curl-check<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">HEAD health-check each URL in a list<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">curl (built-in)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>curl-get<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Download each URL into the output folder<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">curl (built-in)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>pytest-dirs<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Run pytest in each subdirectory<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">pytest<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>git-gc<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Run git gc on each repo subdirectory<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">git<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>git-pull<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">git pull &#8211;ff-only in each repo<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">git<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>GPU Recipes<\/h3>\n<table style=\"width:100%;border-collapse:collapse;margin:1em 0\">\n<thead>\n<tr style=\"background:#f4f4f4\">\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">Recipe<\/th>\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">What It Does<\/th>\n<th style=\"padding:6px 12px;text-align:left;border:1px solid #ddd\">Needs<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>ffmpeg-nvenc<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">GPU H.264 transcode via NVENC<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">ffmpeg + NVIDIA<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>ffmpeg-nvenc-hevc<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">GPU HEVC transcode (smaller files)<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">ffmpeg + NVIDIA<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>whisper<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Speech-to-text transcription on GPU<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Whisper + CUDA<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><code>realesrgan<\/code><\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">4x image upscaling on GPU<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">Real-ESRGAN<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Every recipe uses one of three input models: <strong>files<\/strong> (scan a folder), <strong>dirs<\/strong> (one job per subfolder), or <strong>lines<\/strong> (one job per line in a text file). GPU recipes auto-detect your NVIDIA card and fall back to the CPU equivalent when no GPU is present.<\/p>\n<h2>No Lock-In<\/h2>\n<p>The Library generates plain-text plan files. You can read them, edit them, combine them, or write your own. Nothing is hidden. Nothing is compiled. The recipe is just the recipe \u2014 WonderPhi Compute is the kitchen.<\/p>\n<p>Zero dependencies. Python standard library only. No network. No telemetry.<\/p>\n<p style=\"margin-top:2em\"><strong><a href=\"https:\/\/cri-one.com\/store\/wonderphi-library-recipes.html\">Get WonderPhi Library \u2014 $9.99 \u2192<\/a><\/strong><\/p>\n<p><a href=\"https:\/\/cri-one.com\/store\/wonderphi-compute.html\">Browse the full WonderPhi product line<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Software acceleration for existing hardware. You have 500 videos to transcode. You don&#8217;t sit down and write a parallel execution plan from scratch. You run one line: python wpc-recipe.py ffmpeg-h264 .videos &#8230;and out comes videos.plan.wpc.txt \u2014 one tuned command per file, ready to feed straight to WonderPhi Compute, which runs them across every core you [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[353,357,354,1],"tags":[],"class_list":["post-912032","post","type-post","status-publish","format-standard","hentry","category-computing","category-product-insights","category-technology","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/posts\/912032","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/comments?post=912032"}],"version-history":[{"count":1,"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/posts\/912032\/revisions"}],"predecessor-version":[{"id":912035,"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/posts\/912032\/revisions\/912035"}],"wp:attachment":[{"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/media?parent=912032"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/categories?post=912032"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/tags?post=912032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}