2026年は全部ターミナルでやるぞ!
はじめに
あけましておめでとうございます🎍
スティーブン・R・コヴィー博士の著書『7つの習慣』に由来する有名な言葉、「Sharpening the Saw ー ノコギリを研ぐ」。今年の正月休みこそは普段後回しにしていた、コーディング環境周りを改善し、開発速度を爆アゲしたいと思っています。
研ぎたいもの
頭ではわかっている。ただ、マスターするには時間がかかりすぎる。
例えば習熟するのに1ヶ月かかるとして、エンジニア人生で見れば余裕でペイできるのに、一時的に生産性が下がることが嫌でなかなか本腰を入れられない。
そこで、今年こそは以下をマスターし、AIに負けないくらい生産性を発揮することを目標とします。
- 分割キーボード(42キー)
- ターミナル
- Neovim
この記事で紹介したいこと
いろいろ試しすぎて伝えたいことがぼんやりしてきたので、以下にフォーカスしてこの記事を書きます。
まずはなにを使っていくか
ターミナル
最近、Ghostty いいよ!って見かけますね。私はiTerm2を使っており、ターミナルに全くこだわりがないので流れに身を任せてみようと思っていたのですが、neovimの環境構築で調べていると、 WezTerm を使っている方も多い印象です。
今年の目標はvimを使いこなすことなので、長いものに巻かれようとWezTermに決定です。
Neovimをどうやって設定するか
最後に設定をいじったのは3年前くらい放置してました。起動してもエラーばかり、よく使うのは dd だけです。Intellij Ideaが大好きで、生成AIとのコーディングのためだけにCursorをメインに、未だに慣れません。今となってはClaude Code一択なので、Cursorである理由すらないです。バージョンアップが多くてアップデートするとしばらく待たされるのがストレスになりました。
vimといえばまず最小の設定から始めて、パッケージマネージャーを選んでそれを使って拡充していく... といったイメージだったのですが、LazyVim という便利なものがあるんですね。決定!
設定した
全部この記事通りに設定しました。何も困らなかったです。ありがとうございます。
残りは自分の分割キーボードで使えるようにLEADERキーなどを決め、以下のことができるようにしました。
- vim内でgit操作ができる
- vim内でClaude Codeを使える
最終形はこちらに。
次はターミナルでメモを取れるようにしよう
mozumasuさんの他の記事を見ていたら、ターミナルでメモ管理の話があったのでこれだ!と思い読んでみました。
なにか思いついたら別のメモアプリを開くより、手元を動かさずにメモできるといいですよね。ただ、私はObsidianでThinoプラグインを使ってXみたいにタイムラインで表示させています。
ちょっとはずかしいですがこんな感じでオレオレXをやれる
じゃ、nbみたいにobsidian + thino連携できるCLIツールがないか調べてみるとバッチリハマるものがない... ということでClaude Codeと一緒に作ってみましょう。
作ったものの紹介
最終形はこちらです。thinoから拝借して短くして thn としました。
Homebrewでインストールできて、限りなく設定を少なくしました。(Obsidianのvaultパスのみ指定する)
生成AIとのコーディングも向き合い方も変わった
Claude Codeなどが進化して、なければ作ればいいじゃん!が気軽にできるようになりましたよね。2025年7月は、ローカルLLMのベンチマークツール、ollama-benchを作りました。
このときは、まずClaudeと壁打ちしながら仕様を固め、Claude Codeに引き継ぎするドキュメントを作らせ、一気に実装させるという Vibe Coding のやり方でした。これがうまくいったのも、apache benchのように既存の参考になる実装があったこと、シンプルなCLIツールであったことが考えられます。
しかし、Vibe Codingに限界があるというのも2025年中には答えが出ました。できるだけ出力を固定するように指示していく方向になっているのではないでしょうか。 そこで最近、私が取り入れているのは仕様駆動開発です。
仕様駆動開発をサポートするツールを選ぶ
代表的なものといえば Kiro ですよね。こちらはIDEで提供されているので、もっと自分が使っているツールから呼び出したい...
そこで最初に使っていたのが、GitHubの Spec Kit です。ただこれもしんどさがあったのは、できあがった仕様書をgit diffでひたすら見る作業。
そこで見つけたのが、Spec Workflow MCP です。
以下の記事でとってもわかりやすく解説していただいています。まさに同じ課題を感じていらっしゃって、Spec Workflow MCPが解決するのをブルーベリー効果と表現されているのが素晴らしい。
Steering
仕様駆動開発を行うにあたり、基本的な概念はどのツールも同じです。
まずはプロジェクト全体の方針を決めます。ステータスを全て利用可になるように文書を作成します。thnでのseteeringの内容はこちらです。https://github.com/ignission/thn/tree/main/.spec-workflow/steering
Spec作成
ここから、Claude Codeと会話しながら仕様を作っていきます。
一つの仕様に対して、
- requirements
- design
- task
の3ステップで進めていきます。以下のスクショのように、各フェーズで承認やコメントをしていきます。見やすいですね。これぞブルーベリー効果!
thnでのspec一覧はこちらです👇️ https://github.com/ignission/thn/tree/main/.spec-workflow/specs
今回は機能がシンプルだったので実装specも一つにまとめていますが、細かく分けたほうがコードレビューもしやすくなると思います。
実装→完成
あとは順に実装していくだけです。コードレビューもしましたが、致命的な実装ミスもなく、想定通りの実装をしてくれました。これまではタスクを依頼するときに細かく指定はしていませんでしたが、いかに仕様を固めてレールから外れないようにすることが、安定したアウトプットにつながるかを実感できました。
そして、Claude Code作者のBorisさんのポストが話題になりましたね。
どうやって5並列で動かせるようにするのかが一番気になりました。今回はシンプルな機能だけだったので直列で実装しましたが、並列実装が可能になるようにタスクを分解したり依存関係を見極めることも重要なスキルになりますね。正直コンテキストスイッチが大変そうですが、これに順応していけるかがエンジニアの素質と言えそうです。
おわりに
今年は生産性爆アゲを目標に、しっかり時間を投資すべきとこを見極めようと思いました。正月三ヶ日みっちり特訓し、ターミナル上でできることが増えたのがよかったです。やっぱりやりたいと思っていたことを溜め込まず、優先度付けして片付けるのがストレスも減っていいですね。
また、もう一つの目標である、言語化能力を鍛えるということで今回記事も書いてみました。2025年は生成AIによる支援を受けながら記事を書くことがほとんどでした。それっぽいこと書いてくれるんで自分で文章がうまくなった気になるんですよね。言いたいこと以上のことを出してくるので削ったり絞ったりができず、言いたいことがぼやける経験もしました。しかし、今回は本当に自分で思ったことを書いたので、支離滅裂な部分もあるとは思いますが、やっぱり書ききって気持ちいい!ですね。最後までお付き合いいただきありがとうございました。
選定にあたり参考にした動画
ありがとうございます!
Discussion