はじめに
最近、AIツールの活用事例の記事をよく見かけるようになりました。
そこで、自分が利用しているツール、活用方法、環境設定などを紹介します。
駆け出しエンジニアの方のご参考になれば嬉しいです。(執筆時点:2026/1)
目次
- 利用ツール一覧
- 学習のためのAI活用
- AIによる便利なシェル関数の定義
- [Claude] MCP構成
- [Claude] カスタムスラッシュコマンド定義
- [Claude] ステータスラインのカスタム
- まとめ
- 参考資料
利用ツール一覧
僕が日常的に使っているAIツールを紹介します。
| ツール | 用途 | 特徴 |
|---|---|---|
| Claude Code | PC作業全般の効率化 | Maxプラン(詳細は後ほど) |
| ChatGPT | 汎用的な質問 | Web検索する前の足掛かりとして利用 |
| Gemini | 会社ドメイン質問 | 業務情報を含む質問やGem利用 |
メインで使用しているのはClaude Codeです。
簡単な機能修正であれば、コマンド一発で Backlog情報取得→PR作成まで自動でいけます。
学習のためのAI活用
自分はエンジニア5ヶ月目のヒヨッコと自覚しているので、
AIは基本的に、学習目的のツールとして利用しています。
目的はシンプルです。
①自分の人材価値を高めること
②こちらで紹介されるような反面教師にならないこと
意識もシンプルです。
わからないことが発生したら、条件反射で調べること
意識の理由
僕は「学習」の定義として、「分からないものを分かるようにすること」と考えています。従来の学習では、Web検索をして、有用なソースかを判別した上で知識をインプットしていました。しかし、一般的な技術知識や概念であれば、AIが99%以上の正解を返すので、短期間でより多くの情報をインプットすることができます。
また、一般的な知識ではなく、サービスのドメイン情報を含む質問は、Claude Code を利用しています。これにより、プロジェクトベースのコンテキストに沿った回答をもらえます。
AIによる便利なシェル関数の定義
以下に紹介する①,② は両方ともClaudeに定義してもらった関数です。
①index.lockエラーを自動解消するシェル関数
Claude CodeでGit操作をしていると、index.lockエラーに遭遇することがあります。
そこで、エラーを自動回復するシェル関数を定義しています。
# index.lock自動回復機能付きGitラッパー
_git_with_lock_recovery() {
local max_retries=3
local retry_count=0
while [ $retry_count -lt $max_retries ]; do
local output
output=$(git "$@" 2>&1)
local exit_code=$?
if [ $exit_code -eq 0 ]; then
echo "$output"
return 0
fi
if echo "$output" | grep -q "index.lock"; then
echo "index.lockを検出。削除を試みます..."
local git_dir=$(git rev-parse --git-dir 2>/dev/null)
if [ -n "$git_dir" ] && [ -f "$git_dir/index.lock" ]; then
rm -f "$git_dir/index.lock"
echo "index.lockを削除しました。リトライします..."
retry_count=$((retry_count + 1))
continue
fi
fi
echo "$output" >&2
return $exit_code
done
echo "最大リトライ回数に達しました" >&2
return 1
}
# エイリアス設定
alias g='_git_with_lock_recovery'
alias grs='_git_with_lock_recovery restore --staged'
alias grm='_git_with_lock_recovery restore'
alias grh='_git_with_lock_recovery reset --hard'
メリット:
- 手動でのlock削除が不要
- index.lockが発生するgitコマンド全てで上書き可能
② SSH接続エイリアスの自動生成
業務で踏み台サーバーを経由して特定のサーバーにSSH接続するケースがあり、毎回コマンドを打つのが面倒でした。
そこで、踏み台サーバーの ~/.ssh/config から接続先ホスト一覧を取得し、ローカルにエイリアスを自動生成するシェル関数を定義しました。
# 踏み台サーバーから接続先ホスト一覧を取得してエイリアスを生成
generate_ssh_aliases() {
local bastion="bastion.example.com"
local ssh_config_path="~/.ssh/config"
# 踏み台サーバーのssh configからHost一覧を取得
local hosts=$(ssh $bastion "grep '^Host ' $ssh_config_path" | awk '{print $2}' | grep -v '\*')
# 各ホストに対してエイリアスを生成
for host in $hosts; do
echo "alias ssh-${host}='ssh -J ${bastion} ${host}'"
done
}
# 実行して.zshrcに追記
# generate_ssh_aliases >> ~/.zshrc
使用例:
# エイリアス生成結果
alias ssh-web01='ssh -J bastion.example.com web01'
alias ssh-web02='ssh -J bastion.example.com web02'
alias ssh-db01='ssh -J bastion.example.com db01'
# 接続時はエイリアス名だけでOK
ssh-web01
メリット:
- 簡単に接続
- 新しいサーバーの追加時、シェル関数を再実行するだけでOK
[Claude] MCP構成
MCP(Model Context Protocol)により、Claude Codeが外部サービスにアクセスできます。
設定方法などは省略しますので、気になるものがあれば調べてみてください。
自分は全てDockerでmcpサーバーをコンテナ化しています。
設定ファイル等
| ファイル | 役割 |
|---|---|
~/.mcp.json |
各MCPサーバーの定義(接続先、認証情報、起動コマンド) |
~/.claude/settings.json |
権限設定(自動実行を許可するコマンドを設定) |
~/.claude/mcp/ |
MCP毎にサーバー設定ファイルを整理 |
利用中の主なMCPサーバー
| サーバー | 用途 |
|---|---|
| GitHub | PR作成、Issue検索、コード参照 |
| Backlog | チケット管理、仕様確認 |
| Kibela | 社内ドキュメント検索 |
| Jenkins | CIビルド状況確認 |
| Redash | データベーススキーマ確認 |
| Slack | チャンネル投稿、通知 |
| Notion | ドキュメント作成・更新 |
| CircleCI | CI/CDパイプライン確認 |
権限設定(settings.json)
~/.claude/settings.jsonで、許可するツールと禁止するコマンドを設定できます。
[Claude] カスタムスラッシュコマンド定義
~/.claude/commands/ディレクトリにMarkdownファイルを置くと、カスタムスラッシュコマンドを定義できます。
恐らく、多くのClaude利用者がご存知かと思いますが、ここでは二種類だけ紹介します。
例1: Qiita記事作成コマンド (/qiita)
$ARGUMENTS: 記事概要またはソース情報のパス
## 出力先
`~/.claude/mcp/qiita/articles/` 配下にMarkdownファイルを作成
## 処理手順
1. 引数の解析(ファイルパス/URL/要件)
2. 情報収集
3. 記事構成に従って下書き作成
4. 品質チェック
5. ファイル保存
例2: GitHub PR作成コマンド (/github)
指定フォルダの実装資料をもとに、GitHub PRを自動作成するコマンドです。
※ 実装資料には、要件定義書や変更差分情報などが含まれています。
$ARGUMENTS: 実装内容が記載されたフォルダのパス
## 実行手順
1. 指定フォルダ内のファイルを確認
2. 現在のブランチ名からBacklog IDを特定
3. Gitの変更内容(diff、追加ファイル等)を確認
4. コード品質チェックを実施
5. PRテンプレートに従って下書きPRを作成
[Claude] ステータスラインのカスタム
settings.jsonでカスタムステータスラインスクリプトを指定できます。
{
"statusLine": {
"type": "command",
"command": "/Users/username/.claude/statusline.js"
}
}
例えば自分のだと、以下の情報を表示しています:
- 使用モデル名
- カレントディレクトリ
- Gitブランチ名(変更ファイル数付き)
- トークン使用量
- コンテキスト使用率(%)
[Opus 4.5] 📁 sample_repo master [~3 +1] | ⭐︎ 45.2K | 28%
まとめ
- 駆け出しエンジニアの場合、AIツールは学習利用を意識した方が良さそう
- 個人的にはClaudeに不満がないが、他のAIツールも気になってはいる
- 正直、AIの変化が早過ぎて、半年後のAI市場を想像できない(自分は)
長くなりましたが、最後まで記事を読んでくださり、ありがとうございました。
この執筆が少しでもお役に立てば嬉しいです。