Case Converter for Code
Convert any identifier between camelCase, PascalCase, snake_case, SCREAMING_SNAKE, kebab-case, and 7 more cases. Auto-detects the input. Runs in your browser.
camelCase
JavaScript / TypeScript variables, JSON keys, Java methods
—PascalCase
Class names, React components, type names
—snake_case
Python variables, database columns, Rust identifiers
—SCREAMING_SNAKE_CASE
Constants, environment variables, enum values
—kebab-case
URL slugs, CSS classes, HTML attributes
—TRAIN-CASE
HTTP headers (e.g. Content-Type)
—dot.case
i18n keys, lodash paths, version segments
—path/case
URL paths, file paths, namespaces
—Title Case
Headings, book titles, table column labels
—Sentence case
Prose, UI copy
—lower case
All lowercase, space separated
—UPPER CASE
All uppercase, space separated
—How to convert between code cases
Paste any identifier — a variable name, a database column, an HTTP header, a slug, a JSON key, anything. ToolChop inserts word boundaries at the right places (uppercase-after-lowercase, runs of uppercase followed by lower,_ / - / . / / separators, whitespace), normalizes to lowercase words, and renders 12 case variants in their own panels. Each panel has a one-click Copy button.
Why a local case converter matters
The identifiers devs paste into case converters are often part of a product's internal surface area: database column names, schema field names, queue topic names, internal API fields, environment variables. Those names reveal architecture. ToolChop runs the converter entirely in your browser so the identifiers stay on your machine.
The 12 cases — when to use which
- camelCase — JS/TS variables, JSON keys, Java methods.
- PascalCase — class names, React components, type names.
- snake_case — Python, Rust, SQL identifiers.
- SCREAMING_SNAKE_CASE — constants, env vars, enum values.
- kebab-case — URL slugs, CSS classes, HTML attributes.
- TRAIN-CASE — HTTP headers (Content-Type, X-Request-ID).
- dot.case — i18n keys, lodash paths, version segments.
- path/case — URL paths, file paths, namespaces.
- Title Case, Sentence case, lower case, UPPER CASE — prose / display.
Frequently asked questions
How do I convert an identifier between code cases online?
Paste any identifier into the Input box — ToolChop auto-detects the source case (camelCase, snake_case, kebab-case, mixed, anything). All 12 case variants render in their own panels with Copy buttons. No account, no upload, no daily limit.
Does ToolChop send my code to a server?
No. Tokenization and case conversion run entirely in your browser. The identifiers you paste — often database column names, internal API field names, customer-facing key paths — never leave your device.
Why is the privacy story for a case converter important?
Devs paste real code identifiers into case converters all the time: internal table names, customer-facing JSON schemas, undocumented API field names, employee directory columns. Those identifiers are part of your product's surface area and often hint at internal architecture. Uploading them to a third-party converter is a needless information leak.
What cases does ToolChop output?
camelCase, PascalCase, snake_case, SCREAMING_SNAKE_CASE, kebab-case, TRAIN-CASE, dot.case, path/case, Title Case, Sentence case, lower case, and UPPER CASE — 12 variants in one screen. Every panel includes a short note about where each case is conventionally used (e.g. SCREAMING_SNAKE for env vars and enum values).
How does ToolChop tokenize the input?
It inserts word boundaries before uppercase-after-lowercase transitions (helloWorld → hello World), splits sequences of uppercase letters followed by a lowercase one (HTTPServer → HTTP Server), and treats _, -, ., /, \, and whitespace as separators. The parsed words are shown below the input so you can verify the tokenization.
Does it handle acronyms like 'HTTP' or 'API' correctly?
Yes. The tokenizer treats runs of uppercase letters as a single word when the next character is uppercase (HTTPServer → HTTP / Server), so the resulting camelCase becomes httpServer, the resulting snake_case becomes http_server, and the resulting Title Case becomes Http Server. If you prefer to keep acronyms uppercase, copy from PascalCase and adjust manually.
What is the difference between camelCase and PascalCase?
camelCase keeps the first word lowercase (customerOrderTotal); PascalCase capitalizes every word including the first (CustomerOrderTotal). camelCase is the convention for variables, function names, JSON keys. PascalCase is the convention for class names, React components, type names.
When should I use kebab-case vs snake_case?
kebab-case for anything that lives in a URL (slugs, CSS classes, HTML data attributes, file names on case-insensitive filesystems) — hyphens are SEO-friendly and never need escaping. snake_case for code identifiers in Python, Rust, SQL — underscores are valid identifier characters in those languages, hyphens are not.
What is TRAIN-CASE used for?
HTTP header names — Content-Type, X-Request-ID, Cache-Control. Each word is capitalized and hyphen-separated. RFC 7230 says HTTP headers are case-insensitive in practice, but Train-Case is the convention almost everyone follows in spec text and documentation.
Can I convert prose, not just identifiers?
Yes, but for plain prose (sentences, headings) our text-case-converter is better — it targets UPPER / lower / Title / Sentence at a sentence level rather than per-word for identifiers. Use this tool when the input is a code identifier or schema key.
Does it preserve digits and special characters?
Digits are preserved in their token. Special characters other than separators (_, -, ., /, \) are stripped during tokenization. If you need to preserve them, the output you get will treat them as part of the surrounding word — usually what you want for identifiers but not always.
Why use ToolChop instead of an online case converter that uploads my code?
Privacy. Code identifiers often reveal internal architecture — column names, table names, queue topics, internal API fields. ToolChop runs the converter entirely in your browser, so the identifiers stay on your machine. You can verify in DevTools → Network that no request fires when you type.