Go でCLIツールを作成するときのテンプレート

Posted on 2025/05/15

はじめに

Go でCLIツールを作るときのテンプレートとなるリポジトリを公開しました。
foresukecom/go-cli-template

特徴

本テンプレートの特徴は以下の通りです。

  • cobra/viper でCLIツールのベースを作成
    コマンドラインインターフェースの構造化(サブコマンド、フラグ管理など)を容易にする Cobra と、設定ファイルや環境変数からの柔軟な設定値読み込みを実現する Viper を採用し、CLIツールの基本的な骨組みを構築済みです。
  • VSCode DevContainer
    VS Code Dev Containers に対応。ローカル環境を汚すことなく、VS CodeとDockerがインストールされていれば、誰でもすぐに同じ開発環境をコンテナ内に再現できます。Go本体や各種ツールの個別インストールは不要です。
  • Github Actions を使用し、各プラットフォームに向けたバイナリファイルを自動生成
    リポジトリにgitタグをプッシュするだけで、GitHub Actions が起動し、Linux, macOS, Windowsなど、複数のOS・アーキテクチャに対応した実行バイナリを自動でビルドし、GitHub Releasesに公開します。

モチベーション

Go でCLIツールを作成することが増えたが、初期は定型的な作業が多いのでテンプレート化しました。
個人的な用途で作成したテンプレートでしたが、汎用的な内容が多いので公開してみました。

使い方

本リポジトリのREADME をご覧ください。

サポート

使ってみて、追加で必要な機能などがあればぜひ教えて下さい。

連絡先は以下です。