Hermit CRM について
Hermit CRM は個人事業主向けのローカル CRM です。営業パイプライン、連絡先、やり取りを Git 内の Markdown ファイルで管理し、ウェブアプリ、コマンドライン、MCP サーバーを備えています。現在はアルファ版です。
主な機能
- 01会社、連絡先、やり取りを Markdown で保存
- 02変更ごとに Git の履歴を記録
- 03パイプラインボード、カレンダー、レポート
- 04タスク、フォローアップ、会議前の概要
- 05メール、カレンダー、表データのインポート
- 06AI エージェント向けの CRM 読み書き機能
活用シーン
- 01個人営業で見込み客と商談段階を管理
- 02連絡先とのメールや会議を記録
- 03フォローアップを予定しカレンダーで確認
- 04AI エージェントに CRM の参照や更新を任せる
MCP 対応
MCP サーバーは stdio 経由で、MCP 対応クライアントに CRM データの読み書き機能を提供します。読み取りツール10個、書き込みツール7個を備えています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Hermit CRM
個人事業主向けの無料のローカル CRM です。 営業パイプライン、連絡先、やり取りは、すべてご自身の Mac 上の git に Markdown ファイルとして保存されます。ご自身で使うウェブアプリに加え、AI エージェント向けの CLI と MCP サーバーも備えています。アカウントもクラウドも不要で、Apache 2.0 ライセンスです。

