# lodos 与 1Password

Source: https://lodos.md/zh/compare/1password
Language: zh

保险库留在原处。lodos 接手它被使用的那一刻。

---

别换，而且我们把这句话放在开头而不是埋在结尾。用本站向每个产品提的四个问题去问，1Password 有三个的答案与 lodos 一字不差：服务器只握着自己打不开的密文，钥匙是你的，而它的 AI 工作从设计上就让模型同样拿不到值。差别不在保险库。差别是他们自己文档里的一句话：请假定你机器上的进程可以读到彼此的环境。lodos 正是把这一点堵上了，在解密任何东西之前就拒绝 shell 和通用 HTTP 客户端作为入口，并把手册、看板与排程放在与钥匙同一个加密存储里。

## 保险库把自己的事做得很好，直到工作开始的那一刻

密码管理器保证的是保管，而 1Password 把这份保证做到了它能被做到的程度。但凭据只有在被使用的那一刻才有意义，而正是那一刻它离开了保险库。这不是产品的缺口。这是产品在工作。

十五年来，那一刻的另一头站着一个人。人会读手册、开保险库、复制钥匙、执行命令，并在命令看起来不对劲时察觉。人就是那道关卡，没人需要把这道关卡写下来。

越来越多的时候那头不是人。那是一个模型，在读完一个网页四分钟之后握着你的终端。lodos 正是为这一刻的这一头而造，下面讲的都是这件事所改变的少数几处。

## 1Password 比 lodos 做得更好的地方

本页只主张一个很窄的点。在这个点之外，1Password 几乎在一切上领先，其中一部分我们根本无意去争。

- 在任何浏览器里自动填充、通行密钥、Watchtower 泄露提醒、旅行模式，甚至还有手表 App。lodos 这些一样都没有：你的登录本就不住在这里。
- 自 2018 年起的 SOC 2 Type 2 意见书、ISO 27001、公开的渗透测试报告和公开的漏洞赏金计划。lodos 目前一份这样的文件都还没有。它拿什么来替代写在下面两节，而那并不能替代一次审计。
- 十五年的保险库手艺，以及一个安放那三百个并非 API 密钥的登录的地方，还能与从不打开终端的人共享。lodos 不是为这里面的任何一件事而造的。

## lodos 不是更好的保险库，而是保险库之后的那一半。

继续用 1Password。下面这些是密码管理器没有理由具备的：解释这条凭据的页面、因它而关闭的任务、它运行的排程，以及同时握着这三样却依然读不到值的助理。

### 他们自己的那句话，以及我们的回答

1Password 的文档很坦白：「你应当假定你电脑上的进程可以访问同一用户运行的其他进程的环境。」对一个通用工具而言，这诚实且正确。lodos 则完全不继承环境。它启动的每一个进程都从白名单构建，再叠上一份凭据阻断清单：你 shell 里存在的 ANTHROPIC、AWS 或 STRIPE 变量，在子进程里根本不存在。代码中有五处会启动进程，五处全都经过同一个函数；若出现第六处绕过它，构建期的检查会让发布失败。主目录可以按调用换成临时目录。任何值都不会作为命令行参数传递，因此也不会出现在进程列表里。

### 是拒绝，不是加密

这才是真正的差别，而且它很小，所以要说准确。`op run` 是通用注入器：你指名哪个二进制它就跑哪个，那个二进制拨往哪个主机它就去哪个，对一个由人驾驶的工具来说这是正确的行为。lodos 假定调用方可能不是人。在解密任何东西之前，入口会与一份拒绝清单比对，把每一个通用 HTTP 客户端、每一个解释器、每一个 shell 都挡掉：curl、wget、node、python、ruby、sh、bash、env、xargs、nc、ssh。只做一件事的工具可以通过。你还要声明这条命令可以到达哪些主机，裸通配符会被拒绝。刻意地能力更少。

### 模型拿到的是退出码，而构建会证明这一点

