关于 Hermit CRM
Hermit CRM 是面向个体经营者的本地 CRM,将销售管道、联系人和互动记录保存为 Git 中的 Markdown 文件,并提供网页应用、命令行和 MCP 服务。数据可直接阅读和追踪版本,项目目前仍属 Alpha 软件。
主要功能
- 01以 Markdown 文件保存客户和互动记录
- 02通过 Git 记录每次更改
- 03提供销售管道看板、日历和报表
- 04支持任务、跟进提醒及会前简报
- 05导入邮件、日历和表格数据
- 06提供 AI Agent 可读写的 CRM 接口
适用场景
- 01个人销售跟踪潜在客户及交易阶段
- 02记录与联系人之间的邮件和会议
- 03安排后续任务并查看日历
- 04让 AI Agent 查询或更新 CRM 记录
MCP 相关
MCP 服务通过 stdio 向支持 MCP 的客户端提供 CRM 读写能力,包含 10 个读取工具和 7 个写入工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Hermit CRM
为个体创业者打造的免费本地 CRM。 你的销售管道、联系人和对话都以 Markdown 文件的形式保存在你自己的 Mac 上的 git 仓库中,并配有供你使用的 Web 应用,以及供 AI Agent 使用的 CLI 和 MCP 服务。无需账户,无需云端,采用 Apache 2.0 许可证。

