SCREAMING_SNAKE_CASE Converter
Convert text to SCREAMING_SNAKE_CASE for constants and environment variables. Free online tool, no signup required.
Three steps to get started
Paste your text
Enter a constant name or phrase in any format.
Converts to SCREAMING_SNAKE
All words uppercased and joined with underscores: DATABASE_URL.
Copy the constant
Click Copy and paste into your config or code file.
What is SCREAMING_SNAKE_CASE?
SCREAMING_SNAKE_CASE is a naming convention in which every letter of an identifier is uppercase and words are separated by underscores, as in MAX_RETRY_ATTEMPTS. It is also documented as CONSTANT_CASE (Google's style guides), MACRO_CASE (C and C++ preprocessor tradition), and occasionally UPPER_SNAKE_CASE. All four names describe exactly the same shape; the "screaming" label is developer slang borrowed from the fact that ALL CAPS reads as shouting.
The convention carries semantic weight, not just visual style. In most codebases an all-caps identifier is a promise that the value is fixed at compile time or at process start and will not be reassigned. PEP 8 states module-level constants in Python should be written in all caps with underscores. The ECMAScript community applies the same rule to const bindings holding literal configuration. POSIX reserves uppercase names for shell environment variables specifically so they never collide with lowercase local shell variables.
Where you will actually encounter it:
- .env files and CI secrets:
DATABASE_URL,STRIPE_SECRET_KEY,NODE_ENV,AWS_REGION- Docker, Heroku, Vercel, and GitHub Actions all expect this shape - Python:
DEFAULT_TIMEOUT = 30,MAX_CONNECTIONS = 100at module scope - C / C++ preprocessor:
#define BUFFER_SIZE 1024, plus include guards likeMY_HEADER_H - Java and Kotlin:
static final int MAX_USERS,companion object { const val API_VERSION } - Redux and event systems: action types such as
USER_LOGIN_SUCCESSandFETCH_ORDERS_FAILURE - HTTP and protocol tokens:
CONTENT_TYPE,X_REQUEST_IDwhen headers are normalised into variable names
Mistakes worth avoiding
Two traps come up repeatedly. The first is hyphens: MY-VALUE is not valid in a shell environment variable name, which POSIX restricts to letters, digits, and underscores that do not begin with a digit - so 2FA_ENABLED will be rejected where TWO_FA_ENABLED works. The second is over-application: Java enum constants and C macros belong in all caps, but a mutable object simply held in a const reference does not, because the binding is constant while the contents are not.
Compared with plain snake_case, the structure is identical and only the casing differs - lowercase for ordinary Python and Ruby variables, uppercase for the fixed values beside them. Paste any phrase, camelCase name, kebab-case slug, or existing snake_case identifier above and the converter normalises it. The entire transformation runs as JavaScript inside this tab; nothing is uploaded, which matters when the string you are reshaping is the name of a production secret.