值在桌面进程中解密，以环境变量或 0600 权限的临时文件注入一个隔离子进程，并从所有返回内容中剔除，连它的 base64 与十六进制形式一并剔除。到达模型的只有 stdout、stderr 和一个退出码。lodos 里没有任何工具会把明文密钥返回给 AI，若有人添加，构建期的不变式会让发布失败。这样的检查每次构建跑四十一项，每一项都通过故意破坏它、看着构建变红来证明。

### 字段自己可以说明哪些工具能碰它

在 lodos 里，敏感性是按字段而不是按条目声明的，而字段还能更进一步，指名允许使用它的工具。什么都不声明，它就照旧；声明一个空列表，这个字段就变成只可查看，任何东西都无法把它注入命令。检查发生在该分区被解密之前，关键正在于此：这里的拒绝发生在密文仍是密文的时候。这是你主动开启的限制，不是一条通行规则，也是这些保证里最窄的一条，所以我们把它说得很窄。

### 有些东西根本写不进 lodos

一把私钥、一个 AWS 凭据文件、一个 .netrc、一份 Docker 配置、一段 PEM 块：把其中任何一个粘进页面、记忆、技能或工作流，写入都会被拒绝，和其他一切具有密钥形态的内容一样。这道关卡布在二十条不同的写入路径上，也是密码管理器没有理由具备的一层，因为保险库的本职就是把你给它的东西存起来。在这里，内容防火墙在任何东西被保存之前、在任何东西到达模型之前就已经跑过。

### 钥匙就放在解释它的那一页旁边

保险库握着凭据。它不知道这些凭据是干什么用的。在 lodos 里，手册引用凭据的方式和代码引用变量一样，写作 {{secrets.stripe.sk_live}}：页面谁都能读，而值待在页面永远到不了的地方。轮换钥匙时没有任何东西需要修改，因为从来没有任何东西持有副本。这也意味着，读这份手册的助理手上已经有了行动所需的那个引用。

### 会自己收尾的看板，按时开跑

助理能读、能规划、能推进的看板任务，旁边是一个自我打理的 wiki：提一个问题，得到带 [[wikilink]] 脚注的答案，同时夜间任务用纯 SQL 跑五项检查，不产生 AI 成本。当一件事开始重复，它就变成声明式工作流：AI 起草、你批准、按排程运行、调用你自己的 API，凭据只在真正使用的那一刻注入。就是在这里，一个存起来的密钥变成了真正发生过的工作。

### 现在是记录，之后是共享的历史

每一次访问都会追加一条：发生了什么、谁提出的、用了哪个工具，而字段路径以哈希形式记录，因此记录会写下有人用过一把生产密钥，却不会变成你生产密钥的第二份清单。每一条都由只有你的主密码才能推导出的密钥签名，并以哈希连到前一条，因此不破坏这条链就无法修改或删除任何一条。记录留在你的机器上。多个人可以把同一份历史互相核对，链也可以锚定到外部时间戳，因此它的年龄在你这台机器之外同样可证。有人离开时，lodos 转动那把锁，并把自己做不到的事说清楚：锁后面的密钥只有你能转。

## 把凭据搬过来

1. 把 1Password 保险库导出为 .1pux 文件，然后把 lodos 指向它。保险库会作为分区进来，字段作为条目进来，你标记为敏感的一切在进来的路上就在你的设备上完成加密。同一条路径也接受 .env 文件、Bitwarden 与 LastPass 的导出，或者一段直接粘贴的内容。
2. 实际上你很少需要全部。这里真正管用的是自动化真正会碰到的那一小把：Stripe 密钥、数据库地址、定时任务需要的 token。对多数创始人来说不到十二个。
3. 从解释它们的那一页以 {{secrets.stripe.sk_live}} 的形式引用，然后让助理去把活干了。

你的 1Password 保险库保持原样：不搬动、不删除任何东西。对那三百个并非 API 密钥的登录来说，正确答案仍然是 1Password。搬过来的，是由不是你的东西去使用的那一部分。

## 它能看到什么

两款产品使用同样的四个答案来描述。对同一种行为没有更好听的说法可选，因此没有哪一列能给自己放宽标准。

