🎼

Claude CodeのPro対応が嬉しくてセッティングにいそしんでいる記録

に公開

Claude Code が正式にリリースされ、各地ですごい話題になっていますね!見てるとみんな(みんな?)Maxプラン契約して使ってるみたいで勢いを感じます。

自分の場合、業務外の個人開発では$100使うほどではないよなーと思っていたのでAPI経由でちまちま使っていましたが、なんとついにProプランでも制限は強めなものの定額で使えるようになりましたね!WebのチャットではAnthropic推しでProプランを使っていたので嬉しいです。

https://x.com/_catwu/status/1930307574387363948

ところで、実はここでひとつ、ちょっと「こんなことあったんですよ〜」っていう与太話を差し込ませてもらいます。公式の発表がされるちょうど1日前くらいのタイミングでClaude Codeをサブスクで使うためのヘルプページが更新されていて、Proプランでも使えるという内容になっていたことに気づいたんですよ。ただ、このタイミングでは/loginをしても「Maxプラン以外お断り」って感じだったので、どうなるのかなーと注目していました。実現してよかったです!

https://support.anthropic.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan

設定

ドキュメントが充実しているので、この機会にドキュメント読んでみるかなーと、まずは設定まわりをいじってみました。

https://docs.anthropic.com/ja/docs/claude-code/settings

あんまり権限を与えるのは危険だなと思いつつも、コミットやブランチ作成はよくやってもらうやつなので、このくらいならいれちゃっていいですね。あとはコミット時に Co-Authored-By 以外にもURLを入れたりとちょっと過剰かなと思ったのでオフにしておきました。

~/.claude/settings.json
{
  "permissions": {
    "allow": [
      "List(*)",
      "Fetch(https://*)",
      "Bash(ls:*)",
      "Bash(rg:*)",
      "Bash(mv:*)",
      "Bash(git commit:*)",
      "Bash(git branch:*)",
      "Bash(git diff:*)"
    ],
    "deny": []
  },
  "includeCoAuthoredBy": false,
  "env": {}
}

カスタムコマンド

Claude Code上で/を入力するとコマンドが色々でてきますけど、ここに自分のコマンドが追加でき、さらに内容を確認しつつ補完もできるようになります。ようはスニペットですね。小さいプロンプトでも追加しておくと便利そうです。

ドキュメントだと、チュートリアルの「カスタムスラッシュコマンドを作成する」に書いてある内容です。

https://docs.anthropic.com/ja/docs/claude-code/tutorials#カスタムスラッシュコマンドを作成する

個人的なコマンドだったら~/.claude/commands/以下に置いて、リポジトリ固有のものはプロジェクトルートの.claude/commands/以下に置く感じです。

~/.claude/commands/commit.md
git commitしてください

こんな感じで絞り込みができるので、かなり良い。

Vimで使う

CodeCompanion はVimの中で使ってたんですが、AiderやClaude Codeはまだあんまり慣れてないのか別画面のターミナルで操作をしてしまうんだよなあ。でもやっぱVimから使いたいので環境だけは作ってます。このプラグイン。

https://github.com/greggh/claude-code.nvim

だいたいデフォルト設定で良さそうかなーと思いつつも、画面分割したら右側にClaude Codeが出て欲しいんでそこはサイズなども設定。

あとは謎にWindowを移動するデフォルトキーマップがあるのでオフに。入力文字を消そうとしてC-hを押したら別のWindowに移動したから何事かと思った。

require('claude-code').setup({
  window = {
    split_ratio = 0.45,     -- Percentage of screen for the terminal window (height for horizontal, width for vertical splits)
    position = "vsplit",    -- Position of the window: "botright", "topleft", "vertical", "rightbelow vsplit", etc.
    enter_insert = true,    -- Whether to enter insert mode when opening Claude Code
    hide_numbers = true,    -- Hide line numbers in the terminal window
    hide_signcolumn = true, -- Hide the sign column in the terminal window
  },
  keymaps = {
    toggle = {
      normal = "<leader>cc",       -- Normal mode keymap for toggling Claude Code, false to disable
      terminal = "<leader>cc",     -- Terminal mode keymap for toggling Claude Code, false to disable
      variants = {
        continue = "<leader>cC", -- Normal mode keymap for Claude Code with continue flag
        verbose = "<leader>cV",  -- Normal mode keymap for Claude Code with verbose flag
      },
    },
    window_navigation = false, -- Enable window navigation keymaps (<C-h/j/k/l>)
    scrolling = true,         -- Enable scrolling keymaps (<C-f/b>) for page up/down
  }
})

会話を調整する

最後に、グローバル環境の ~/.claude/CLAUDE.md です。ここには「日本語で会話して」くらいしか書いてなかったんですが、以下の記事を見てお嬢様化してもらいました。

https://zenn.dev/git_ai_code/articles/ai-ojousama-coding-club

いやこれなかなか良いですね。名前呼んでもらうようにしたら擬人化がより一層際立つ。私のしゃべりは執事風じゃないですがw

これからやりたいこと

Anthropicが出しているClaude Code Best Practicesはまだ全部読めていないので、じっくり読んでおきたいです。特に、fix-github-issueコマンドの事例は、今後「要件定義する → GitHubのissueに反映する → issueを元にしてPR作成」という流れを作りたいのでその時に有用そうです。

https://www.anthropic.com/engineering/claude-code-best-practices

まだまだ手探りですが、いろいろトライしていきたいです。
おしまい。

Discussion