AI コーディングエージェントを使ってインストールできます。 以下を Claude Code、Codex、Cursor などに貼り付けてください。
Read https://raw.githubusercontent.com/Hermit-CRM/hermit-crm/main/INSTALL.md and set up Hermit CRM for me.
コマンドを自分で入力したいですか? インストールをご覧ください。
| 営業パイプライン | 企業 | カレンダー |
|---|---|---|
![]() | ![]() | ![]() |
アルファ版ソフトウェアです。 Hermit CRM は未完成で、予告なく変更され、まだ誰にも見つかっていない不具合がある可能性があります。無料で提供されますが、いかなる保証もありません。データが失われても、責任を負う者はいません。ご自身でバックアップを取り、復元できることを確認してください。実際の業務で使い始める前に、DISCLAIMER.mdをお読みください。
CRM は、git 内にある Markdown ファイルのフォルダーです。企業、連絡先、やり取りはそれぞれ小さなテキストファイルなので、読み取り、grep、編集、差分の確認ができます。アプリによる変更はすべてコミットされるため、ファイルの以前のバージョンはgit logに残り、ほとんどの間違いはgit revertですぐに取り消せます。ローカルのウェブアプリでは、営業パイプラインボード、次のステップを表示するカレンダー、メッセージの下書き、レポートを利用できます。また、データはプレーンファイルで、シンプルな CLI もあるため、AI エージェント(Claude Code、Codex など)は、ご自身と同じように簡単に営業パイプラインを読み取り、更新できます。Hermit CRM は、創業者、フリーランサー、自分で営業を行う人など、ひとりで使うために作られています。
比較
控えめで事実に基づいた比較です(2026 年 9 月確認。訂正歓迎)。
| Hermit CRM | HubSpot Free | Twenty | Obsidian CRM プラグイン | |
|---|---|---|---|---|
| Markdown ファイルでデータを保存 | はい | いいえ | いいえ(Postgres) | はい |
| すべての変更の git 履歴 | はい、書き込みごとに 1 コミット | いいえ(アクティビティログ) | いいえ | git プラグインを使う場合のみ |
| ウェブアプリ | はい、ローカル | はい、ホスト型 | はい | いいえ(Obsidian 内) |
| メールの取り込み | Gmail IMAP 経由の BCC/転送 | はい(BCC、受信トレイ同期) | はい(Gmail/Outlook 同期) | プラグインによります |
| AI エージェントとの親和性 | プレーンファイル、CLI、AGENTS.md | API 経由 | API 経由 | プレーンファイル |
| Docker なしでセルフホスト可能 | はい(git clone + pip) | いいえ(SaaS のみ) | いいえ(Docker Compose) | 該当なし(デスクトップアプリ) |
| 複数ユーザーのチーム | いいえ | はい | はい | いいえ |
チーム向け CRM が必要なら、ほかの製品をお使いください。ご自身が所有するファイルで営業パイプラインを管理したいなら、Hermit CRM が最適です。
インストール
AI アシスタントを使う場合。 このページの先頭にある行を Claude Code、Codex、Cursor、またはほかの AI コーディングツールに貼り付けるか、ダウンロードを展開してそのツールでフォルダーを開き、次のメッセージを送ります。
INSTALL.md を読んで、Hermit CRM をセットアップしてください。
マシンを確認し、コマンドをインストールしてデータフォルダーを作成し、名前と送信元アドレスを尋ねて、アプリを起動します。アプリのパスワードやカレンダー URL は尋ねません。これらは Settings ページで自分で入力するため、マシンの外に出ることはありません。INSTALL.md は、実行されるスクリプトです。
Hermit CRM は macOS で動作します。Linux でも動作しますが、テストはあまり行われていません。
手動でのインストール。 Python 3.11 以降と git が必要です。
git clone https://github.com/Hermit-CRM/hermit-crm.git && cd hermit-crm
python3 -m venv .venv && source .venv/bin/activate
pip install .
hermitcrm init ~/crm # a new data folder; asks 3 questions
hermitcrm --data ~/crm serve # http://127.0.0.1:8765
hermitcrm --data ~/crm schedule install --serve # daily sync, web app always on
Debian と Ubuntu では、python3 -m venv の実行に python3-venv パッケージが必要です。また、Ubuntu 22.04 の Python(3.10)は古すぎます。uv(クローンから uv tool install . を実行)を使うと、独自の Python が用意され、この両方の問題を回避できます。
ダウンロードファイルは hermitcrm-<version>.tar.gz で、展開すると hermitcrm-<version>/ になります。同じ場所に .sha256 ファイルもあります。展開する前に確認してください。
shasum -a 256 -c hermitcrm-<version>.tar.gz.sha256 # macOS
sha256sum -c hermitcrm-<version>.tar.gz.sha256 # Linux
Hermit CRM は PyPI からも利用できます。uv tool install hermitcrm(または pipx install hermitcrm)を実行すると、最初の3行を置き換えられます。また、仮想環境を有効化しなくても使える hermitcrm コマンドが用意されます。
hermitcrm init では、3つの質問に答えます。あなた(名前と送信元アドレス)、BCC の取り込み(トラッキングアドレスとそのアプリパスワード)、オンラインコピー(省略可能なプライベート git リモート。ローカルバックアップは schedule install または Settings > Backup から開始できます)です。いずれもスキップできます。hermitcrm setup を再実行するか、Web アプリの Settings ページ(/settings)を開いてください。架空の企業13社を追加するには --demo を、質問をスキップするには --no-setup を指定します。--data の代わりに HERMITCRM_DATA=~/crm を設定するか、フォルダー内でコマンドを実行することもできます。
hermitcrm doctor を実行すると、インストール全体をまとめて確認できます。Web アプリのすべてのページに Help リンクがあり、hermitcrm help [topic] を実行すると同じページが表示されます。
最初の企業
まず、サンプルの企業を見てみませんか。空のホームページには サンプルアカウントを見る(または hermitcrm sample add を実行)という項目があります。これは、担当者やメッセージ、パイプライン上の案件とタスクに加え、作成できるものを示すピン留めされたダッシュボードと一時停止中のルーティンを含む、架空の企業1社です。すべてのページにサンプルがあることを示すバーが表示されます。削除するを選ぶと1回のコミットで削除され(hermitcrm sample remove)、自分の企業には一切触れません。
アプリを http://127.0.0.1:8765 で起動した状態で、新しい企業をクリックし、名前と国を入力して保存します。または、ターミナルから同じ操作を行えます。
hermitcrm --data ~/crm add company "Acme BV" --country NL --website acme.example.com
# company acme created: companies/acme/company.md
どちらの方法でも、ファイルが1つ作成され、それが記録のすべてです。
~/crm/companies/acme/company.md
---
name: Acme BV
slug: acme
website: https://acme.example.com
country: NL
source: other
stage: prospect
stage_changed: 2026-09-17
...
さらに、company: acme created という1件のコミットが記録されます。企業ページを開いて連絡先を追加し、最初のメールを記録します。
hermitcrm --data ~/crm add contact acme "Jane Roe" --title CTO --email [email protected]
hermitcrm --data ~/crm add interaction acme --channel email --direction out \
--contact jane-roe --subject "Intro" --body "Hi Jane, ..."
連絡先は companies/acme/contacts/jane-roe.md に、メールは companies/acme/interactions/ 内のファイルになります。また、これで相手と連絡を取ったため、Acme は見込み客から対応済みに移行します。ファイルが3つ、コミットが3件あり、git log で履歴を確認できます。hermitcrm show acme を実行すると、すべてが表示されます。
データモデルはこれだけです。企業ごとにフォルダーが1つ、連絡先ごとにファイルが1つ、会話ごとにファイルが1つあります。以下の機能はすべて、その上に追加された便利な機能です。
機能
- パイプラインボード:独自のステージを設定できます。デフォルトは見込み客、アプローチ済み、ニーズ確認、提案、成約、失注、対象外、一時対象外(再評価日付き)です。設定で名前の変更、追加、並べ替え、削除ができ、それぞれに役割(進行中、成約、失注、完了、一時保留)を設定できます。
- 企業と連絡先のテーブル:列ごとのフィルターと並べ替えに対応しています。
- ホームページのフォローアップレーダー:相手から連絡があり、まだ返信していないスレッドと、自分から連絡したものの返信がないスレッドを表示します。
hermitcrm followupsからも利用できます。 - タスク:企業や人物ごとに必要なだけ登録できます。日付ボタンと列ごとのフィルターを備えたテーブルに一覧表示され、完了日は保持されます。企業の次のステップには、最も早い期限のタスクが表示されます。
- カレンダー:すべてのタスクを月間グリッドに表示し、今週のミーティングと Google カレンダーへのリンクも表示します。
- 予定されている各ミーティングの下にミーティング前の概要を表示します。ステージ、未完了の次のステップ、連絡先、直近3件のやり取りを確認できます。
hermitcrm briefからも利用できます。 - 拡張機能:現在表示しているページから入力済みのフォームを作成するブックマークレットです。企業ページから新しい企業を、ログイン済みの LinkedIn プロフィールから新しい連絡先を作成できます。自分のタブで読み込み、インストールは不要です。
- 企業ごとのタイムライン:メール、LinkedIn、電話、WhatsApp、ミーティングのやり取りを、受信・送信の別も含めて記録します。本文は1バイトも変えずに保持されます。
- 連絡先ごとのアプローチ文を生成:ボタンを1つ押すと、その人物の情報を入力した状態で Outreach が開きます。英語、ドイツ語、オランダ語、フランス語に対応します(国に基づき判定。ベルギーの場合はメール、ウェブサイト、郵便番号、役職から判定)。相手について把握している情報は、文章の下書きに使うメモとして保持されます。文面は
messages.tomlで調整できます。 - メッセージタブ:送信したすべてのメッセージと結果を表示します(返信があれば成功、一定期間後も返信がなければ失敗、または手動で設定)。選択肢は config.toml の
outcomesで設定します。 - レポート:週ごとの活動、ファネルとコンバージョン、ステージ滞在期間、成果、言語別・チャネル別のメッセージ結果、データの整合性を確認できます。
- BCC インポート:Gmail アドレスにメールを BCC または転送すると、該当する連絡先に記録されます。一致しないメールはホームの未整理に保留されます。
- カレンダーインポート:秘密の ICS フィードから過去のミーティングを取り込みます(OAuth 不要)。
- CSV、TSV、
.xlsxから企業や連絡先をインポートできます。 - Hermit に質問:すべてのページに質問ボックスがあります。表示中のページの情報をもとに AI が回答し、情報が足りない場合はデータフォルダー全体を読み取って回答します(読み取り専用)。ワンクリックで高性能モデルを使って再試行できます。
- ナイトモード(オン、オフ、またはシステム設定に合わせる)とアイコン付きサイドバー。
- スマートフォンから利用:
hermitcrm serve --host 0.0.0.0を実行すると、ローカルネットワーク上でアプリを利用できます。パスワードはないため、信頼できるネットワークまたはプライベートネットワーク(Tailscale、WireGuard)を使用してください。 - 情報の補完:無料の「URL から取得」(ウェブサイトまたは LinkedIn ページ)、またはすでに利用している任意の AI CLI(claude、codex、gemini、grok、カスタムコマンド)を使えます。
- 企業ごとのステージ履歴:git から再構築できます。
- MCP サーバー(
hermitcrm mcp):ターミナルを使わず、Claude Desktop、ChatGPT、Cursor など、MCP に対応するあらゆるツールから CRM のデータを読み書きできます。stdio 経由で、読み取りツール10個と書き込みツール7個(レコード、「自分好みに設定」、一括変更、取り消し)を利用できます。追加の依存関係はありません。 /help/feedbackのフィードバックフォーム:バージョン、件数、機能フラグを添えたレポートをフォルダーに作成し、送信前に表示します。情報が自動的に端末の外へ送信されることはなく、レポートに名前やパスが含まれることもありません。- PIPELINE.md:あなたとエージェント向けに生成される1ページの概要です。
- 不明な front-matter キーは保持されます。ほかのツールからフィールドを追加できます。
設定
hermitcrm init は、すべてのキーをデフォルト値のままコメントアウトした config.toml を作成します。
変更したい項目のコメントを解除してください。
| キー | デフォルト | 説明 |
|---|---|---|
owner_name | "" | あなたの名前です。最初の単語がアウトリーチの下書きに署名として使われます({owner_first_name})。 |
owner_email | "" | メインのメールアドレスです(参考情報)。 |
port | 8765 | 127.0.0.1 上のウェブアプリのポートです(hermitcrm serve --port で上書きできます)。 |
silent_days | 14 | この日数の間、やり取りがない企業は、連絡が途絶えていると見なされます。 |
push_enabled | true | 各コミット後に Git リモートへプッシュします(リモートが存在する場合)。 |
remote | "origin" | プッシュ先の Git リモート名です。 |
enrich_provider | "auto" | Enrich 用の AI CLI です。auto、claude、codex、gemini、grok、custom のいずれかを指定します。 |
enrich_command | "" | カスタムの enrich コマンドです。空の場合はプロバイダー独自のバイナリを使用します。 |
enrich_model | "" | enrich CLI 用のモデルです。空の場合はデフォルトを使用します。 |
enrich_timeout | 180 | enrich の呼び出しを中止するまでの秒数です。 |
message_window_days | 14 | 返信も結果もないメッセージは、この日数が経過すると直近の結果として扱われます。 |
fetch_timeout | 10 | URL からの取得でページを読み込む際の待機秒数です。 |
bcc_address | "" | BCC または転送先のアドレスです(例:[email protected])。空の場合、BCC のインポートは無効になります。 |
bcc_imap_host | "imap.gmail.com" | 該当メールボックスの IMAP サーバーです。 |
bcc_keychain_service | "crm-bcc" | アプリパスワードを保持する Keychain(macOS)または Secret Service(Linux)のサービスです(アカウント = IMAP ユーザー)。 |
bcc_lookback_days | 30 | BCC のインポートで検索する過去の日数です。 |
bcc_create_companies | true | 送信または転送したメールの宛先ドメインに該当する企業がない場合、ドメイン名を付けて企業を作成します。false の場合は、代わりにホームの「To file」に送られます。 |
my_addresses | [] | これらのアドレスからのメールは、あなたが送信したものとして扱われます。 |
bcc_ignore_domains | [] | これらのドメインの宛先(同僚)は、ログに記録されません。 |
calendar_keychain_service | "crm-calendar" | ICS URL のシークレットを保持する Keychain(macOS)または Secret Service(Linux)のサービスです。 |
calendar_keychain_account | "ics" | ICS URL 用の Keychain(macOS)または Secret Service(Linux)のアカウントです。 |
calendar_lookback_days | 30 | カレンダーのインポートで確認する過去の日数です。 |
calendar_ignore_titles | [] | タイトルにこれらのいずれかが含まれるイベントはスキップされます。 |
calendar_min_attendees | 2 | 参加者(あなたを含む)がこれより少ないイベントはスキップされます。 |
ai_tier | "medium" | Enrich と Ask Hermit のモデルティアです。medium(Claude:Opus)または strong(Claude:Fable)を指定します。 |
enrich_model_strong | "" | strong ティアのモデルを上書きします。空の場合はプロバイダーのデフォルトを使用します。 |
ask_timeout | 300 | Ask Hermit の呼び出しを中止するまでの秒数です。 |
theme | "light" | ウェブアプリの外観です。light、dark、system のいずれかを指定します。 |
update_check | true | 新しい Hermit CRM があるか、1 日に最大 1 回確認します(識別情報は送信されません)。 |
update_url | "" | 確認先です。空の場合は PyPI を使用します。{"version": "0.4.0"} を返す URL であれば使用できます。 |
feedback_email | "" | フィードバックフォームでレポートの送信先として提示するアドレスです。空の場合は自分でコピーします。 |
シークレットは config.toml に保存しないでください。シークレットを参照してください。
メッセージテンプレート
下書きには、パッケージのニュートラルな default_messages.toml が使われます。
データフォルダーに messages.toml を置くと、その一部を上書きできます。内容はディープマージされるため、2 行のファイルで十分です。
[languages.en]
signoff = "Best,\n{owner_first_name}"
データフォルダーの MESSAGING.md には、あなたの文体、アプローチ、使用言語を記載します。
CLI
hermitcrm [--data DIR] <command> --data, then $HERMITCRM_DATA, then the current directory
hermitcrm --version
hermitcrm init DIR [--demo] [--no-setup]
create a data folder (git repo, config, agent rules)
hermitcrm setup the setup questions again (you, BCC, backup, calendar)
hermitcrm help [TOPIC] how a feature works (the web app's /help pages)
hermitcrm doctor [--online] check Python, git, config, secrets, schedule, backup, updates
hermitcrm schedule install [--at HH:MM] [--serve]
daily sync --apply (launchd, systemd; schtasks is printed)
hermitcrm schedule remove|status
hermitcrm serve [--port N] [--host A] the web app (default 127.0.0.1; --host 0.0.0.0 reaches your phone)
hermitcrm show <slug> [--bodies N | --all]
hermitcrm digest [--days 7] recent interactions, oldest first
hermitcrm followups [--reply-after N] [--nudge-after N]
threads you owe a reply, and ones you are waiting on
hermitcrm brief [--days 7] each upcoming meeting with the record behind it
hermitcrm mcp serve this folder to AI clients over MCP (stdio)
hermitcrm report [--days N | --from D --to D] [--md]
hermitcrm check validate every file (exit 1 on problems)
hermitcrm rebuild regenerate PIPELINE.md and commit
hermitcrm add company NAME [--country NL] [--website URL] [--stage S] [--next-step TEXT] [--set FIELD=VALUE ...]
hermitcrm add contact SLUG NAME [--title T] [--email E] [--phone P] [--role R]
hermitcrm add interaction SLUG --channel email|linkedin|call|whatsapp|meeting --direction in|out
[--contact CSLUG] [--subject S] [--date D] [--body TEXT|-]
hermitcrm import FILE [--mode companies|contacts] [--map HEADER=FIELD] [--apply]
hermitcrm fetch <slug> [--url URL] [--apply]
hermitcrm enrich <slug> [--contact SLUG] [--apply]
hermitcrm bcc [--apply] [--eml FILE ...]
hermitcrm calendar [--apply] [--ics FILE ...]
hermitcrm sync [--apply] bcc, then calendar
hermitcrm backfill-history [--apply] stage_history from git
hermitcrm migrate [--dry-run] upgrade the data format (runs automatically)
書き込みを行うコマンドでは --apply を指定します。指定しない場合、実行内容が表示されます。
書き込みはすべて Git の 1 コミットとして行われます。
シークレット
シークレットは bcc_password(Gmail のアプリパスワード)と
calendar_ics_url の 2 つです。Hermit CRM は次の順にそれぞれを探します。
- 環境変数:
HERMITCRM_BCC_PASSWORD、HERMITCRM_CALENDAR_ICS_URL。 - データフォルダー内の
.secrets.toml(Git で無視されます。chmod 600を設定してください。設定されていない場合、Hermit CRM が警告します)。bcc_password = "abcd efgh ijkl mnop" calendar_ics_url = "https://calendar.google.com/calendar/ical/.../basic.ics" config.tomlのbcc_keychain_service/calendar_keychain_serviceで指定されたサービスを使う、システムのシークレットストア(キー名はすべてのプラットフォームで 「keychain」のままです)。- macOS:
securityを介した Keychain。 - Linux:
libsecret-toolsのsecret-toolを介した freedesktop Secret Service(GNOME Keyring、KWallet、KeePassXC)。 手動で設定する場合:secret-tool store --label='Hermit CRM calendar' service crm-calendar account ics(その後、URL を貼り付けます)。D-Bus セッションが実行中の場合にのみ使われるため、 ヘッドレスサーバーでは.secrets.tomlにフォールバックします。hermitcrm doctorに、どちらのケースに該当するかを示すkeyringの行が表示されます。
- macOS:
シークレットストアがない場合、シークレットは環境変数または
.secrets.toml に保存されます。平文ですが、読み取れるのは自分のユーザーアカウントのみで、コミットされることはありません。フルディスク暗号化により、マシンの電源がオフのときは保護されます。Linux のキーリングはログアウト中にロックされるため、毎日のインポートがその間に実行される場合(systemd の linger 機能)、アプリパスワードは .secrets.toml に保存してください。
BCC インポートの設定
簡単な方法は、ウェブアプリの 設定 → BCC 取り込み(/settings#bcc)または
hermitcrm setup を使うことです。Gmail 用に [email protected] を提案し、Gmail、Outlook/Hotmail/Live、iCloud 用の IMAP サーバーを選択します。アプリパスワードを .secrets.toml またはシステムのキーリング(macOS Keychain、Linux Secret Service)に保存し、ドライランで接続をテストして、追加する Gmail フィルターを表示します。
Matches: to:([email protected]) → Skip the Inbox, Mark as read, Apply label Hermit CRM
Gmail の場合は、2 段階認証を有効にし、https://myaccount.google.com/apppasswords でアプリパスワードを作成してください。通常のパスワードは拒否されます。
手動で設定する場合は、config.toml で bcc_address、my_addresses、必要に応じて
bcc_ignore_domains を設定し、シークレットとして bcc_password を保存します(シークレットを参照)。
送信するメールにそのアドレスを BCC で追加するか、スレッドをそのアドレスに転送し、hermitcrm bcc(ドライラン)、続いて hermitcrm bcc --apply を実行します。連絡先または会社に一致しないメールは、ホーム画面の 分類待ち(/#to-file)に保留されます。
hermitcrm schedule install を実行すると、毎日処理されます。
カレンダーインポートの設定
- カレンダーのシークレット ICS アドレスをコピーします(パスワードと同様に扱ってください)。
- Google Calendar:設定 → カレンダー → カレンダーの統合 → iCal 形式の非公開アドレス。
- Outlook / Microsoft 365:設定 → カレンダー → 共有カレンダー → カレンダーを公開 → ICS リンクをコピーします。
- iCloud:カレンダーを公開カレンダーとして共有します(
webcal://も使えます)。
- 設定 → カレンダー(
/settings#calendar)に貼り付けるか、hermitcrm setupの カレンダーに関する質問に「はい」と答えます。.secrets.tomlにcalendar_ics_urlとして保存され、ドライランでテストされます。手動で設定する場合は、シークレットを参照してください。 hermitcrm calendarを実行し、続いてhermitcrm calendar --applyを実行します(またはhermitcrm schedule installによる毎日のsync実行に任せます)。連絡先が判明している会議はmeetingのインタラクションとして記録され、それ以外はホーム画面の 分類待ち に保留されます。
更新
新しいバージョンが公開されると、サイドバーと Settings > About に Upgrade ボタンが表示されます。クリックするとインストールされ、アプリが再起動し、再読み込みを求められます(提供条件についてはSettingsを参照してください)。手動で行う場合:
uv tool install hermitcrm@latest # or: pipx install --force hermitcrm
どちらの方法でも、ダウンロードまたはクローンからインストールしたものを PyPI に切り替えます。uv tool upgrade と pipx upgrade は元のフォルダーを参照し続けるため、新しいバージョンは見つかりません。更新通知には、インストール方法に合ったコマンドが表示されます。その後、アプリを再起動してください。Mac では launchctl kickstart -k gui/$(id -u)/io.hermitcrm.serve、Linux では systemctl --user restart hermitcrm-serve を実行するか、hermitcrm serve を自分で停止して再起動します。(再起動を忘れた場合、ページでエラーになる代わりに、アプリに Restart needed とボタンが表示されます。)
ウェブアプリはチェックを1日に1回まで実行し(識別情報は送信されません。update_check = false または HERMITCRM_NO_UPDATE_CHECK=1 で無効にできます)、新しいバージョンがある場合はナビゲーションに通知を表示します。update_url が別の場所を指定していない限り、PyPI に問い合わせます。{"version": "0.4.0"} を返す URL であれば使用できるため、ダウンロードページに置いた静的ファイルでもパッケージインデックスは不要です。チェックで404が返る場合やネットワークに接続できない場合はその旨が表示され、問い合わせに失敗したのに「最新です」と報告することはありません。リリースでデータ形式が変更されると、次のコマンド実行時にフォルダーが自動的に移行され、migrate: data format N → M (...) という名前の単一の git コミットが作成されるため、git revert <sha> で元に戻せます。まず hermitcrm migrate --dry-run で変更内容を確認してください。新しいバージョンの Hermit CRM が書き込んだフォルダーは、アップグレードするまで使用できません。
データのレイアウト
~/crm/
├── config.toml settings (all optional)
├── messages.toml optional draft wording, merged over the defaults
├── .secrets.toml optional secrets (gitignored, chmod 600)
├── .hermitcrm-format data format version (committed)
├── PIPELINE.md generated summary, never edit by hand
├── CLAUDE.md / AGENTS.md rules for AI agents working in this folder
├── .claude/settings.json git commands Claude Code may not run here
├── MESSAGING.md your outreach playbook
├── inbox/ BCC and calendar items waiting for a decision
└── companies/<slug>/
├── company.md front matter: stage, next step, scores, history...
├── contacts/<slug>.md
└── interactions/<date>-<channel>-<direction>-<contact>.md
すべてのファイルは、キーが一定の順序で並んだ YAML フロントマター付きの Markdown です。そのため、同じデータを書き込めば常に同じ内容になり、差分には実際の変更だけが表示されます。Hermit CRM が認識しないキーは、認識済みのキーの後に保持されます。
データの管理はご自身の責任で
Hermit CRM はお使いのマシン上で動作し、どこにもデータを送信しません。アカウントも、サーバーも、テレメトリーもありません。作者がデータを受信、保存、処理することはなく、GDPR において、入力したすべてのデータの管理者はユーザーです。
その一方で、データの管理はご自身で行う必要があります。書き込みごとに作成されるコミットと、数分ごとに作成されるフォルダーのコピーは便利な機能ですが、保証ではありません。**ご自身でバックアップを作成し、正常に機能するか確認するため、時々復元してください。**メールアカウント、カレンダー、AI ツールを接続する場合は、必要なキーをご自身で用意し、それらのプロバイダーの利用規約についてもご自身で責任を負います。
DISCLAIMER.mdには、保証なし、責任負担なし、サポートなし、および商標の適用範囲について、すべて記載されています。
ロールバックの手順
書き込みごとにコミットが作成されるため、ロールバックは通常の git 操作で行えます。データフォルダーで実行してください。
git log -- companies/<slug> # the history of one company
git checkout <sha> -- <path> # restore one file to an older version
git revert <sha> # undo one commit, keeping history
hermitcrm rebuild # then regenerate PIPELINE.md
書き込みごとにリモートへプッシュする設定は、デフォルトで有効(push_enabled)です。git remote add origin <url> でリモートを追加するまでは何もしません。
AI エージェントとの連携
hermitcrm init は、データフォルダーに同じ内容の CLAUDE.md と AGENTS.md を書き込みます。まず PIPELINE.md を読み、多数のファイルを開く代わりに hermitcrm show / digest / report を使い、手動で編集した後は hermitcrm check と hermitcrm rebuild を実行してください。やり取りの本文は決して書き換えず、機能の仕組みを確認するには hermitcrm help <topic> を使ってください。書き込みには、YAML を手作業で作成するのではなく、エージェントが hermitcrm add company|contact|interaction を使います。これによりフィールドが検証され、変更がコミットされます。Claude Code、Codex、または任意のエージェントでフォルダーを開き、パイプラインのレビューやフォローアップ文案の作成を依頼してください。
Claude Code では、履歴を破壊する git コマンド(git reset --hard、commit --amend、rebase、push --force、git clean -f、rm -rf .git など)が禁止されています。各データフォルダーにある .claude/settings.json の拒否リストは、バイパスを含むすべての権限モードで有効です。コマンドのパターンに一致する仕組みなので、これはロックではなくシートベルトです。5 分ごとのバックアップ(hermitcrm help backups)により、何かがすり抜けた場合でも、すべてのバージョンが保持されます。
シェルを使えないクライアントには、hermitcrm mcp でフォルダーを MCP 経由で提供します。Claude Desktop で、Settings → Developer → Edit Config を開きます。
{
"mcpServers": {
"hermitcrm": {
"command": "hermitcrm",
"args": ["--data", "/Users/you/crm", "mcp"]
}
}
}
読み取りツール 10 個(list_pipeline、search_companies、show_company、digest、report、followups、brief、adjust_help、adjust_read、bulk_preview)と、書き込みツール 7 個(add_company、add_contact、add_interaction、adjust_write、adjust_config、bulk_apply、undo)を利用できます。各書き込みは 1 回の git commit となり、ウェブアプリで保存するのと同じです。adjust_write はファイルを保持する前に内容を確認し、bulk_apply は bulk_preview の実行後にのみ動作します。詳しくは hermitcrm help ai-agents をご覧ください。
ロードマップ
- WhatsApp:エクスポートしたチャットまたは Business Cloud API から、WhatsApp の会話をやり取りとして記録します。
- ウェブアプリで、レコードごとの履歴表示と復元に対応します。
- 標準で利用できる文案作成用の言語を増やします。
コントリビューション
CONTRIBUTING.md と docs/ARCHITECTURE.md をご覧ください。コミットには DCO のサインオフが必要です(git commit -s)。セキュリティに関する報告は SECURITY.md に記載の宛先にお送りください。同ファイルでは、報告を確認することは約束していますが、修正は約束していません。
サポート
Hermit CRM は無料のオープンソースであり、今後もその方針を維持します。日々の仕事に役立つようでしたら、Ko-fi で開発を支援できます。アプリの機能は、支援の有無に左右されません。
ライセンス
Apache License 2.0 — LICENSE と NOTICE をご覧ください。
ライセンスの対象はコードです。「Hermit CRM」という名称と hermit のロゴはライセンスの対象ではありません(第 6 条)。フォークして、名称を変更してください。保証も責任もありません。第 7 条と第 8 条に法的な表現で記載されており、DISCLAIMER.md には平易な言葉で説明されています。
Gijs Bos が開発しました。現状のまま共有されている個人プロジェクトであり、製品でもサービスでもありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。