| 它能看到什么 | 1Password | lodos |
| --- | --- | --- |
| 你的数据存放在哪里 | 在厂商的服务器上 | 在你的设备上，同步可选 |
| 厂商能读到什么 | 只有它打不开的密文 | 只有它打不开的密文 |
| 它的 AI 能读到什么 | 结构，绝不包含密钥值 | 结构，绝不包含密钥值 |
| 密钥在谁手里 | 你 | 你 |
| 起价 | $8.99 每人每月 | $0 |

2026-08-03 从厂商页面读取: https://1password.com/pricing/business

## 1Password 的 AI 能看到我的密码吗

不能，而且他们是特意这样设计的。在一个说反话更方便的页面上，这一点值得写清楚。他们的 MCP 服务器用他们自己的话说「只看到变量名，绝不会把存放在 1Password 中的密钥值返回给客户端」。1Password for Claude 在浏览器层注入凭据，并声明「密码与 MFA 一次性验证码对模型、模型上下文或 Anthropic 的系统始终不可访问」。这与 lodos 给出的是同一份保证，只是从另一侧抵达；谁要是告诉你 1Password 把你的保险库喂给了模型，那人是在卖东西。

悬而未决的问题从来不是模型，而是模型调用的那个工具，以及那个工具继承了什么。`op run` 不限制哪个二进制会运行、也不限制它连去哪里，而它交出去的环境，恰恰落在他们文档所警告的那片空间里。这些都不是缺陷；一个为键盘前的人而造的通用工具本就该这样。lodos 只有一种调用方，所以它负担得起拒绝大多数二进制、从零构建环境，并让你把主机一一说出来。

## lodos 拒绝运行什么

这是 lodos 刻意比被比较的那个工具能力更少的唯一一处，所以值得把先后顺序讲具体。

1. 你的页面像引用变量一样引用这条凭据：`{{secrets.stripe.sk_live}}`。存下来的是这个引用，模型看到的也只有它。
2. 在解密任何东西之前会检查三件事：入口对照拒绝清单、你声明的主机清单，以及这个字段是否允许这个工具。shell、解释器或通用 HTTP 客户端在此被挡下，出网的裸通配符也一样。到这一步，保险库还没有被打开。
3. 之后才轮到解密，注入一个隔离子进程，其环境是从白名单构建而不是从你那里继承，并从所有返回内容中剔除。

这些都不会让 lodos 成为更好的密码存放处。它只是让「注入 AWS 密钥，然后用 curl 把它发出去」这一手在棋盘上不存在。

## 三件事，两种做法

同一个创始人、同一周、同样三件要办的事。

### 轮换 Stripe 密钥

- **1Password:** 你在 Stripe 里换掉它，更新条目。然后开始找它还落到了哪里：.env、部署脚本、手册、三月发给某人的那条消息。
- **lodos:** 你改一个字段。每个页面和每个工作流照常运转，因为它们从来没有持有过那个值。它们持有的是一个引用。

### 助理需要一条凭据才能把任务做完

- **1Password:** 你打开终端，自己在 `op run` 下跑那条命令；或者把密钥粘到助理能读到的地方，然后接受这件事。
- **lodos:** 你把活描述一遍。助理指名那个引用，桌面端解密并注入一个由白名单构建的进程，回到模型那里的是一个退出码和一段清理过的输出。

### 谁用了生产密钥，用来做什么

- **1Password:** 1Password Business 会把事件推送到你的 SIEM，如果你是会运营 SIEM 的那类公司，这就是正确答案。
- **lodos:** 记录已经在你的机器上，就在它所属的那个任务旁边，已签名并连成链，字段路径以哈希保存，所以这份记录不会变成你密钥的第二份清单。

## 那到底该怎么做

- 继续用 1Password。开头说过，结尾依然成立：你的登录属于那里，我们没打算把它们拿走。
- 当你越来越多的凭据是由不是你的东西花掉的，当把手册、任务和钥匙分放在三个应用里开始让你搭进一个个下午时，把 lodos 加进来。
- 如果你的一周就是密码和浏览器，那就整个跳过 lodos。比起换到一个为别的问题而造的工具，我们更希望你留在那个合适的工具上。

