# Benchline > A quiet bench for exact work. Local developer tools, in the browser. Canonical site: https://benchline.fabwaseem.com MCP endpoint: https://benchline.fabwaseem.com/mcp OpenAPI: https://benchline.fabwaseem.com/openapi.json Connect instructions: https://benchline.fabwaseem.com/mcp ## Developer / Cron - [Cron expression builder](https://benchline.fabwaseem.com/t/cron-expression-builder): Build or paste a cron schedule, read it in plain English, and see the next run times. ## Developer / Next.js - [Next.js Dockerfile generator](https://benchline.fabwaseem.com/t/nextjs-dockerfile-generator): Generate a production multi-stage Dockerfile for Next.js, plus .dockerignore and compose. ## Developer / Fixtures - [Lorem ipsum](https://benchline.fabwaseem.com/t/lorem-ipsum): Placeholder copy, or fake rows as JSON, CSV, and SQL, from a seed. ## Developer / Regex - [Regex tester](https://benchline.fabwaseem.com/t/regex-tester): Test a JavaScript pattern, read the groups, and preview a replacement. ## Developer / Code - [Code Minifier](https://benchline.fabwaseem.com/t/code-minifier): Minify JavaScript, CSS, and HTML with byte-level savings. ## Data & Formats / JSON - [JSON formatter](https://benchline.fabwaseem.com/t/json-formatter): Pretty-print, minify, and validate JSON, with the exact line and column when it fails. - [JSON YAML converter](https://benchline.fabwaseem.com/t/json-yaml-convert): Convert JSON, YAML, TOML, and XML in the browser, and keep the line number when a document fails. - [JSON Schema](https://benchline.fabwaseem.com/t/json-schema-validate): Infer a schema from JSON, validate against one, and export TypeScript and Zod. - [JSONPath tester](https://benchline.fabwaseem.com/t/jsonpath-tester): Query JSON with JSONPath Plus and inspect every match. - [JSON to Types](https://benchline.fabwaseem.com/t/json-to-types): Paste JSON, get TypeScript, Zod, Pydantic, dataclass, and Go types. ## Data & Formats / Tables - [CSV JSON converter](https://benchline.fabwaseem.com/t/csv-json-convert): Convert CSV to JSON and JSON back to CSV, with a delimiter and a header row you choose. ## Data & Formats / Encoding - [Base64 codec](https://benchline.fabwaseem.com/t/base64-codec): Encode and decode Base64 for text or a file, including the URL-safe alphabet. - [Programmer calculator](https://benchline.fabwaseem.com/t/programmer-calculator): Base conversions, bitwise ops, and a clickable bit grid. - [ZIP Tools](https://benchline.fabwaseem.com/t/zip-tools): Create ZIP archives and extract them, entirely in your browser. ## Data & Formats / Markup - [Markdown HTML](https://benchline.fabwaseem.com/t/markdown-html): Convert Markdown to HTML, or HTML back to Markdown, with a live preview. ## Data & Formats / SQL - [SQL formatter](https://benchline.fabwaseem.com/t/sql-formatter): Format SQL for PostgreSQL, MySQL, BigQuery, Snowflake, and other dialects. ## SEO & AI Search / AI search - [llms.txt generator](https://benchline.fabwaseem.com/t/llms-txt-generator): Read a public sitemap and write an llms.txt index, plus an optional llms-full.txt. - [AI SEO checker](https://benchline.fabwaseem.com/t/ai-seo-checker): Score crawler access, llms.txt, structured data, and the on-page signals AI search uses. - [robots.txt checker](https://benchline.fabwaseem.com/t/robots-txt-checker): Read allow and disallow rules, sitemap links, and the mistakes that make a robots.txt file lie. - [Page to Markdown](https://benchline.fabwaseem.com/t/html-to-markdown-url): Fetch a public page and turn the article into Markdown. ## SEO & AI Search / SEO - [JSON-LD schema generator](https://benchline.fabwaseem.com/t/schema-generator): Fill a form, get valid schema.org JSON-LD for Article, FAQ, Product, Organization, and more. - [Sitemap validator](https://benchline.fabwaseem.com/t/sitemap-validator): Check a sitemap URL or XML, or generate a urlset from a list. ## SEO & AI Search / AI dev - [AI token counter](https://benchline.fabwaseem.com/t/ai-token-counter): Count tokens and estimate the API cost of a prompt for GPT, Claude, and Gemini models. ## SEO & AI Search / Social previews - [OG image generator](https://benchline.fabwaseem.com/t/og-image-generator): Pick a template, watch the card update, then download the PNG or copy the Next.js file. - [OG template list](https://benchline.fabwaseem.com/t/og-template-list): Browse Open Graph template ids, fields, and color presets. - [Meta tags inspector](https://benchline.fabwaseem.com/t/meta-tags-inspector): Read title, description, canonical, robots, Open Graph, Twitter, and JSON-LD types from one public URL. - [Social Image Resizer](https://benchline.fabwaseem.com/t/social-image-resizer): Fit any photo to the exact dimensions for Instagram, YouTube, X, LinkedIn, and Facebook — cropped to the subject you pick. - [Meme Generator](https://benchline.fabwaseem.com/t/meme-generator): Classic top/bottom caption memes from styles or your own images. ## Image & Media / Image - [Image format converter](https://benchline.fabwaseem.com/t/image-convert): Convert HEIC, WebP, PNG, JPG, and AVIF in the browser. Nothing is uploaded. - [Image compressor](https://benchline.fabwaseem.com/t/image-compress): Shrink JPEG, PNG, WebP, and AVIF in the browser, with the real before and after size. - [Image resizer](https://benchline.fabwaseem.com/t/image-resize): Resize by pixels or percent, with the aspect ratio locked and a batch ZIP. - [QR and barcode reader](https://benchline.fabwaseem.com/t/qr-code-reader): Read QR codes and barcodes from a photo, a paste, or the camera. - [SVG optimizer](https://benchline.fabwaseem.com/t/svg-optimizer): Minify an SVG, compare the size, and keep the viewBox unless you turn that off. - [EXIF viewer and remover](https://benchline.fabwaseem.com/t/exif-viewer-remover): Read photo metadata, including GPS, and strip all of it or only the location. - [Image cropper](https://benchline.fabwaseem.com/t/image-crop): Crop with a free box or an aspect preset, including a circle. - [Image to text](https://benchline.fabwaseem.com/t/ocr-image-to-text): Read the words in a picture. The OCR model downloads once and runs in this browser. - [Background remover](https://benchline.fabwaseem.com/t/background-remover): Cut out a portrait in the browser, or clear a solid backdrop without a download. - [Photo Collage](https://benchline.fabwaseem.com/t/photo-collage): Arrange photos into grid layouts and export high-res PNGs. ## Image & Media / Audio - [Audio Trimmer](https://benchline.fabwaseem.com/t/audio-trimmer): Cut a section out of an audio file. See the waveform, drag the trim region, add fades, and export WAV. ## PDF & Documents - [Merge PDF](https://benchline.fabwaseem.com/t/pdf-merge): Combine PDFs in the browser. Reorder them, keep a page range from each file, and download one document. - [Split PDF](https://benchline.fabwaseem.com/t/pdf-split): Extract a page range, or split a PDF into single pages or chunks, then download a PDF or a ZIP. - [Compress PDF](https://benchline.fabwaseem.com/t/pdf-compress): Shrink a PDF in the browser. Pick a preset or a target size and compare the file before and after. - [Image to PDF](https://benchline.fabwaseem.com/t/image-to-pdf): Turn JPG, PNG, and WebP images into one PDF. Set the page size, orientation, margin, and order. - [PDF to Text](https://benchline.fabwaseem.com/t/pdf-to-text): Read the selectable text of a PDF, with a markdown heading when the type is larger. - [Rotate PDF](https://benchline.fabwaseem.com/t/pdf-rotate-organize): Reorder, rotate, or drop pages, then download the PDF. - [PDF to Image](https://benchline.fabwaseem.com/t/pdf-to-image): Render PDF pages to PNG or JPEG, then download one image or a ZIP. - [Protect PDF](https://benchline.fabwaseem.com/t/pdf-protect-unlock): Add an AES password, or unlock a PDF when you already know the password. - [Resume Builder](https://benchline.fabwaseem.com/t/resume-builder): Build a polished resume in the browser: profile, experience, education, and skills, exported as a clean PDF. - [PDF Signature](https://benchline.fabwaseem.com/t/pdf-signature): Sign a PDF in the browser. Draw or type your signature, place it on any page, and download the signed file. - [PDF Form Filler](https://benchline.fabwaseem.com/t/pdf-form-filler): Fill interactive PDF forms in the browser and export. ## Security & Crypto / Auth debugging - [JWT decoder](https://benchline.fabwaseem.com/t/jwt-decoder): Paste a JSON Web Token, read the claims, and verify the signature in the browser. - [TOTP authenticator](https://benchline.fabwaseem.com/t/totp-generator): Live 2FA codes for your accounts, with otpauth:// import and QR export. ## Security & Crypto / Crypto - [Hash generator](https://benchline.fabwaseem.com/t/hash-generator): MD5, SHA-1, SHA-256, and SHA-512 checksums for text or a file, with HMAC. - [UUID generator](https://benchline.fabwaseem.com/t/uuid-generator): Generate UUID v4 or v7 in bulk, and read the time stored in a v7 id. - [Password generator](https://benchline.fabwaseem.com/t/password-generator): Cryptographic passwords and passphrases, with an entropy strength meter. - [Chmod calculator](https://benchline.fabwaseem.com/t/chmod-calculator): Turn a permission grid into octal and symbolic chmod, and back. - [Bcrypt hash](https://benchline.fabwaseem.com/t/htpasswd-bcrypt): Hash and verify passwords with bcrypt or argon2id. Nothing is stored. - [Key pair](https://benchline.fabwaseem.com/t/rsa-keypair): Generate RSA, EC, and Ed25519 keys, and convert PEM and JWK. - [AES encryption](https://benchline.fabwaseem.com/t/aes-crypto): AES-GCM encrypt and decrypt in the browser, nothing uploaded. ## Security & Crypto / Headers - [CSP builder](https://benchline.fabwaseem.com/t/csp-generator): Build a Content-Security-Policy and a Next.js headers snippet. ## Design - [Color converter](https://benchline.fabwaseem.com/t/color-converter): Turn any color into HEX, RGB, HSL, OKLCH, and CMYK, and check the contrast ratio. - [QR code generator](https://benchline.fabwaseem.com/t/qr-code-generator): Make a static QR code for text, a URL, Wi-Fi, or a vCard. Set the colors and error correction, then download SVG or PNG. - [Favicon generator](https://benchline.fabwaseem.com/t/favicon-generator): Make the ICO, the PNG sizes, the manifest, and the HTML snippet from a picture or letters. ## Text / Diff - [Diff checker](https://benchline.fabwaseem.com/t/diff-checker): Compare two texts side by side or inline, and download a unified patch. ## Text / Writing - [Word counter](https://benchline.fabwaseem.com/t/word-counter): Words, graphemes, reading time, and the limits a title or post has to fit. - [Case converter](https://benchline.fabwaseem.com/t/case-converter): camelCase, snake_case, and title case, including AP and Chicago rules. ## Math & Finance / Time - [Unix timestamp converter](https://benchline.fabwaseem.com/t/unix-timestamp): Turn epoch seconds or milliseconds into a date, and a date in any time zone back into epoch time. - [Date difference calculator](https://benchline.fabwaseem.com/t/date-difference): Count the days, weeks, and business days between two dates. ## Math & Finance / Finance - [Loan EMI calculator](https://benchline.fabwaseem.com/t/loan-emi-calculator): A monthly installment and the full amortization table, rounded to the cent. - [Percentage calculator](https://benchline.fabwaseem.com/t/percentage-calculator): Percent of, percent change, reverse percent, and margin, with the formula shown. - [Invoice Generator](https://benchline.fabwaseem.com/t/invoice-generator): Build invoices and quotes in the browser. Add line items, tax and discounts, then download a clean PDF. - [Currency Converter](https://benchline.fabwaseem.com/t/currency-converter): Live exchange rates, historical trends, and multi-currency tables. ## Math & Finance / Units - [Unit converter](https://benchline.fabwaseem.com/t/unit-converter): Length, mass, temperature, and data sizes, with decimal and binary units kept apart. ## Network / URLs - [URL encoder and parser](https://benchline.fabwaseem.com/t/url-codec): Encode or decode a URL, then break the query string into parameters. ## Network / DNS - [DNS lookup](https://benchline.fabwaseem.com/t/dns-lookup): Query A, AAAA, MX, TXT, CNAME, and CAA over DNS-over-HTTPS. ## Network / IP & subnets - [CIDR calculator](https://benchline.fabwaseem.com/t/ip-cidr-calculator): Network, broadcast, host range, and membership for IPv4 and IPv6. ## Network / HTTP - [HTTP headers](https://benchline.fabwaseem.com/t/http-headers-checker): Follow redirects and grade the security headers on a public URL. - [HAR analyzer](https://benchline.fabwaseem.com/t/har-analyzer): Drop a HAR capture, see where the time went. - [cURL Converter](https://benchline.fabwaseem.com/t/curl-converter): Turn any curl command into fetch, Python, Go, PHP, or Rust. - [GraphQL Client](https://benchline.fabwaseem.com/t/graphql-client): Query any GraphQL endpoint with variables, headers, and history. - [WebSocket Tester](https://benchline.fabwaseem.com/t/websocket-tester): Connect to any ws/wss endpoint and inspect live frames. ## Network / TLS - [SSL checker](https://benchline.fabwaseem.com/t/ssl-checker): Expiry, names, and the chain for a certificate on port 443. ## Agent tools - `generate_llms_txt` — Render llms.txt and llms-full.txt from a site name, a summary, and a list of pages. It does not crawl. Grouping follows the page URLs. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/llms-txt-generator. - `score_ai_seo` — Fetch a public page plus its robots.txt, sitemap, and llms.txt, then score how ready it is for AI search crawlers. Use this when you have a live URL. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/ai-seo-checker. This call fetches a public URL. - `build_open_graph` — Render one of the Open Graph templates as a PNG and a Next.js opengraph-image.tsx file. Pass a template id from list_og_templates, the fields that template uses, colors, a size, and optional base64 images. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/og-image-generator. - `list_og_templates` — List Open Graph card templates with ids, names, categories, defaults, color presets, and field schemas. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/og-template-list. - `decode_jwt` — Decode a signed JSON Web Token into its header, payload, and registered claims. Dates are absolute ISO timestamps. The signature is not checked. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/jwt-decoder. - `check_robots_txt` — Fetch a public robots.txt and report whether the wildcard group blocks the site and whether Sitemap lines are absolute. Use this when you have a URL, not a pasted file. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/robots-txt-checker. This call fetches a public URL. - `inspect_meta_tags` — Fetch one public HTML page and report title, description, canonical, Open Graph, Twitter, and JSON-LD. Use this to see what a live URL advertises. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/meta-tags-inspector. This call fetches a public URL. - `build_json_ld` — Build schema.org JSON-LD for one type, plus a script tag and a list of missing fields. Use this when you already know the fields. It does not fetch a page. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/schema-generator. - `count_tokens` — Count tokens with the o200k or cl100k encoder and price the count against the published model table. Claude and Gemini rows are estimates, not those vendors' tokenizers. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/ai-token-counter. - `explain_cron` — Turn a cron expression into English, the next UTC run times, and snippets for crontab, GitHub Actions, Vercel, Kubernetes, and node-cron. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/cron-expression-builder. - `build_nextjs_dockerfile` — Generate a production Dockerfile, dockerignore, compose file, and next.config snippet for a Next.js app. Defaults match a pnpm standalone image. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/nextjs-dockerfile-generator. - `format_json` — Pretty-print or minify JSON. A number that does not fit in a JavaScript number keeps the digits you sent. Returns the formatted text when it is valid, or the line and column of each syntax error. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/json-formatter. - `convert_data_format` — Convert between JSON, YAML, TOML, and XML. Auto-detects the source. Numbers that do not fit in a JavaScript number keep their digits. Errors include a line and column. TOML refuses null and a non-table root. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/json-yaml-convert. - `convert_csv_json` — Convert CSV to JSON or JSON to CSV. Supports comma, tab, semicolon, and pipe delimiters, an optional header, type inference, and dotted flattening. Inferred numbers that do not fit in a JavaScript number keep their digits. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/csv-json-convert. - `diff_text` — Compare two texts by line, word, or character, or compare JSON so object key order does not matter. Returns an inline diff, side-by-side rows for line and JSON modes, and a unified patch. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/diff-checker. - `base64_codec` — Encode UTF-8 text as Base64, or decode Base64 and data URIs. URL-safe output uses - and _ and omits padding. Decode reports the sniffed media type and whether the bytes are UTF-8 text. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/base64-codec. - `convert_image` — Convert an image to JPEG, PNG, WebP, or AVIF. Send base64 or a public URL. Private addresses are refused and the decoded file is capped at 10 MB. Returns the image as base64. HEIC is not decoded here. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/image-convert. This call fetches a public URL. - `compress_image` — Re-encode an image at a quality from 1 to 100, optionally capping the longest edge. Send base64 or a public URL. Private addresses are refused and the decoded file is capped at 10 MB. Returns the image as base64. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/image-compress. This call fetches a public URL. - `resize_image` — Resize an image by pixels or percent. Fit is contain, cover, or stretch. Send base64 or a public URL. Private addresses are refused and the decoded file is capped at 10 MB. Returns the image as base64. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/image-resize. This call fetches a public URL. - `convert_color` — Convert HEX, RGB, HSL, OKLCH, or CMYK into every format, name the nearest Tailwind token, and report the WCAG 2 contrast ratio against a background. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/color-converter. - `convert_unix_timestamp` — Convert epoch seconds, milliseconds, microseconds, or nanoseconds to ISO-8601 and RFC 2822 in an IANA time zone, or convert a calendar time back to epoch. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/unix-timestamp. - `date_difference` — Count calendar days, elapsed time, and business days between two dates. Business days skip weekends and any YYYY-MM-DD holidays you list. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/date-difference. - `hash_data` — Compute MD5, SHA-1, SHA-256, and SHA-512 for UTF-8 text or base64 bytes. Pass hmacKey for HMAC and expected to see which digest matches. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/hash-generator. - `generate_uuid` — Generate UUID version 4 or version 7 from cryptographic randomness, up to 10,000 at once, or inspect the version, variant, and v7 timestamp. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/uuid-generator. - `url_codec` — Percent-encode or decode text, or parse a URL into its host, path, hash, and query parameters. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/url-codec. - `generate_password` — Generate cryptographic passwords or EFF-wordlist passphrases and report the entropy in bits. Randomness comes from the platform CSPRNG. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/password-generator. - `explain_chmod` — Convert an octal or symbolic file mode into octal, symbolic notation, and a chmod command, including setuid, setgid, and the sticky bit. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/chmod-calculator. - `merge_pdf` — Combine PDF files. Each file is base64 or a public URL, and can keep a page range such as 1-3,5. Private addresses are refused. Returns one PDF as base64. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/pdf-merge. This call fetches a public URL. - `split_pdf` — Extract a page range into one PDF, or split into single pages or chunks of N. Send base64 or a public URL. Private addresses are refused. Returns PDF base64 and a ZIP when there are several files. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/pdf-split. This call fetches a public URL. - `compress_pdf` — Recompress embedded images in a PDF. Presets are light, medium, and strong. Send base64 or a public URL. Private addresses are refused. An optional target size tries harder. Returns the PDF and the sizes before and after. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/pdf-compress. This call fetches a public URL. - `images_to_pdf` — Turn images, sent as base64 or public URLs in order, into one PDF. JPEG and PNG are embedded directly. Other formats are converted to PNG first. Page size is A4, Letter, or fit. Private addresses are refused. Returns the PDF as base64. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/image-to-pdf. This call fetches a public URL. - `generate_qr_code` — Build a static QR code for text, a URL, Wi-Fi, or a vCard. Returns the payload, an SVG string, and a PNG as base64. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/qr-code-generator. - `extract_pdf_text` — Read the selectable text layer of a PDF. Returns per-page text, markdown-style headings, and an o200k token count. Does not OCR scans. Send base64 or a public URL. Private addresses are refused. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/pdf-to-text. This call fetches a public URL. - `organize_pdf` — Reorder, rotate, or drop PDF pages. Each entry names a 1-based source page and a rotation of 0, 90, 180, or 270. The same page may be listed twice. Send base64 or a public URL. Private addresses are refused. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/pdf-rotate-organize. This call fetches a public URL. - `render_pdf_pages` — Render PDF pages to PNG or JPEG. DPI is 72 to 216. A page range such as 1-3,5 is optional. At most 24 pages and 25 MB of images. Send base64 or a public URL. Private addresses are refused. Returns image base64 and a ZIP when there is more than one page. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/pdf-to-image. This call fetches a public URL. - `protect_pdf` — Protect a PDF with AES-256, or unlock one when the password is known. action is protect or unlock. password is the user password. ownerPassword is optional. permissions cover printing, copying, modifying, annotating, filling forms, accessibility, and assembly. Send base64 or a public URL. Private addresses are refused. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/pdf-protect-unlock. This call fetches a public URL. - `convert_markdown_html` — Convert GitHub-flavored Markdown to HTML, or HTML to Markdown. to is html or markdown. sanitize strips scripts from the text output. The conversion does not fetch a URL. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/markdown-html. - `fetch_page_markdown` — Fetch a public HTML page and return the article as Markdown, plus a title, excerpt, and o200k token count. Private and local addresses are refused. The response is capped at 800 KB. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/html-to-markdown-url. This call fetches a public URL. - `read_barcode` — Read QR codes and barcodes from an image. Send base64 or a public URL. Private addresses are refused and the decoded file is capped at 10 MB. Returns each code's text and format. An image with no code returns an empty list. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/qr-code-reader. This call fetches a public URL. - `optimize_svg` — Minify an SVG with SVGO. Send markup or a file as base64 or a public URL. Private addresses are refused and the file is capped at 10 MB. The viewBox is kept unless removeViewBox is true. Returns the optimized markup and the byte counts. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/svg-optimizer. This call fetches a public URL. - `read_exif` — Read EXIF tags, including GPS, or strip them. action is read or strip. scope is all or gps. gps-only removal keeps the other JPEG tags. Other formats are re-encoded, which drops every tag. Send base64 or a public URL. Private addresses are refused and the decoded file is capped at 10 MB. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/exif-viewer-remover. This call fetches a public URL. - `crop_image` — Crop an image to a pixel box or a 0 to 1 ratio box. circle cuts a round mask. format is png, jpeg, or webp. Send base64 or a public URL. Private addresses are refused and the decoded file is capped at 10 MB. Returns the image as base64. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/image-crop. This call fetches a public URL. - `generate_favicon` — Build a favicon pack from an image or up to three letters. The ZIP contains favicon.ico, PNG sizes, a web manifest, an HTML snippet, and a Next.js metadata snippet. Letters are drawn with a built-in bitmap font so the result does not depend on a system font. Send base64 or a public URL. Private addresses are refused and the decoded file is capped at 10 MB. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/favicon-generator. This call fetches a public URL. - `read_image_text` — Extract text from an image with Tesseract. language defaults to eng. Other codes in the list are fetched when first used. Send base64 or a public URL. Private addresses are refused and the decoded file is capped at 10 MB. Returns the text and a confidence from 0 to 100. An image with no text returns an empty string. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/ocr-image-to-text. This call fetches a public URL. - `remove_background` — Remove a solid or near-solid background by flood-filling from the border. color is an optional #rrggbb. The portrait model runs in the browser, not in this handler: MODNet is Apache-2.0, RMBG-1.4 is non-commercial, and the ONNX runtime is too large for the serverless function. Send base64 or a public URL. Private addresses are refused and the decoded file is capped at 10 MB. Returns a PNG as base64. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/background-remover. This call fetches a public URL. - `count_text` — Count words, code points, graphemes, sentences, and paragraphs, and compare the length with SEO and social limits. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/word-counter. - `convert_case` — Convert text to camelCase, snake_case, kebab-case, CONSTANT_CASE, and AP or Chicago title case. Returns every style unless one is requested. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/case-converter. - `generate_fake_data` — Generate seeded lorem ipsum, or fake JSON, CSV, or SQL rows from a list of field types. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/lorem-ipsum. - `test_regex` — Run a JavaScript regular expression against a sample and return every match, capture group, a short explanation, and an optional replacement. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/regex-tester. - `format_sql` — Format SQL for PostgreSQL, MySQL, BigQuery, Snowflake, and other dialects. Choose keyword case and an indent of 2 or 4 spaces. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/sql-formatter. - `validate_json_schema` — Infer a JSON Schema from a sample, or validate JSON against a schema. Returns error paths plus TypeScript and Zod generated from the sample. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/json-schema-validate. - `calculate_emi` — Calculate a reducing-balance loan installment and its amortization schedule. Money is rounded half up to cents. An optional extra monthly payment reduces principal. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/loan-emi-calculator. - `calculate_percentage` — Calculate percent of a value, what percent one number is of another, percent change, the reverse, an increase or decrease, and margin versus markup. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/percentage-calculator. - `convert_units` — Convert length, mass, volume, temperature, area, speed, time, and data size. Decimal bytes (kB, MB) and binary bytes (KiB, MiB) are separate categories. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/unit-converter. - `lookup_dns` — Query A, AAAA, MX, TXT, CNAME, and CAA for a public hostname over DNS-over-HTTPS, and parse SPF and DMARC. Private names are refused. The resolver is Cloudflare or Google. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/dns-lookup. This call fetches a public URL. - `calculate_cidr` — Return the network, broadcast, host range, and host count for an IPv4 or IPv6 CIDR. Optionally test whether an address is inside it, split it, or merge it with other CIDRs. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/ip-cidr-calculator. - `hash_password` — Hash a password with bcrypt or argon2id, or verify a hash. Returns an htpasswd line when a username is set. The password is not stored or logged. The page in the browser never sends the password; this call only hashes the arguments you send. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/htpasswd-bcrypt. - `generate_keypair` — Generate an RSA, EC, or Ed25519 key pair as PEM and JWK, or convert between PEM and JWK. The private key is returned in the result and is not stored. The page in the browser generates keys locally and does not send them. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/rsa-keypair. - `build_csp` — Build a Content-Security-Policy from directives, or lint an existing policy. Returns the header line, a Next.js headers() snippet, and warnings for unsafe sources. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/csp-generator. - `validate_sitemap` — Validate sitemap XML or a public sitemap URL, including a sitemap index and a sample of HTTP statuses. Or generate a urlset from a list of URLs. Private addresses are refused and responses are size-capped. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/sitemap-validator. This call fetches a public URL. - `check_http_headers` — Fetch a public URL, follow redirects, and grade HSTS, Content-Security-Policy, framing, nosniff, and Referrer-Policy. Private addresses are refused. The body is not stored. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/http-headers-checker. This call fetches a public URL. - `check_ssl` — Connect to a public host on port 443 and report certificate expiry, subject alternative names, protocol, and chain. Private addresses are refused. The handshake times out after 8 seconds. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/ssl-checker. This call fetches a public URL. - `generate_totp` — Compute RFC 4226/6238 one-time passcodes from a base32 secret. Supports 6/8 digits, SHA1/SHA256/SHA512, and custom periods. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/totp-generator. - `query_jsonpath` — Evaluate a JSONPath Plus query against a JSON document and return the matches with their paths. A number that does not fit in a JavaScript number is returned as its original digits, with a precision warning. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/jsonpath-tester. - `calculate_programmer` — Evaluate integer expressions with C-like precedence (hex/octal/binary literals, bitwise ops, shifts) and report base conversions plus signed/unsigned interpretations. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/programmer-calculator. - `aes_crypt` — AES-256-GCM encryption with PBKDF2-SHA256 key derivation. Encrypt returns a base64 bundle (salt, IV, ciphertext); decrypt reverses it. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/aes-crypto. - `analyze_har` — Parse a HAR (HTTP Archive) capture and summarize it: request counts, status distribution, slowest and largest requests, top hosts, and per-request timings. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/har-analyzer. - `convert_json_to_types` — Infer types from a JSON document and generate TypeScript interfaces, Zod schemas, Python Pydantic models or dataclasses, and Go structs. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/json-to-types. - `minify_code` — Minify source code with Terser (JS), csso (CSS), or a structural HTML pass and report before/after byte counts. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/code-minifier. - `convert_curl` — Parse a curl command and generate equivalent JavaScript fetch, Python requests, Go, PHP, or Rust code. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/curl-converter. - `execute_graphql` — Send a GraphQL query with optional variables and headers to a public http or https endpoint on port 80 or 443 and return the response data or errors. Local, private, and internal addresses are refused. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/graphql-client. This call fetches a public URL. - `validate_websocket_url` — Validate and parse a ws:// or wss:// URL into its components, and optionally decode a WebSocket close code. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/websocket-tester. - `generate_resume` — Build a resume PDF from profile, experience, education, and skills. A name plus at least one experience, education, or skills entry is required. Choose the clean, modern, or compact template. Returns the A4 PDF as base64. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/resume-builder. - `generate_invoice` — Build an invoice or quote PDF from company and client details, line items with quantities and rates, a tax rate, and an optional percent or flat discount. All money is computed in integer cents, so there are no float rounding errors. Returns the PDF as base64 plus the total. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/invoice-generator. - `sign_pdf` — Stamp a PNG signature image onto one or more PDF pages at given positions (fractions of the page, x and y measured from the top-left, width as a fraction of page width). The signature keeps its aspect ratio. Returns the signed PDF as base64. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/pdf-signature. This call fetches a public URL. - `resize_social_image` — Crop and resize an image to an exact social media preset: instagram-post (1080x1080), instagram-portrait (1080x1350), instagram-story (1080x1920), youtube-thumbnail (1280x720), x-post (1200x675), x-header (1500x500), linkedin-post (1200x627), or facebook-post (1200x630). The cover crop keeps the center subject. Send base64 or a public URL. Private addresses are refused and the decoded file is capped at 10 MB. Returns the image as base64 PNG. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/social-image-resizer. This call fetches a public URL. - `trim_audio` — Trim a WAV audio file to a time range with optional fade in and out, returning a 16-bit PCM WAV as base64. Only WAV is accepted; the web UI handles MP3/OGG/M4A. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/audio-trimmer. This call fetches a public URL. - `convert_currency` — Convert money between ISO 4217 currencies using live exchange rates from the Frankfurter API, fetched through the SSRF-safe outbound guard. Supports historical dates. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/currency-converter. This call fetches a public URL. - `generate_meme` — Render a classic top/bottom-caption meme as a PNG. Give it an image (base64, data URI, or public URL) or pick a gradient style, and it returns captioned meme artwork. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/meme-generator. This call fetches a public URL. - `zip_files` — Create a ZIP archive from files or list and extract the contents of a ZIP archive. Everything is handled in memory; no files are stored. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/zip-tools. This call fetches a public URL. - `make_collage` — Arrange up to 9 photos into a collage layout (duo, trio, focus, quad, six, nine) with a gap and background color, and get back a square PNG. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/photo-collage. This call fetches a public URL. - `fill_pdf_form` — Fill an interactive PDF form's text fields, checkboxes, dropdowns, and radios by field name, with an option to flatten the result. Pass inspectOnly to list the fields first. HTTP: POST https://benchline.fabwaseem.com/api/v1/tools/pdf-form-filler. This call fetches a public URL. ## Optional - [Explore](https://benchline.fabwaseem.com/explore): every tool, with search, category, and tag filters. - [Categories](https://benchline.fabwaseem.com/categories): the category index, with hue, description, and the top tools. - [About](https://benchline.fabwaseem.com/about): who built the bench and what stays in the browser. - [MCP](https://benchline.fabwaseem.com/mcp): Claude Desktop, Cursor, and VS Code setup. Browser GET returns the docs; clients POST JSON-RPC. - [AI access](https://benchline.fabwaseem.com/ai): the tool list, Cursor, Claude, and the HTTP API.