{"ok":true,"site":{"host":"devtils-one.vercel.app","url":"https://devtils-one.vercel.app/","type":"live","desc":"Format JSON, convert cases, encode Base64, test regex, and convert colors. Fast, keyboard-first, and beautifully designed — every tool runs in your browser.","tools":[{"name":"json_to_typescript","kind":"act","impl":"imperative","description":"Convert a JSON sample to TypeScript interfaces / types. Infers optional fields, named subtypes, and format hints (date-time, uuid, email).","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string","description":"JSON to convert."},"rootName":{"type":"string","default":"Root"},"declarationStyle":{"type":"string","enum":["interface","type"],"default":"interface"},"readonly":{"type":"boolean","default":false},"childrenFirst":{"type":"boolean","default":true}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"json_to_zod","kind":"act","impl":"imperative","description":"Convert a JSON sample to a Zod schema with z.infer type alias. Surfaces format refinements (.email, .uuid, .datetime).","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string"},"rootName":{"type":"string","default":"root"},"strict":{"type":"boolean","default":false},"applyFormatRefinements":{"type":"boolean","default":true}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"json_to_go","kind":"act","impl":"imperative","description":"Convert a JSON sample to Go struct definitions with json tags. Optional fields get pointer-with-omitempty.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string"},"packageName":{"type":"string","default":"main"},"jsonTagStyle":{"type":"string","enum":["original","snake","camel"],"default":"original"},"omitemptyOnOptional":{"type":"boolean","default":true}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"json_to_python","kind":"act","impl":"imperative","description":"Convert a JSON sample to Python dataclasses, TypedDicts, or Pydantic v2 BaseModel classes.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string"},"classKind":{"type":"string","enum":["dataclass","typeddict","pydantic"],"default":"dataclass"},"useSlots":{"type":"boolean","default":false}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"json_to_rust","kind":"act","impl":"imperative","description":"Convert a JSON sample to Rust serde structs with snake_case fields and Option<T> for optional / nullable.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string"},"extraDerives":{"type":"array","items":{"type":"string"}},"denyUnknownFields":{"type":"boolean","default":false}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"json_to_csv","kind":"act","impl":"imperative","description":"Convert a JSON array of objects to CSV. Configurable delimiter, dot-flattening for nested objects, header row, BOM, CRLF.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string","description":"JSON array of objects."},"delimiter":{"type":"string","default":","},"flattenDelimiter":{"type":"string","default":"."},"includeHeader":{"type":"boolean","default":true},"bom":{"type":"boolean","default":false},"crlf":{"type":"boolean","default":false}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"json_to_yaml","kind":"act","impl":"imperative","description":"Convert JSON to YAML with configurable indent, line width, and key sorting.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string"},"indent":{"type":"integer","default":2},"lineWidth":{"type":"integer","default":120},"sortKeys":{"type":"boolean","default":false}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"json_to_xml","kind":"act","impl":"imperative","description":"Convert any JSON value to XML with custom root tag, item tag for arrays, and XML declaration.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string"},"rootTag":{"type":"string","default":"root"},"itemTag":{"type":"string","default":"item"},"declaration":{"type":"boolean","default":true}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"json_to_schema","kind":"act","impl":"imperative","description":"Infer a JSON Schema (draft 2020-12 or draft-07) from any sample document.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string"},"draft":{"type":"string","enum":["2020-12","draft-07"],"default":"2020-12"}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"base64_encode","kind":"act","impl":"imperative","description":"Encode a UTF-8 string to Base64. Supports standard or URL-safe variants.","inputSchema":{"type":"object","required":["input"],"properties":{"input":{"type":"string"},"variant":{"type":"string","enum":["standard","url-safe"],"default":"standard"}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"base64_decode","kind":"act","impl":"imperative","description":"Decode a Base64 string to its original UTF-8 text. Auto-detects standard vs URL-safe.","inputSchema":{"type":"object","required":["input"],"properties":{"input":{"type":"string"},"variant":{"type":"string","enum":["standard","url-safe"],"default":"standard"}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"jwt_decode","kind":"answer","impl":"imperative","description":"Decode a JWT into its header and payload. Does NOT verify the signature.","inputSchema":{"type":"object","required":["token"],"properties":{"token":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"text_case_convert","kind":"act","impl":"imperative","description":"Convert text between case formats (camelCase, snake_case, kebab-case, PascalCase, SCREAMING_SNAKE, Title Case, sentence case, and more).","inputSchema":{"type":"object","required":["input","target"],"properties":{"input":{"type":"string"},"target":{"type":"string","description":"Target case id — one of: upper, lower, title, sentence, camel, pascal, snake, kebab, screamingSnake, dot, train, cobol, path, toggle, alternating","enum":["upper","lower","title","sentence","camel","pascal","snake","kebab","screamingSnake","dot","train","cobol","path","toggle","alternating"]}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"code_format","kind":"act","impl":"imperative","description":"Format source code with Prettier. Supports JavaScript, TypeScript, JSX, TSX, JSON, JSON5, CSS, SCSS, Less, HTML, Vue, Markdown, YAML, and GraphQL.","inputSchema":{"type":"object","required":["code","language"],"properties":{"code":{"type":"string","description":"Source code to format."},"language":{"type":"string","enum":["javascript","typescript","jsx","tsx","flow","json","json5","jsonc","css","scss","less","html","vue","angular","handlebars","markdown","mdx","yaml","graphql"],"description":"Language id — one of: javascript, typescript, jsx, tsx, flow, json, json5, jsonc, css, scss, less, html, vue, angular, handlebars, markdown, mdx, yaml, graphql"},"tabWidth":{"type":"integer","default":2},"useTabs":{"type":"boolean","default":false},"printWidth":{"type":"integer","default":80},"semi":{"type":"boolean","default":true},"singleQuote":{"type":"boolean","default":false},"trailingComma":{"type":"string","enum":["all","es5","none"],"default":"all"},"bracketSpacing":{"type":"boolean","default":true},"arrowParens":{"type":"string","enum":["always","avoid"],"default":"always"}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"xml_format","kind":"act","impl":"imperative","description":"Format, minify, or convert XML to JSON. Auto-detects flavor (SVG, SOAP, RSS, Atom, POM, Android) from the root element. Set `mode: 'json'` to receive the XML-as-JSON conversion instead of formatted XML.","inputSchema":{"type":"object","required":["xml"],"properties":{"xml":{"type":"string","description":"XML source."},"mode":{"type":"string","enum":["format","minify","json"],"default":"format"},"flavor":{"type":"string","enum":["auto","generic","svg","soap","rss","atom","pom","android"],"default":"auto","description":"auto picks SVG / SOAP / RSS / Atom / POM / Android from the root element."},"indent":{"type":"integer","default":2},"useTab":{"type":"boolean","default":false},"selfClosing":{"type":"string","enum":["preserve","expand","compact"],"default":"compact"},"keepComments":{"type":"boolean","default":false},"sortAttributes":{"type":"boolean","default":false},"stripNamespaces":{"type":"boolean","default":false},"declaration":{"type":"string","enum":["preserve","strip","add"],"default":"preserve"}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"sql_format","kind":"act","impl":"imperative","description":"Format a SQL query with dialect-aware indentation. Dialects: sql, postgresql, mysql, mariadb, sqlite, transactsql, plsql, bigquery, snowflake, redshift. Options control keyword case, indent, line width, leading-comma style, and AND/OR placement.","inputSchema":{"type":"object","required":["sql","dialect"],"properties":{"sql":{"type":"string","description":"SQL source to format."},"dialect":{"type":"string","enum":["sql","postgresql","mysql","mariadb","sqlite","transactsql","plsql","bigquery","snowflake","redshift"],"description":"SQL dialect — picks parser variant."},"tabWidth":{"type":"integer","default":2},"useTabs":{"type":"boolean","default":false},"keywordCase":{"type":"string","enum":["preserve","upper","lower"],"default":"upper"},"identifierCase":{"type":"string","enum":["preserve","upper","lower"],"default":"preserve"},"functionCase":{"type":"string","enum":["preserve","upper","lower"],"default":"preserve"},"dataTypeCase":{"type":"string","enum":["preserve","upper","lower"],"default":"upper"},"expressionWidth":{"type":"integer","default":50},"linesBetweenQueries":{"type":"integer","default":1},"logicalOperatorNewline":{"type":"string","enum":["before","after"],"default":"before"},"leadingComma":{"type":"boolean","default":false},"newlineBeforeSemicolon":{"type":"boolean","default":false}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"diff_text","kind":"act","impl":"imperative","description":"Compare two text blocks and return a unified-diff patch (git-style). Configurable whitespace and case sensitivity. Optionally returns a structured JSON shape with hunks + stats instead of the patch text.","inputSchema":{"type":"object","required":["left","right"],"properties":{"left":{"type":"string","description":"Original / 'a' side of the diff."},"right":{"type":"string","description":"Changed / 'b' side of the diff."},"ignoreTrailingWhitespace":{"type":"boolean","default":true},"ignoreWhitespace":{"type":"boolean","default":false},"ignoreCase":{"type":"boolean","default":false},"format":{"type":"string","enum":["unified","structured"],"default":"unified","description":"'unified' returns a git-style patch string; 'structured' returns JSON with stats + hunks for programmatic consumers."},"leftLabel":{"type":"string","description":"Optional filename for the `--- a/<label>` preamble."},"rightLabel":{"type":"string","description":"Optional filename for the `+++ b/<label>` preamble."}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"timestamp_convert","kind":"act","impl":"imperative","description":"Parse a Unix timestamp (seconds/ms/µs) or ISO 8601 string and return every common representation: ISO, RFC 2822, Unix s/ms/µs.","inputSchema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","description":"Unix timestamp or ISO 8601 string."},"timezone":{"type":"string","description":"IANA timezone name (e.g. 'Europe/London'). Defaults to UTC.","default":"UTC"}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"utilyx_list_tools","kind":"answer","impl":"imperative","description":"List every tool the site provides — slug, name, category, and human description. Use this to discover what's available before navigating or invoking.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"utilyx_goto_tool","kind":"act","impl":"imperative","description":"Navigate the user to a specific site tool page in the same tab. Pass the tool slug (e.g. 'json-to-typescript'). Use utilyx_list_tools to discover slugs.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","description":"Tool slug, kebab-case."}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]},{"name":"utilyx_set_theme","kind":"act","impl":"imperative","description":"Set the site theme. Accepts 'light', 'dark', or 'system' (follow OS preference).","inputSchema":{"type":"object","required":["theme"],"properties":{"theme":{"type":"string","enum":["light","dark","system"]}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/tools","/tools/json-formatter","/tools/base64","/tools/json-to-typescript","/tools/color-converter"]}],"category":"Developer Tools","favicon":"/favicons/devtils-one.vercel.app.ico","apiSurface":"polyfill","toolCount":21}}