Skip to content


Repository files navigation


A text case converter

casec is a text case converter for programmers. casec now supports upper, lower, title, camel, pascal, snake, kebab (or lisp) cases.

It also provides case conversion library not only command line tool.


Using go get

Go version 1.10 or higher is required.

go get

If you want to only download the casec library

go get

Using homebrew

brew tap mingrammer/casec
brew install casec

Using .tar.gz archive

Download gzip file from Github Releases according to your OS. Then, copy the unzipped executable to under system path.



Convert all words to snake case.

$ casec -t snake

Convert all snake case to camel case.

$ casec -f snake -t camel internal.go

Convert only 20~50 lines from snake case to camel case.

$ casec -f snake -t camel -l 20:50 internal.go

Show how would have been converted. (dry-run)

$ casec -f snake -t kebab -n match.lisp

Convert all camel case to snake case except for words you don't want to convert. It is useful for preventing the keywords (reserved words) or conventions from converting.

$ casec -f snake -t pascal -i '^package|var|const|if|for|range|return|func|go$' redis.go

You can pass multiple ignore expressions.

$ casec -f snake -t pascal -i '^package|var|const|if|for|range|return|func|go$' -i '^github|com$' redis.go


See details in GoDoc

package main

import (


func main() {
    // Output: true
    // Output: false
    fmt.Println(casec.Invert("Invert Me"))
    // Output: iNVERT mE
    // Output: writeRune
    // Output: ip_address
    // Output: simple-json-parser

Known issues

casec separates the words with non-letters (except - and _) including . and / letters. So, the ignore option of casec can not recognize the dot-or-slash separated word (ex. "") as a single chunk. So if you want to prevent the import path of Go source code, for example, import "" from converting, you should pass the ignore expression as -i "^(github|com|mingrammer|cfmt)$".

Here is a (maybe) solution for solving this issue.

  1. Treat the string surrounded with quotes ("" or '') as a single word optionally.