GoでCLIツール作るのに便利そうなパッケージを集めてみました

  • 181
    いいね
  • 3
    コメント
この記事は最終更新日から1年以上が経過しています。

GoのCLIツールを作ろうと思った時に、いつも「あー、どのパッケージ使おう」ってなるので、あちこちのサイトをあさって便利そうなパッケージをまとめてみました。あくまでもCLIに関連するパッケージなので、Go全般に便利なパッケージではないのでご注意を。

まだまだ不足はあると思うので、随時追加、修正していきます。解説とかサンプルとかも追加していきたい。

「他にもこんなのもあるよ!」とかあればお気軽にコメントをどうぞ。

コマンドラインオプションパーサー

cli.go

A small package for building command line apps in Go
https://github.com/codegangsta/cli

Cobra

A Commander for modern Go CLI interactions
https://github.com/spf13/cobra

gcli

The easy way to build Golang command-line application.
https://github.com/tcnksm/gcli

Go CLI Library

A Go library for implementing command-line interfaces.
https://github.com/mitchellh/cli

go-flags

go command line option parser
https://github.com/jessevdk/go-flags

Kingpin

A Go (golang) command line and flag parser
https://github.com/alecthomas/kingpin

mow.cli

A versatile library for building command line applications in Go
https://github.com/jawher/mow.cli

goptions

A flexible parser for command line options
https://github.com/voxelbrain/goptions

プログレスバー, 進捗表示

pb

Console progress bar for Golang
https://github.com/cheggaaa/pb

ioprogress

Go (golang) package for progress bars around io.Reader/Writers.
https://github.com/mitchellh/ioprogress

Spinner

Go (golang) package for providing a terminal spinner/progress indicator with options.
https://github.com/briandowns/spinner

go-spin

Terminal spinner package for Golang
https://github.com/tj/go-spin

MultiBar

Display multiple progress bars in Go (golang).
https://github.com/sethgrid/multibar

文字や背景に色をつける

color

Colorize your terminal strings.
https://github.com/aybabtme/color

Color

Color package for Go (golang)
https://github.com/fatih/color

colorstring

Go (golang) library for colorizing strings for terminal output.
https://github.com/mitchellh/colorstring

chalk

Intuitive package for prettifying terminal/console output.
https://github.com/ttacon/chalk

go-colorable

Colorable writer for windows.
https://github.com/mattn/go-colorable

ASCIIテーブル出力

go-clitable

Command line (ASCII) table for Golang
https://github.com/crackcomm/go-clitable

ASCII Table Writer

ASCII table in golang
https://github.com/olekukonko/tablewriter

入力系

Interact

A Golang utility belt for interacting with the user over a CLI
https://github.com/deiwin/interact

Prompt

Cross platform prompting library
https://github.com/Bowery/prompt

絵文字

Emoji

emoji terminal output for golang
https://github.com/kyokomi/emoji

ターミナル判定

go-isatty

isatty for golang
https://github.com/mattn/go-isatty

参考記事, ドキュメント

Go言語によるCLIツール開発とUNIX哲学について
http://yuuki.hatenablog.com/entry/go-cli-unix

Go で CLI ツールを作る
https://speakerdeck.com/dtan4/go-de-cli-turuwozuo-ru

高速にGo言語のCLIツールをつくるcli-initというツールをつくった
http://deeeet.com/writing/2014/06/22/cli-init/

Goでコマンドラインツールを簡単に作成する方法
http://qiita.com/cotrpepe/items/113c938b37919d021339

Go言語 + cli-init でコマンドラインツールを作る
http://dev.classmethod.jp/tool/cli-tool-by-golang-and-cli-init/