{"name":"Chris Vanek — Free Browser Tools","description":"Free utility tools. Some run server-side and expose a documented HTTP API you can call directly; the rest run entirely in the visitor's browser and must be driven through the UI.","homepage":"https://chrisvanek.com/tools","docs":"https://chrisvanek.com/llms.txt","automation":{"note":"For client-side tools, drive the page with a headless browser or the Claude-in-Chrome extension. Every /tools/* page exposes these stable data-testid hooks so you don't need to scrape the DOM.","testids":{"dropzone":"tool-dropzone","fileInput":"tool-file-input","submit":"tool-submit","password":"tool-password","download":"tool-download","reset":"tool-reset","result":"tool-result","error":"tool-error"},"flow":["Open the tool's \"url\".","Set the file on the element with [data-testid=\"tool-file-input\"].","Fill any inputs listed in the tool's \"uiInputs\" (e.g. a password) by their data-testid.","Click [data-testid=\"tool-submit\"].","Wait for [data-testid=\"tool-result\"] (or [data-testid=\"tool-error\"]).","Click [data-testid=\"tool-download\"] to save the output."]},"tools":[{"slug":"business-name-generator","title":"Business Name Generator","description":"Describe your business and get up to 20 AI brand-name ideas, each with a one-line rationale. Every name's .com is checked live against the domain registry, and the search keeps going batch after batch until it has the number you asked for. Also checks .com.au, .co.uk, .org and more.","url":"https://chrisvanek.com/tools/business-name-generator","processing":"server","uiInputs":[{"testid":"tool-prompt","label":"What the business does (required)","type":"textarea","required":true},{"testid":"tool-require-com","label":".com must be available (checkbox, on by default)","type":"checkbox","required":false},{"testid":"tool-min-length","label":"Minimum name length, 5–20 characters","type":"range","required":false},{"testid":"tool-max-length","label":"Maximum name length, 5–20 characters","type":"range","required":false},{"testid":"tool-count","label":"How many names to return (1–20)","type":"select","required":false}],"api":{"endpoint":"/api/tools/business-name-generator","method":"POST","accepts":["application/json"],"output":"application/json","summary":"POST JSON describing the business. Returns brand names with a one-sentence blurb and live domain-registration status for each. Set requireAvailable=true (default) to return only names whose .com is unregistered; minLength/maxLength (5–20) bound the name length; count is 1–20; tlds adds suffixes to check alongside .com (org, com.au, co.uk, io, ai, net, app, dev, xyz). One request searches until its time budget runs out: if the response has complete=false, call again with the same body plus the returned 'exclude' and 'tacticOffset' to resume the hunt where it left off.","bodyExample":{"prompt":"media monitoring platform like Meltwater or Streem","count":20,"minLength":5,"maxLength":12,"requireAvailable":true,"tlds":["com.au","io"]},"url":"https://chrisvanek.com/api/tools/business-name-generator","maxBytesHuman":null}},{"slug":"transparent-background","title":"Transparent Background","description":"Remove the background from any image and download a transparent PNG. AI-powered, keeps full original resolution.","url":"https://chrisvanek.com/tools/transparent-background","processing":"server","uiInputs":[],"api":{"endpoint":"/api/tools/remove-background","method":"POST","accepts":["image/png","image/jpeg","image/webp","multipart/form-data"],"fileField":"file","maxBytes":26214400,"output":"image/png","summary":"POST an image either as the raw request body (with its image/* Content-Type) or as multipart/form-data with the file in field 'file'. Returns a transparent PNG (image/png) at the original resolution.","url":"https://chrisvanek.com/api/tools/remove-background","maxBytesHuman":"25 MB"}},{"slug":"image-sampler","title":"Image Sampler","description":"Upload an image, describe the change you want, and compare AI variations from two models side by side — OpenAI's GPT-5 Image and Google's latest Gemini image model. Choose how many variations with a slider, and every result keeps the original image's exact dimensions.","url":"https://chrisvanek.com/tools/image-sampler","processing":"server","uiInputs":[{"testid":"tool-prompt","label":"What to change about the image (required)","type":"textarea","required":true},{"testid":"tool-count","label":"Number of variations to generate (1–8)","type":"range","required":false}],"api":{"endpoint":"/api/tools/image-sampler","method":"POST","accepts":["multipart/form-data"],"fileField":"file","maxBytes":26214400,"output":"application/json","summary":"POST multipart/form-data with the source image in field 'file', a 'prompt' describing the change, and optional 'count' (1–8, default 4) variations per model. Runs the edit through two models via OpenRouter — OpenAI's GPT-5 Image and Google's latest Gemini image model — each variation resized back to the source image's exact original dimensions. Returns JSON { width, height, groups: [{ key, label, model, images: [dataURL…] }], images: [dataURL…] } with base64 PNG data URLs; groups are ordered OpenAI first, then Google.","url":"https://chrisvanek.com/api/tools/image-sampler","maxBytesHuman":"25 MB"}},{"slug":"image-isolator","title":"Image Isolator","description":"Drop or paste a screenshot and instantly isolate the image inside it. Auto-detects the edges, shows a crop preview to confirm, then downloads a clean cut-out PNG. No upload — runs entirely in your browser.","url":"https://chrisvanek.com/tools/image-isolator","processing":"client","uiInputs":[],"api":null},{"slug":"image-compressor","title":"Image Compressor","description":"Compress PNG & JPG images with lossless or adjustable quality. No upload — runs entirely in your browser.","url":"https://chrisvanek.com/tools/image-compressor","processing":"client","uiInputs":[],"api":null},{"slug":"image-resizer","title":"Image Resizer","description":"Resize up to 20 images to any width & height at once, then download them all in one click. No upload — runs entirely in your browser.","url":"https://chrisvanek.com/tools/image-resizer","processing":"client","uiInputs":[],"api":null},{"slug":"image-upscaler","title":"Image Upscaler","description":"Upscale an image up to 4K. Fast mode runs entirely in your browser; optional AI mode uses Real-ESRGAN on a GPU server for real recovered detail.","url":"https://chrisvanek.com/tools/image-upscaler","processing":"client","uiInputs":[{"testid":"tool-engine","label":"Engine (fast = in-browser, ai = Real-ESRGAN on GPU server)","type":"select","required":false},{"testid":"tool-resolution","label":"Target size (720 / 1080 / 1440 / 2160 long-edge presets)","type":"select","required":false},{"testid":"tool-sharpen","label":"Sharpen strength (off / subtle / strong) — fast engine only","type":"select","required":false},{"testid":"tool-ai-model","label":"AI model (photo / anime / video) — ai engine only","type":"select","required":false}],"api":null},{"slug":"drawing-canvas","title":"Drawing Canvas","description":"Draw quick, stylised sketches with smooth ink brushes. Pick a canvas ratio and size, then export as PNG. Runs entirely in your browser.","url":"https://chrisvanek.com/tools/drawing-canvas","processing":"client","uiInputs":[],"api":null},{"slug":"video-upscaler","title":"Video Upscaler","description":"Upscale a video to 720p, 1080p, 2K or 4K. Fast mode runs entirely in your browser; optional AI mode uses Real-ESRGAN on a GPU server for real recovered detail.","url":"https://chrisvanek.com/tools/video-upscaler","processing":"client","uiInputs":[{"testid":"tool-engine","label":"Engine (fast = in-browser, ai = Real-ESRGAN on GPU server)","type":"select","required":false},{"testid":"tool-resolution","label":"Target resolution (720 / 1080 / 1440 / 2160)","type":"select","required":false},{"testid":"tool-sharpen","label":"Sharpen strength (off / subtle / strong) — fast engine only","type":"select","required":false},{"testid":"tool-ai-model","label":"AI model (photo / video / anime) — ai engine only","type":"select","required":false}],"api":null},{"slug":"video-fps-converter","title":"Video FPS Converter","description":"Increase a video's frame rate to 48, 60 or 120 fps with frame interpolation for smoother motion. No upload — runs entirely in your browser.","url":"https://chrisvanek.com/tools/video-fps-converter","processing":"client","uiInputs":[{"testid":"tool-fps","label":"Target frame rate (24 / 30 / 48 / 60 / 120)","type":"select","required":false},{"testid":"tool-method","label":"Interpolation method (blend / dup)","type":"select","required":false}],"api":null},{"slug":"pdf-editor","title":"PDF Editor","description":"Edit PDFs in your browser: click existing text to change it while preserving font style, OCR scanned pages, add text & whiteouts, sign documents, add or remove a password, then export. No upload — runs entirely on your device.","url":"https://chrisvanek.com/tools/pdf-editor","processing":"client","uiInputs":[{"testid":"tool-password","label":"Open password (only if the PDF is encrypted)","type":"password","required":false},{"testid":"tool-export-password","label":"Export password (set to password-protect the download)","type":"password","required":false}],"api":null},{"slug":"unlock-pdf","title":"Unlock PDF","description":"Remove password protection from a PDF. Enter the password once, download it unlocked. No upload — runs in your browser.","url":"https://chrisvanek.com/tools/unlock-pdf","processing":"client","uiInputs":[{"testid":"tool-password","label":"PDF password","type":"password","required":true}],"api":null},{"slug":"compress-pdf","title":"Compress PDF","description":"Reduce PDF file size by optimizing its internal structure. Lossless — no quality loss. No upload — runs in your browser.","url":"https://chrisvanek.com/tools/compress-pdf","processing":"client","uiInputs":[],"api":null}]}