{
  "name": "Privaku tools",
  "version": "1.1.0",
  "description": "Free tools made in Japan by Privaku (Tokyo) that run in the user's browser. Files are never uploaded; there is no server API.",
  "privacy": "client-side only",
  "docs": "https://privaku.com/tools/agents/",
  "invoke": "window.privakuTools.run(tool, fileOrFiles, options) or run(tool, {files, ...options}) on any /tools/ page; window.privakuTools.inspect(file) returns metadata groups",
  "url_params": "Options can be preset with URL parameters, e.g. ?remove=gps,xmp, ?lang=jpn, ?maxKB=200, ?blurFaces=true",
  "tools": [
    {
      "name": "translate",
      "title": "Translate photos, PDFs, Office files and video",
      "description": "Free offline translator: text, photos, PDFs, Word, Excel, PowerPoint, subtitles/video. 100% on-device; never uploaded.",
      "url": "https://privaku.com/tools/translate/",
      "agent_url": "https://privaku.com/tools/translate/?agent=1",
      "js": "await window.privaku.translate.run('おはようございます', {to:'en'})  // or run(file, {to:'ja'})",
      "inputSchema": {
        "type": "object",
        "properties": {
          "input": {
            "description": "string, {text}, or File/Blob (image, pdf, docx, xlsx, pptx, txt, video)"
          },
          "to": {
            "type": "string",
            "enum": [
              "en",
              "ja",
              "es",
              "zh",
              "ko",
              "de",
              "fr",
              "hi",
              "or"
            ]
          },
          "from": {
            "type": "string",
            "description": "optional; auto-detected"
          },
          "dataUrl": {
            "type": "boolean",
            "default": true
          }
        },
        "required": [
          "input",
          "to"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "boolean"
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "from": {
                  "type": "string"
                },
                "to": {
                  "type": "string"
                },
                "text": {
                  "type": "string"
                },
                "output": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    {
      "name": "photo-privacy-check",
      "title": "Photo privacy check",
      "description": "Free photo privacy check: see if a photo leaks your location, device, date or faces, spot AI and Content Credentials signals, then download a clean copy. Runs on your device; never uploaded.",
      "url": "https://privaku.com/tools/photo-privacy-check/",
      "inputSchema": {
        "type": "object",
        "properties": {
          "files": {
            "type": "array",
            "items": {
              "type": "File"
            }
          },
          "blurFaces": {
            "type": "boolean",
            "default": false
          },
          "detectFaces": {
            "type": "boolean",
            "default": true
          },
          "shareCard": {
            "type": "boolean",
            "default": false
          }
        },
        "required": [
          "files"
        ]
      },
      "output": "[{name, score, level, leaks, location:{lat,lon,altitude}|null, device:{make,model,lens,software,serial,owner}, date, faces:[{x,y,w,h,score}], aiSignals:[{kind,text}], blob, cleanName, card?}]",
      "accepts": [
        "image/jpeg",
        "image/png",
        "image/webp"
      ],
      "agent_url": "https://privaku.com/tools/photo-privacy-check/?agent=1",
      "js": "await window.privaku['photo-privacy-check'].run(file, options)"
    },
    {
      "name": "remove-photo-location",
      "title": "Remove location and metadata from photos",
      "description": "Free tool to remove GPS location, camera and EXIF metadata from JPEG, PNG and WebP photos. Runs on your device in your browser, so the photo is never uploaded.",
      "url": "https://privaku.com/tools/remove-photo-location/",
      "inputSchema": {
        "type": "object",
        "properties": {
          "files": {
            "type": "array",
            "items": {
              "type": "File"
            }
          },
          "remove": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "gps",
                "exif",
                "xmp",
                "iptc",
                "icc",
                "comment",
                "c2pa"
              ]
            },
            "description": "Groups to remove losslessly (JPEG/PNG). Omit to strip everything by re-encoding."
          },
          "quality": {
            "type": "number",
            "default": 0.95
          }
        },
        "required": [
          "files"
        ]
      },
      "output": "[{name, blob, mode:'lossless'|'reencode', removed, before, after, groupsAfter?}]",
      "accepts": [
        "image/jpeg",
        "image/png",
        "image/webp"
      ],
      "agent_url": "https://privaku.com/tools/remove-photo-location/?agent=1",
      "js": "await window.privaku['remove-photo-location'].run(file, options)"
    },
    {
      "name": "screenshot-to-text",
      "title": "Screenshot to text (English, Japanese, Hindi, Spanish, Portuguese, Indonesian, French, German)",
      "description": "Free image to text tool. Copy text out of screenshots and photos in English, 日本語, हिन्दी, Español, Português, Bahasa Indonesia, Français or Deutsch. OCR runs on your device in your browser; nothing is uploaded.",
      "url": "https://privaku.com/tools/screenshot-to-text/",
      "inputSchema": {
        "type": "object",
        "properties": {
          "files": {
            "type": "array",
            "items": {
              "type": "File"
            }
          },
          "lang": {
            "type": "string",
            "enum": [
              "eng",
              "jpn",
              "hin",
              "spa",
              "por",
              "ind",
              "fra",
              "deu",
              "eng+jpn",
              "eng+hin",
              "eng+spa",
              "eng+por",
              "eng+ind",
              "eng+fra",
              "eng+deu"
            ],
            "default": "eng"
          }
        },
        "required": [
          "files"
        ]
      },
      "output": "[{name, text, confidence}]",
      "accepts": [
        "image/jpeg",
        "image/png",
        "image/webp"
      ],
      "agent_url": "https://privaku.com/tools/screenshot-to-text/?agent=1",
      "js": "await window.privaku['screenshot-to-text'].run(file, options)"
    },
    {
      "name": "reduce-photo-size",
      "title": "Reduce photo size",
      "description": "Free photo compressor. Reduce image size in KB or MB for email and online forms. JPEG, PNG and WebP. Runs on your device in your browser; the photo is never uploaded.",
      "url": "https://privaku.com/tools/reduce-photo-size/",
      "inputSchema": {
        "type": "object",
        "properties": {
          "files": {
            "type": "array",
            "items": {
              "type": "File"
            }
          },
          "maxEdge": {
            "type": "number",
            "default": 2048
          },
          "quality": {
            "type": "number",
            "default": 0.8
          },
          "maxKB": {
            "type": "number"
          }
        },
        "required": [
          "files"
        ]
      },
      "output": "[{name, blob, beforeBytes, afterBytes, width, height}]",
      "accepts": [
        "image/jpeg",
        "image/png",
        "image/webp"
      ],
      "agent_url": "https://privaku.com/tools/reduce-photo-size/?agent=1",
      "js": "await window.privaku['reduce-photo-size'].run(file, options)"
    },
    {
      "name": "image-to-pdf",
      "title": "Image to PDF and merge PDF",
      "description": "Free tool to convert JPG, PNG and WebP images to PDF and merge PDF files in your browser. Runs on your device, so your documents are never uploaded.",
      "url": "https://privaku.com/tools/image-to-pdf/",
      "inputSchema": {
        "type": "object",
        "properties": {
          "files": {
            "type": "array",
            "items": {
              "type": "File"
            }
          },
          "name": {
            "type": "string",
            "default": "privaku"
          }
        },
        "required": [
          "files"
        ]
      },
      "output": "[{name, blob, pages}]",
      "accepts": [
        "image/jpeg",
        "image/png",
        "image/webp",
        "application/pdf"
      ],
      "agent_url": "https://privaku.com/tools/image-to-pdf/?agent=1",
      "js": "await window.privaku['image-to-pdf'].run(file, options)"
    }
  ],
  "inspect": {
    "call": "window.privakuTools.inspect(file)",
    "output": "{name, format, bytes, groups:{gps:{present,lat,lon}, exif:{present,make,model,lens,software,date,serial}, xmp, iptc, icc, comment, c2pa}, removable}"
  },
  "webmcp": "Each tool page registers its tool with document.modelContext.registerTool where supported",
  "coming_soon": {
    "npm": "@privaku/tools (built, not yet published)",
    "mcp": "privaku-tools-mcp stdio server (built, not yet published)",
    "mcp_tools": [
      "inspect_metadata",
      "remove_metadata",
      "photo_privacy_check",
      "screenshot_to_text",
      "reduce_photo_size",
      "image_to_pdf"
    ]
  },
  "madeIn": "JP",
  "locales": {
    "indexed": [
      "en"
    ],
    "inReview": [
      "ja",
      "hi",
      "es",
      "pt-BR",
      "id",
      "fr",
      "de"
    ],
    "urlPattern": "https://privaku.com/{locale-lowercase}/tools/{tool}/",
    "note": "Localized pages run the same tools and accept the same URL parameters and window.privakuTools API. In-review locales are noindex until native review."
  },
  "agent_mode": {
    "js_api": "await window.privaku.<tool>.run(input, options) on that tool's page. Tool keys use the tool id, e.g. window.privaku['photo-privacy-check'].run(file). Every page also exposes all tools in tools.js.",
    "returns": {
      "ok": "boolean",
      "tool": "string",
      "onDevice": true,
      "uploaded": false,
      "ms": "number",
      "results": "array of plain JSON objects; any output file is {output:{name,type,bytes,dataUrl}}",
      "error": "string when ok=false"
    },
    "options_common": {
      "dataUrl": "boolean, default true: include output files as data: URLs"
    },
    "headless": "Open the tool URL with ?agent=1: page chrome is hidden and these hooks appear: [data-testid=agent-panel], [data-testid=agent-status] (ready|done|error), [data-testid=agent-result] (JSON of the last run), and the file input gets data-testid=agent-input (translate: file-input). Other URL options still apply.",
    "privacy": "All processing is in the agent's own browser. No server API, no uploads."
  }
}