---
title: "ターミナルがダサいとモテない。dotfiles managerをyadmからchezmoiに変えたぜ。 | grasys blog"
url: "https://blog.grasys.io/post/yusukeh/terminal-chezmoi"
description: "dotfiles managerをyadmからchezmoiに移行したので比較と感想を yadm2chezmoi.png 最近は生成AIが盛んでもうこういった技術系のblogは意味を持たなくなってきていると感じてる今日このごろ・・・🤔 弊社でもGoogle WorkspaceのGeminiやGemini Enterpriseを使っていますが、個人的には ChatGPT/Codex と neovimをパワフルにしてくれる Github …"
---

# ターミナルがダサいとモテない。dotfiles managerをyadmからchezmoiに変えたぜ。

-   ![](/_astro/noicon.CTHOhNiB_1HMs6A.webp)[yusukeh](/authors/yusukeh/)
-   公開日：2026年2月9日
-   カテゴリー：[Tech](/categories/tech/)
-   タグ：[#シリーズ: ターミナル環境](/tags/シリーズ-ターミナル環境/)[#chezmoi](/tags/chezmoi/)[#dotfiles](/tags/dotfiles/)[#yadm](/tags/yadm/)

![ターミナルがダサいとモテない。dotfiles managerをyadmからchezmoiに変えたぜ。](/_astro/ogp.DhgIcFpD_2tLeb1.webp)

dotfiles managerをyadmからchezmoiに移行したので比較と感想を

最近は生成AIが盛んでもうこういった技術系のblogは意味を持たなくなってきていると感じてる今日このごろ・・・🤔

弊社でもGoogle WorkspaceのGeminiやGemini Enterpriseを使っていますが、個人的には ChatGPT/Codex と neovimをパワフルにしてくれる Github Copilot が好きかなぁ。

最近の自分は業務上、論文を調査することが最近多くて分野的にChatGPTの方が返答が良いのと、意図を汲んでくれて広がりある回答が多いからって理由なだけです。  
論文の観点を無視したら Claude の方が良いんだろうな。

因みにTop画像は、ChatGPTで作りました！😂

技術的なことを書いても生成AIに聞いた方が良いと思うので、人間味あふれる感じで個人的な感想や印象などを書いていこうと思います。

（これから技術的な記事って減っていくのかな？ 誰か教えて・・・🤣）

## chezmoi

長らくdotfiles managerとして [yadm](https://yadm.io/) を使ってきましたが、今回は [chezmoi](https://www.chezmoi.io/) に移行しました。

因みに [chezmoi](https://www.chezmoi.io/) の読み方は、ちぇ、ちぇ、ちぇずも・・・違います！😷  
**シェモア**です！📢

正直言うと移行した大きな理由は特にありません！🤣

理由はこれだけです。

-   [yadm](https://yadm.io/) に飽きたから
-   [chezmoi](https://www.chezmoi.io/) は比較的新し目で気になってたのと、[Proton Pass CLI](https://proton.me/blog/proton-pass-cli)に対応してるの確認したから

因みにもっと新し目でrustベースで書かれている [rotz](https://github.com/volllly/rotz) というのもありますが、あまり更新が活発じゃないのでやめました。  
ただざっとドキュメント読むと [rotz](https://github.com/volllly/rotz) は構成管理機能が充実してる印象です。

ここでは [yadm](https://yadm.io/) と [chezmoi](https://www.chezmoi.io/) の比較をします。

## yadmとchezmoiの比較

私は [yadm](https://yadm.io/) は1年以上近く触っています。[chezmoi](https://www.chezmoi.io/) は 1週間程度です。

ざっくり比較していきます。  
これはあくまで自分の触った感想で、自分で書いてます。（生成AIで作ってません😅）

## yadm

[yadm](https://yadm.io/) 1年以上触っていて、正直なところ特に不満になるところはありませんでした。

### **home配下が直接的にすべてgit化される**

-   `.gitignore` しまくる必要があります。ただしこの点だけ理解できていれば扱えるのでスッキリしてる。

### [**bootstrap**](https://yadm.io/docs/bootstrap)**が従来のunix的な印象**

-   自分の場合は `.config/yadm/bootstrap.d` にscriptを目的ごとに分けて `.config/yadm/bootstrap` でbootstrap.d配下のscriptをすべて実行するような仕組みにしています。
-   冪等性などは自分でコントロールする必要がありますが、その分コントロール自体は自分に委ねられているため混乱はしないと思います。

### [**alternate**](https://yadm.io/docs/alternates#)**がパワフル**

-   若干ファイル名末尾に入れる `##conditions` が独自性が高いので理解するのに少し時間が必要ですが、理解してしまえばコントロールは完全にできます。
-   [chezmoi](https://www.chezmoi.io/) ではちょっと工夫しないとできないOSを判別してファイルを配置の有無を決定することや、symlinkするといったことも可能です。

### [templates](https://yadm.io/docs/templates#) がシンプル

-   良いところはシンプルであること
-   あまり複雑なことができない分、シンプルにやれるため複雑化することがないと思われます。templateに処理系がたくさん入ってしまうといったことは回避できるはずです。

個人的に思うのは、シンプルに完全支配したいなら [yadm](https://yadm.io/) で十分だと思います。

## **chezmoi**

まだ移行して1週間くらいです。  
全体的には移行中で、[yadm](https://yadm.io/) では [encryption](https://yadm.io/docs/encryption) をしていましたがまだそこまでやっていません。[age](https://github.com/FiloSottile/age)などによる暗号化/復号化をちょっと試してみたいのですが、これからゆっくりやってきます。

### **${HOME}/.local/share/chezmoi**

ここが、[yadm](https://yadm.io/)と根本的に違います。

-   管理する実態のファイルツリーと [chezmoi](https://www.chezmoi.io/) がgitで管理するファイルツリーは完全に別になっています。
-   gitで管理されるのは、 `${HOME}/.local/share/chezmoi` です。
-   HOMEは、 `${HOME}/.local/share/chezmoi` で管理されているファイルの定義にあった形で展開される先になっています。

### **Configuration Files ${XDG\_CONFIG\_HOME}/chezmoi/chezmoi.{json|jsonc|toml|yaml}**

これが [chezmoi](https://www.chezmoi.io/) の [Config File](https://www.chezmoi.io/reference/configuration-file/) になっています。  
各種templateなどで使える[Variables](https://www.chezmoi.io/reference/configuration-file/variables/)、設定項目である[Editor](https://www.chezmoi.io/reference/configuration-file/editor/)などを設定できます。

このファイル自体は [chezmoi](https://www.chezmoi.io/) の管理上git化されないため注意が必要です。  
自分はtemplate化すると決めて、初期化時に出力されるようにしています。

まだ暗号化してないので使っていませんが、macOSの [pinentry](https://www.chezmoi.io/reference/configuration-file/pinentry/) が使えるようでmacOSのTouch IDと連携させられるかもしれないです。

## Special Files

### **.chezmoidata/**

まだしっかり活用できてません。

-   jsonやjsoncやtomlやyamlを配置することでchezmoiのtemplateやscriptなどからパラメータとして読み込めるそうです。
-   cargo backupのjsonなどを読み込むと良いかもしれません。
-   上記以外の形式のファイルを入れるとErrorになるため、 [Homebrew BundleのBrewfile](https://docs.brew.sh/Brew-Bundle-and-Brewfile) や [gup exportのgup.conf](https://github.com/nao1215/gup) などは配置できません。chezmoi templateで一度それらを読み込んで別の形式に変換する必要があります。

### **.chezmoiexternals/**

自分の手元では使ってません。

使いながら何か良い利用方法など見つかればMediumに書いていきます。

### **.chezmoiscripts/**

-   [yadm](https://yadm.io/)でいうbootstrap系のscriptを配置する場所です。
-   run\_から始まるscriptを置くことで `chezmoi apply` 時に実行することができます。
-   毎回起動する `run_`、変更時に実行される `run_onchenge_` 、一度だけ起動してstateが出力される `run_once_` といった形でいくつかの種類があり [Use script to perform actions](https://www.chezmoi.io/user-guide/use-scripts-to-perform-actions/#run-a-script-when-the-contents-of-another-file-changes) に説明があります。
-   [yadm](https://yadm.io/) bootstrapで [starship](https://github.com/starship/starship) と [topgrade](https://github.com/topgrade-rs/topgrade) のupdateが行われたらconfigの再生成を行うなどができます。

### **.chezmoitemplate/**

[chezmoi](https://www.chezmoi.io/) の本領発揮がこのTemplateだと感じます。

-   細かくは [Templating](https://www.chezmoi.io/user-guide/templating/#introduction) や [Templates](https://www.chezmoi.io/reference/templates/) に説明があります。
-   めちゃくちゃ多機能で [jq](https://www.chezmoi.io/reference/templates/functions/jq/) などもあるのでjsonからデータをtemplateに組み込むことも簡単にできると思います。

[yadm](https://yadm.io/) のtemplateから [chezmoi](https://www.chezmoi.io/) のtemplateに移植するのが一番大変だった・・・🤣

でもbashrcの中に制御構文が入ってたけど、それを減らすことができたのでかなりスッキリさせることができた。

ただしcompletionsの読み込みで、外部に吐き出すと管理がめんどくさいんでevalをかなり使ってる悪い癖があるんで、  
[lookPath](https://www.chezmoi.io/reference/templates/functions/lookPath/) と [onchange](https://www.chezmoi.io/user-guide/use-scripts-to-perform-actions/) をうまく使いこなして、completionsを出力して丸ごと読み込ませるとかはやってもいいかもなぁ🤔

### **.chezmoiignore**

-   [chezmoi](https://www.chezmoi.io/) で管理させないファイル群を指定できます。
-   ちょっと個人的にすごいなと感じたのは、このドキュメントにある通り、chezmoiの設定やdataから状態をみて振る舞いを変えることができるところです。自分はやっていませんが、macOS/Linuxの差分や個人アカウント、会社のアカウントといった分岐でいろいろできそうです。 参考 [.chezmoiignore](https://www.chezmoi.io/reference/special-files/chezmoiignore/)

### **Password Manager**

これも[yadm](https://yadm.io/)にはない大きな特徴です。  
[yadm](https://yadm.io/)ではPassword Managerとの連携はなく、自前でscriptを書いて連携させる必要がありましたが、[chezmoi](https://www.chezmoi.io/)は本格的に連携しています。

-   細かくはこちらに説明がありTemplate Engine側で吸収できます。 参考 [Password Manager](https://www.chezmoi.io/user-guide/password-managers/)

対応は以下の一覧です。  
とんでもなくたくさんのPassword Managerに対応しています。

-   [1Password](https://www.chezmoi.io/user-guide/password-managers/1password/)
-   [AWS Secrets Manager](https://www.chezmoi.io/user-guide/password-managers/aws-secrets-manager/)
-   [Azure Key Vault](https://www.chezmoi.io/user-guide/password-managers/azure-key-vault/)
-   [Bitwarden](https://www.chezmoi.io/user-guide/password-managers/bitwarden/)
-   [Dashlane](https://www.chezmoi.io/user-guide/password-managers/dashlane/)
-   [Doppler](https://www.chezmoi.io/user-guide/password-managers/doppler/)
-   [ejson](https://www.chezmoi.io/user-guide/password-managers/ejson/)
-   [gopass](https://www.chezmoi.io/user-guide/password-managers/gopass/)
-   [KeePassXC](https://www.chezmoi.io/user-guide/password-managers/keepassxc/)
-   [Keychain and Windows Credentials Manager](https://www.chezmoi.io/user-guide/password-managers/keychain-and-windows-credentials-manager/)
-   [Keeper](https://www.chezmoi.io/user-guide/password-managers/keeper/)
-   [LastPass](https://www.chezmoi.io/user-guide/password-managers/lastpass/)
-   [pass](https://www.chezmoi.io/user-guide/password-managers/pass/)
-   [passhole](https://www.chezmoi.io/user-guide/password-managers/passhole/)
-   [Vault](https://www.chezmoi.io/user-guide/password-managers/vault/)

因みに自分は [Proton](https://proton.me/ja) のUserなのですが、[Proton Pass](https://proton.me/ja/pass)から先日出た [Proton Pass CLI](https://proton.me/blog/proton-pass-cli) に対応しています。  
これが [yadm](https://yadm.io/) から移行する \*\*”一番の理由”\*\*になりました。  
（2026/02/09時点では [User guid](https://www.chezmoi.io/user-guide/password-managers/) 側のmenuの一覧には書いてないという・・・🤣）  
参考 [Proton Pass function](https://www.chezmoi.io/reference/templates/protonpass-functions/)

ただ自前で [Proton Pass CLI](https://proton.me/blog/proton-pass-cli) で [yadm](https://yadm.io/) で生成されるbashrcに読み込む外部ファイルも生成してたから、困ってたわけではありません😅

### **Encyption**

まだ自分は組み込んでいないのですが、[yadm](https://yadm.io/) では git-crypt （参考 [yadm Encyption](https://yadm.io/docs/encryption#)）を使っていたので、そのうち対応します。

[gpg](https://www.chezmoi.io/user-guide/encryption/gpg/) 以外にgoの [age](https://github.com/FiloSottile/age) やrustの [rage](https://github.com/str4d/rage) などにも対応しているので、[gpg](https://www.chezmoi.io/user-guide/encryption/gpg/) じゃなく [age](https://github.com/FiloSottile/age) か [rage](https://github.com/str4d/rage) でやってみようと考えています。

## 最後にchezmoiの感想

オレは [chezmoi](https://www.chezmoi.io/) 好き！😍

いいじゃん [chezmoi](https://www.chezmoi.io/) 気に入ったぞ！🤣

ターミナル環境について他の記事も書いているので、よろしければこちらもご覧ください！  
[『ターミナルがダサいとモテない』シリーズ一覧](https://blog.grasys.io/tags/series-terminal-update)

転載：[ターミナルがダサいとモテない。dotfiles managerをyadmからchezmoiに変えたぜ。](https://medium.com/@yusuke_h/%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%8C%E3%83%80%E3%82%B5%E3%81%84%E3%81%A8%E3%83%A2%E3%83%86%E3%81%AA%E3%81%84-dotfiles-manager%E3%82%92yadm%E3%81%8B%E3%82%89chezmoi%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F%E3%81%9C-89bc609c4f31)

この記事は [Medium（@yusuke\_h）](https://medium.com/@yusuke_h) からの転載です。

## この記事を書いた人

[![](/_astro/yusukeh.BvUd2yKE_1mQ6Fp.webp)](/authors/yusukeh/)

### [yusukeh](/authors/yusukeh/)

Fly high. Think deep. Move fast. Go far.🦅

-   [X](https://x.com/yusukeh "X")
-   [GitHub](https://github.com/yusukeh "GitHub")
-   [Medium](https://medium.com/@yusukeh "Medium")
-   [Facebook](https://www.facebook.com/yusuke.exzm "Facebook")
-   [Instagram](https://www.instagram.com/yusukehasegawa/ "Instagram")
-   [LinkedIn](https://www.linkedin.com/in/hasegawa-yusuke-091b4164/ "LinkedIn")

[プロフィールと記事一覧](/authors/yusukeh/)