使用 AI 编码 Agent 安装。 将以下内容粘贴到 Claude Code、Codex、 Cursor 或其他工具中:
Read https://raw.githubusercontent.com/Hermit-CRM/hermit-crm/main/INSTALL.md and set up Hermit CRM for me.
想自己输入命令?请参阅安装。
| 销售管道 | 公司 | 日历 |
|---|---|---|
![]() | ![]() | ![]() |
Alpha 版软件。 Hermit CRM 尚不完善,可能在不事先通知的情况下发生变化,也存在尚未被发现的错误。它免费提供,且不提供任何形式的保证——如果它丢失了你的数据,没有人会承担责任。请自行备份,并确认备份可以恢复。在将真实工作数据放入其中之前,请阅读 DISCLAIMER.md。
你的 CRM 是 git 中一个由 Markdown 文件组成的文件夹。每家公司、联系人和对话都是一个小型文本文件,你可以阅读、搜索、编辑和比较差异;应用所做的每次更改都会生成一次提交,因此文件的先前版本会保留在 git log 中,大多数错误都可以通过一次 git revert 撤销。本地 Web 应用为你提供销售管道看板、后续安排日历、消息草稿和报告。由于数据是纯文件,且配有简洁的 CLI,AI Agent(Claude Code、Codex 等)也能像你一样轻松地读取和更新销售管道。Hermit CRM 专为一个人打造:创业者、自由职业者,或自己负责销售的人。
对比
一份审慎、客观的对比(于 2026 年 9 月核对;欢迎纠正):
| Hermit CRM | HubSpot Free | Twenty | Obsidian CRM 插件 | |
|---|---|---|---|---|
| 数据以 Markdown 文件形式存储 | 是 | 否 | 否(Postgres) | 是 |
| 每次更改的 Git 历史记录 | 是,每次写入生成一次提交 | 否(活动日志) | 否 | 仅安装 git 插件后支持 |
| Web 应用 | 有,本地运行 | 有,托管版 | 有 | 无(在 Obsidian 中使用) |
| 邮件收集 | 通过 Gmail IMAP 密送/转发 | 有(密送、收件箱同步) | 有(Gmail/Outlook 同步) | 取决于插件 |
| 适用于 AI Agent | 纯文件、CLI、AGENTS.md | 通过 API | 通过 API | 纯文件 |
| 无需 Docker 即可自托管 | 可以(git clone + pip) | 不可以(仅提供 SaaS) | 不可以(Docker Compose) | 不适用(桌面应用) |
| 多用户团队 | 不支持 | 支持 | 支持 | 不支持 |
如果你需要团队 CRM,请使用其他产品。如果你希望自己的销售管道保存在自己掌控的文件中,Hermit CRM 就适合你。
安装
使用 AI 助手。 将本页顶部的那行内容粘贴到 Claude Code、Codex、Cursor 或其他 AI 编码工具中,或者解压下载文件,在其中打开文件夹并发送一条消息:
Read INSTALL.md and set up Hermit CRM for me.
它会检查机器、安装命令、创建数据文件夹、询问你的姓名和发件地址,然后启动应用。它不会询问应用密码或日历 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)可替代前三行,并提供一个无需激活虚拟环境即可使用的 hermitcrm 命令。
hermitcrm init 会询问三个问题:你(姓名和发件地址)、密送捕获(跟踪地址及其应用密码),以及在线副本(可选的私有 git 远程服务;本地备份可通过 schedule install 或 Settings > Backup 启动)。可以跳过其中任何一项;之后运行 hermitcrm setup 重新设置,或在 Web 应用中打开 Settings 页面(/settings)。添加 --demo 可创建 13 家虚构公司,添加 --no-setup 可跳过这些问题。你也可以不使用 --data,而是设置 HERMITCRM_DATA=~/crm,或在该文件夹内运行命令。
hermitcrm doctor 会一次性检查整个安装。Web 应用的每个页面都有一个 Help 链接;hermitcrm help [topic] 会打印相同的页面内容。
你的第一家公司
想先看看完整的客户档案吗?空白首页提供查看示例客户档案(也可以运行 hermitcrm sample add):其中包含一家虚构公司及其联系人、消息、一笔销售机会和任务,还有一个置顶仪表板和一个已暂停的例行任务,展示你可以构建什么。每个页面上都有提示条说明示例已添加;点击移除即可通过一次提交将其删除(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
无论采用哪种方式,都会创建一个文件,这就是公司的完整记录:
~/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。打开公司页面并添加联系人,然后记录第一封电子邮件:
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 联系过,它也会从潜在客户变为已接洽。三个文件,三次提交,运行 git log 即可查看历史记录。hermitcrm show acme 会打印所有内容。
这就是完整的数据模型:每家公司一个文件夹,每个联系人一个文件,每段对话一个文件。以下所有功能都只是基于此模型提供的便利功能。
功能
- 销售管道看板,包含自定义阶段。默认阶段为潜在客户、已接洽、需求了解、报价、已成交、已流失、不符合条件和暂不符合条件(带重新评估日期);可在设置中重命名、添加、重新排序或移除阶段,并为每个阶段设置角色(开放、已成交、已流失、已关闭或暂缓)。
- 公司和联系人表格,支持按列筛选和排序。
- 首页上的跟进提醒:显示别人给你发了消息而你尚未回复的对话,以及你发了消息但对方没有回复的对话。也可使用
hermitcrm followups。 - 任务:每家公司或联系人可创建任意数量的任务;所有任务显示在同一张表格中,每列都有日期按钮和筛选器,并保留完成日期。公司下一步要做的事就是到期时间最早的任务。
- 日历:在月视图中显示所有任务、本周会议和 Google Calendar 链接。
- 会前简报:显示在每个即将召开的会议下方,包含阶段、未完成的下一步、联系人和最近三次互动。也可使用
hermitcrm brief。 - 扩展功能:使用书签脚本,将当前浏览的页面转换为预填表单:公司页面可转换为新公司;已登录的 LinkedIn 个人资料可转换为新联系人。页面在你自己的标签页中读取,无需安装任何内容。
- 每家公司都有时间线:记录电子邮件、LinkedIn、电话、WhatsApp 和会议互动,包含收发内容,并逐字节保留正文。
- 为每位联系人生成外联消息:点击一个按钮即可打开 Outreach,并准备好该联系人的信息;支持英语、德语、荷兰语或法语(按国家/地区选择;比利时的语言根据邮件、网站、邮政编码和职位判断)。系统会将已知信息保存为笔记,用于撰写草稿;你可以在
messages.toml中控制措辞。 - 消息标签页:显示每条外发消息及其结果(收到回复后标记为成功、超过时限后标记为未成功,或手动设置;可选结果见 config.toml 中的
outcomes)。 - 报告:每周活动、销售漏斗和转化率、阶段停留时间、结果、按语言和渠道划分的消息效果,以及数据完整性。
- 密送导入:将邮件密送或转发到 Gmail 地址,即可将其记录到相应联系人名下;无法匹配的邮件会暂存于首页的待归档中。
- 日历导入:通过私密 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 提供十种读取工具和七种写入工具(记录、“设为你的专属”、批量更改、撤销),无需额外依赖。 - 反馈表单位于
/help/feedback:会在你的文件夹中生成一份报告,其中附有版本、计数和功能标志,并显示给你,由你自行发送。报告不会自行离开你的设备,也不会包含姓名或路径。 - PIPELINE.md:为你和你的 Agent 生成的一页摘要。
- 保留未知的 front-matter 字段,以便其他工具添加字段。
配置
hermitcrm init 会生成 config.toml,其中每个键都以注释形式列出默认值。
取消注释即可修改。
| 键 | 默认值 | 作用 |
|---|---|---|
owner_name | "" | 你的姓名;首个词会用于签署外联草稿({owner_first_name})。 |
owner_email | "" | 你的主要电子邮件地址(仅供参考)。 |
port | 8765 | Web 应用在 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 | Fetch from URL 读取页面时的等待秒数。 |
bcc_address | "" | 你密送或转发邮件的地址,例如 [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 则将邮件发送到 Home 上的 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 | "" | 强档模型覆盖项;留空则使用提供方默认值。 |
ask_timeout | 300 | 放弃一次 Ask Hermit 调用前等待的秒数。 |
theme | "light" | Web 应用的外观:light、dark 或 system。 |
update_check | true | 每天最多检查一次是否有更新的 Hermit CRM(不会发送任何标识信息)。 |
update_url | "" | 检查时访问的地址;留空则使用 PyPI。任何返回 {"version": "0.4.0"} 的 URL 都可用。 |
feedback_email | "" | Feedback 表单用于发送报告的地址;留空则由你自行复制报告。 |
不要将密钥放入 config.toml;请参阅 密钥。
消息模板
草稿来自软件包中通用的 default_messages.toml。在你的数据文件夹中放置
messages.toml,即可覆盖其中任意部分;配置会进行深度合并,因此只需一个两行文件:
[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 提交。
密钥
共有两个密钥:bcc_password(Gmail 应用专用密码)和
calendar_ics_url。Hermit CRM 会按以下顺序查找它们:
- 环境变量:
HERMITCRM_BCC_PASSWORD、HERMITCRM_CALENDAR_ICS_URL; - 数据文件夹中的
.secrets.toml(已加入 gitignore;请将权限设为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 lingering),请将应用专用密码保存在 .secrets.toml 中。
BCC 导入设置
最简单的方法:在 Web 应用中选择 Settings → BCC capture(/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,请开启两步验证,并在 https://myaccount.google.com/apppasswords 创建应用专用密码;普通密码会被拒绝。
手动操作:在 config.toml 中设置 bcc_address、my_addresses,以及可选的 bcc_ignore_domains,并将 bcc_password 存储为密钥(参见密钥)。
然后在你发送的邮件中密送该地址,或将邮件往来转发给它,再运行
hermitcrm bcc(试运行)和 hermitcrm bcc --apply。与联系人或公司均不匹配的邮件会留在主页的 To file(/#to-file)下。
hermitcrm schedule install 会每天运行一次。
日历导入设置
- 复制日历的私有 ICS 地址(请像对待密码一样保管):
- Google Calendar:Settings → 你的日历 → Integrate calendar → Secret address in iCal format。
- Outlook / Microsoft 365:Settings → Calendar → Shared calendars → Publish a calendar → 复制 ICS 链接。
- iCloud:将日历共享为公共日历(支持使用
webcal://)。
- 在 Settings → Calendar(
/settings#calendar)中粘贴该地址,或在运行hermitcrm setup时对日历问题回答 yes;该地址会以calendar_ics_url的名称存储在.secrets.toml中,并通过试运行进行测试。手动操作请参见密钥。 - 运行
hermitcrm calendar,然后运行hermitcrm calendar --apply(或者让hermitcrm schedule install每天运行sync)。与已知联系人相关的会议会记录为meeting互动;其余会议会留在主页的 To file 下。
更新
发布新版本后,侧边栏和 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 和一个按钮,而不会导致页面出错。)
Web 应用每天最多检查一次(不会发送标识符;可通过 update_check = false 或 HERMITCRM_NO_UPDATE_CHECK=1 关闭),并在有新版本时在导航栏中显示通知。除非 update_url 指向其他位置,否则应用会查询 PyPI;任何返回 {"version": "0.4.0"} 的 URL 都可使用,因此下载页面上的静态文件无需包含包索引。若检查返回 404 或无法连接网络,应用会如实说明——如果未能成功查询,就不会报告“已是最新版本”。当某个版本更改数据格式时,下次运行命令会自动迁移你的文件夹,并通过一个 git 提交完成,提交名称为 migrate: data format N → M (...),因此可以用 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 Agent 协作
hermitcrm init 会在数据文件夹中写入 CLAUDE.md 和 AGENTS.md(内容相同):先阅读 PIPELINE.md,使用 hermitcrm show / digest / report,而不要打开许多文件;手动编辑后运行 hermitcrm check 和 hermitcrm rebuild;绝不重写交互正文;使用 hermitcrm help <topic> 了解功能的工作方式。要写入数据,Agent 应使用 hermitcrm add company|contact| interaction,由它验证字段并提交,而不是手动编写 YAML。用 Claude Code、Codex 或任何 Agent 打开文件夹,然后请求检查销售流程或起草跟进内容。
Claude Code 被禁止运行会破坏历史记录的 git 命令
(git reset --hard、commit --amend、rebase、push --force、git clean -f、
rm -rf .git 等):每个数据文件夹都有一个 .claude/settings.json deny list,
无论处于哪种权限模式(包括绕过模式)都有效。它会匹配命令模式,因此只是安全带,而非锁;即使有命令绕过防护,5 分钟备份
(hermitcrm help backups)也会保留每个版本。
对于没有 shell 的客户端,hermitcrm mcp 可通过 MCP 提供文件夹服务。在
Claude Desktop 中,依次选择 Settings → Developer → Edit Config:
{
"mcpServers": {
"hermitcrm": {
"command": "hermitcrm",
"args": ["--data", "/Users/you/crm", "mcp"]
}
}
}
它提供十个读取工具(list_pipeline、search_companies、
show_company、digest、report、followups、brief、adjust_help、
adjust_read、bulk_preview)和七个写入工具(add_company、
add_contact、add_interaction、adjust_write、adjust_config、
bulk_apply、undo)。每次写入都会创建一个 git 提交,就像在 Web 应用中保存一样;adjust_write 会在保留文件前检查文件,bulk_apply 只有在运行
bulk_preview 后才会执行。详情请见 hermitcrm help ai-agents。
路线图
- WhatsApp:将 WhatsApp 对话记录为交互,支持从导出的聊天记录或 Business Cloud API 导入。
- 在 Web 应用中查看并恢复单条记录的历史版本。
- 开箱即提供更多草稿语言。
贡献
请参阅 CONTRIBUTING.md 和 docs/ARCHITECTURE.md。
提交需要 DCO 签署(git commit -s)。安全问题请发送至
SECURITY.md 中的邮箱;该文件承诺会阅读报告,但不承诺修复。
支持
Hermit CRM 是免费开源软件,并将一直如此。如果它值得你每周使用,可以在 Ko-fi 打赏以支持其开发。应用的任何功能都不依赖打赏。
许可
Apache License 2.0——请参阅 LICENSE 和 NOTICE。
许可涵盖代码,但不涵盖 “Hermit CRM” 名称或 hermit logo(第 6 条):你可以分叉,但请更改名称。软件不提供任何担保,也不承担任何责任;第 7 条和第 8 条以法律措辞说明了这一点, DISCLAIMER.md 则以通俗语言作了说明。
由 Gijs Bos 构建。这是一个按现状分享的个人项目,不是产品, 也不是服务。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。


