Desk Account

snake_case Converter

Paste text or words and turn them into snake_case — for Python variables, database columns and file names. Runs in your browser.

Private — counting runs in your browser, nothing is uploaded

Result

How words are split

Input is split on camelCase/PascalCase boundaries (a lowercase or digit followed by an uppercase letter) and on any punctuation or space — so «my-var_name», «myVarName» and «my var name» all convert the same way. Digits attach to the word before them (userID42 → user, id42), never split into their own word.

Acronym limit — read before converting API names

Consecutive uppercase letters (an acronym run like HTTP, XML, ID) are NOT split from the word that follows — getHTTPResponse converts to get_httpresponse, not get_http_response; XMLParser converts to xmlparser, not xml_parser. This is a real, verified limit of the boundary rule (lowercase/digit → uppercase), not a rare bug — if you need per-acronym splitting, insert a manual separator (getHTTP_Response) before converting.

Finishing up

The converted text is live in the output box as you type — Copy it or use Download if your browser supports it. No conversion history is kept; refreshing the page clears both boxes.

What is snake_case?

snake_case joins words with underscores, all lowercase: "user profile page" becomes "user_profile_page". It is the conventional style for Python variables, Ruby methods and SQL column names.

Can I convert a list of names at once?

Yes — each line converts independently, so a pasted list of headings or labels becomes one snake_case identifier per line.

Is the converted text always valid code?

No — this is a plain-text case transformation, not a parser for any specific language's identifier rules (reserved words, allowed characters, etc. still apply). Check your language's own naming rules before using a converted name as a real identifier.

↑ Back to tool