## 人们真正会问的问题

### 给开发者的最佳 1Password 替代品是什么

就存密码而言，老实说：1Password。如果你要找的是一个存放自动化所花凭据的地方，好让 AI 助理能使用它们却读不到它们，那是 lodos，而它更像是另一个产品而不是替代品。用这个词搜索的人多半想要后者，最后却在比较前者。

### lodos 会取代我的密码管理器吗

不会。没有浏览器扩展、没有自动填充、没有通行密钥，也没有密码生成器，而且这些都不会出现。lodos 存的是你的工作流和助理会花掉的那十来条凭据，就放在花掉它们的页面和任务旁边。

### 我能把 1Password 保险库导入 lodos 吗

可以。导出 .1pux 并把 lodos 指向它：保险库变成分区，字段变成条目。同一条路径也处理 .env 文件、Bitwarden 的 JSON 和 LastPass 的 CSV，或者你直接粘贴的一段内容。你原来的保险库不受影响，而实际上多数人只把自动化会花掉的那些凭据搬过来。

### lodos 也像 1Password 一样是零知识的吗

同一类保证。你标记为敏感的值会在你的设备上、用一把由主密码派生的分区专属密钥加密；开启云同步后，我们的服务器握着的也是一个打不开的数据块。我们不会声称自己比 1Password 更零知识，因为他们确实是，而那样的说法会是假的。

### 把 op run 和 AI 助理一起用安全吗

小心用是可以的。它从不把值展示给模型，这是难的部分，而 1Password 已经解决了。它按设计不做的事，是限制哪个二进制会运行、以及它连去哪里，而他们的文档也指出环境变量可被以你身份运行的其他进程读取。如果命令是由人挑的，那没问题。lodos 假定调用方可能不是人，所以它拒绝 shell、解释器和通用 HTTP 客户端作为入口，用白名单而不是继承你的环境来构建子进程，并要求你声明主机。

### lodos 有密钥访问的审计记录吗

有，在本地。每次访问都会追加一条，记录发生了什么、谁提出的、用了哪个工具，字段路径以哈希而非明文保存，该条由主密码派生的密钥签名并连到前一条。记录留在你的机器上，不流向任何地方。多个人可以互相核对同一份历史，链也可以锚定到外部时间戳。

### lodos 免费吗

应用免费且无需账号：保险库、wiki、图谱、任务、工作流、内置二十四套技能、文档、图表和内置助理。唯一付费的是加密云备份，整套安装每月 9 美元，不是按席位。作为参照，1Password Business 为每用户每月 8.99 美元，十人以内的 Teams 套餐为固定 24.95 美元。AI 跑在你自己的 Claude 账号上，所以我们也不会把 token 转卖给你。

## 真正分开的那几行

这不是功能清单。1Password 从未声称自己有看板，用这个给它打分也说明不了什么。以下是两个产品在同一件工作上相遇、却给出不同答案的五个地方。

| | 1Password | lodos |
| --- | --- | --- |
| 谁来选这条命令 | 你指名的任何二进制，去往它拨打的任何主机。 | shell、解释器与通用 HTTP 客户端一律拒绝。主机由你声明，裸通配符会被拒绝。 |
| 环境变量继承 | 会继承。他们自己的文档建议你假定同一用户的其他进程能读到它。 | 不继承。子进程的环境从白名单构建，再叠上一份凭据阻断清单。 |
| 每条凭据的工具限制 | 在单条凭据这一层没有限制。 | 字段可以指名哪些工具能碰它，并在该分区被解密之前完成检查。 |
| 把一把私钥粘进笔记 | 按你给的样子存下来。存东西本来就是它的工作。 | 会被拒绝。PEM 块、SSH 密钥、.netrc 和 AWS 凭据文件永远到不了页面、记忆或提示词。 |
| 模型收到什么 | 永远不是值。按设计在通道之外注入。 | 永远不是值。只有退出码和清理过的输出；一旦有工具返回值，构建检查就会失败。 |

如果本页对 1Password 的描述有误，那是一个缺陷。告诉我们，我们会改。
