About the Snake Case Converter
Zyff's snake case converter rewrites a name into snake_case, and into the other identifier conventions from the same box: camelCase, PascalCase, kebab-case, CONSTANT_CASE, Train-Case, COBOL-CASE, dot.case and path/case. The useful part is that it re-segments the words first, so it does not matter what the input looked like — getUserID, get-user-id, GET USER ID and Get User ID all become get_user_id. Which convention you want is decided by the language, not by taste: PEP 8 specifies snake_case for Python functions and variables, Go uses MixedCaps, Rust uses snake_case for functions and UpperCamelCase for types, and SQL and most filesystems favour snake_case or kebab-case.
How to convert a name to snake_case
Paste the names
One per line for a batch. Any existing convention works as input — the converter splits on case changes, spaces, hyphens, underscores and dots before it rebuilds the name.
Pick the target convention
snake_case is preset. camelCase, PascalCase, kebab-case, CONSTANT_CASE, Train-Case, COBOL-CASE, dot.case and path/case are one click away, and each option's hint says what it is conventionally used for.
Copy the result
Each input line comes back as its own converted line, so a column of field names converts in one pass.
What the Snake Case Converter does
Re-segments before rebuilding
getUserID, get-user-id and GET USER ID all resolve to the same word list first, so conversion between any two conventions works rather than only from spaced words.
Nine identifier conventions
snake, camel, Pascal, kebab, CONSTANT, Train, COBOL, dot and path — including the ones that only come up in HTTP headers and config keys.
Acronym handling is convention-correct
Acronym preservation is deliberately not applied to identifier styles: a preserved NASA inside camelCase is not camelCase, so the control is hidden rather than left doing nothing.
Batch by line
A whole schema's worth of column names converts at once, each line independently.
What each one is for
Every convention's hint names its real use — Python and SQL for snake_case, HTTP headers for Train-Case, CSS classes and URLs for kebab-case.
At a glance
| Target conventions | snake_case, camelCase, PascalCase, kebab-case, CONSTANT_CASE, Train-Case, COBOL-CASE, dot.case, path/case |
|---|---|
| Input separators recognised | Case changes, spaces, hyphens, underscores, dots and slashes |
| Acronym preservation | Not applied to identifier styles — see the note above |
| Text limit | 100,000 characters per conversion, enforced on the server |
Frequently asked questions
What is snake_case?
A naming convention where words are lowercased and joined by underscores: user_id, parse_json_body. It is the specified style for functions and variables in Python's PEP 8, the conventional style for Rust functions, and the usual choice for SQL column names and for filenames that need to survive being typed.
How do I convert camelCase to snake_case?
Paste the camelCase name and pick snake_case. The converter splits on the case changes — getUserID becomes get, user, id — and rejoins them lowercased with underscores. The same works in reverse and between any two of the nine conventions.
Which convention should I use for which language?
Python specifies snake_case for functions and variables and PascalCase for classes in PEP 8. Go uses MixedCaps and explicitly not underscores. Rust uses snake_case for functions and variables and UpperCamelCase for types. JavaScript and TypeScript use camelCase for variables and PascalCase for classes and components. CSS classes and URL slugs use kebab-case.
What happens to acronyms like ID or HTTP?
They are lowercased as part of the identifier, because that is what the conventions require: getUserID becomes get_user_id, not get_user_ID. Acronym preservation is a prose feature and is deliberately unavailable for identifier styles rather than being offered as a control that does nothing.
What is CONSTANT_CASE for?
Uppercase words joined by underscores — MAX_RETRIES, DATABASE_URL. It is the near-universal convention for compile-time constants and for environment variables, and the shell convention for environment variables is strong enough that lowercase ones are worth avoiding.
Why is Train-Case in here?
Because HTTP header names use it — Content-Type, X-Forwarded-For — and hand-typing them consistently is exactly the kind of small job this tool exists for. COBOL-CASE, the all-caps hyphenated form, shows up in COBOL and in some Lisp-family constants.