Show HN:Wienerdog——为 Claude Code/Codex 提供记忆与自我改进技能
英文标题:🔶 Show HN: Wienerdog – memory and self-improving skills for Claude Code/Codex
Wienerdog 是一款开源工具,通过本地文件为 Claude Code 和 Codex CLI 提供持久记忆、可复用技能及每日自动整理流程,无需守护进程、服务器或遥测。它让两个 AI 工具共享同一个基于 Markdown 的记忆库,并可通过夜间“Dreaming”任务从对话中提炼长期记忆和改进工作流技能。项目强调本地优先与安全控制:数据默认不上传、计划任务在执行前校验代码与授权描述符,并可通过 git 回滚变更。对开发者而言,它提供了一种不更换模型、而是通过配置文件、记忆和技能层提升 AI 编程助手持续协作能力的方案。
893.7 KB
中文
只用文件,就能赋予你的 AI 记忆、习惯与每日例行流程。
按设计只使用文件:没有守护进程、没有服务器、没有遥测。没有任何东西在监听,没有任何数据会回传;wienerdog uninstall 会删除它写入的所有文件。
你已经在为优秀的 AI 模型付费。Wienerdog 不会改变模型本身,而是通过在其周围安装合适的文件,让它显得_显著更聪明_:包括一份真实的用户档案、持久化 Markdown 记忆、用于重复任务的技能,以及一个可从对话中学习的夜间“做梦”流程。如果你同时使用 Claude Code 和 Codex CLI,它们会共享这些内容:同一个记忆库可由你当前使用的任一工具读写,因此切换工具并不意味着要重新开始面对一个对你一无所知的 AI。
npx wienerdog@latest init
想在写入任何内容前先审查计划?先运行
npx wienerdog@latest init --dry-run——它会准确列出将要创建的内容,且不会修改任何文件。
还没有安装 Node? 可以改用引导脚本——在 macOS/Linux 上:
curl -fsSL https://raw.githubusercontent.com/wienerdog-ai/wienerdog/main/install.sh | bash
在 Windows 上,打开 PowerShell 并运行:
irm https://raw.githubusercontent.com/wienerdog-ai/wienerdog/main/install.ps1 | iex
任一脚本都会检查 Node(以及 git);如果缺少其中任意一个,脚本会询问是否为你安装——始终先征求同意、显示将执行的准确命令;如果你拒绝,或当前不在交互式终端中,它只会输出该命令,由你自行运行。在 Windows 上,通过这种方式安装 Node 可能会弹出一次管理员权限(UAC)提示——这是 Windows 在请求许可,不是 Wienerdog;拒绝后,你同样会获得可自行运行的命令。窗口会保持打开,并在完成后通知你。先阅读 install.sh 或 install.ps1 也可以;Node 准备就绪后,两个脚本都会转交给同一个带版本的 npm 包。该转交过程不会再次暂停以请求确认——它会在安装时打印计划,而运行这一行命令即表示你已授权继续。希望采用引导式流程?请使用下方由 AI 协助的安装方式。
**Windows 功能完全对等:**记忆库、技能和定时夜间做梦均可使用——夜间做梦会为你自己的用户账户注册到任务计划程序中(无需管理员权限);如果电脑在做梦时间处于关机或睡眠状态,它会在你回来后补做。
完全不习惯使用终端?将下方提示词粘贴到 Claude Code 或 Codex 中,你的 AI 会为你安装 Wienerdog。在这个流程中,你是审批环节:它会先展示计划,只有在你确认后才安装,并会指向相关元数据,让谨慎的 AI 能在执行前确认该软件包真实可信。
Please install Wienerdog for me. It's an open-source tool that gives an AI a
memory and daily routines using plain files. Before running anything, you can
verify it: GitHub https://github.com/wienerdog-ai/wienerdog, npm
https://www.npmjs.com/package/wienerdog. Then:
1. Show me the plan: run `npx wienerdog@latest init --dry-run` and summarize what
it would create. Wait for me to say go ahead.
2. Install it: run `npx wienerdog@latest init --yes`.
3. Tell me to restart Claude Code (or Codex) so the new Wienerdog skills
load — they only appear after a restart.
4. After I restart, walk me through the Wienerdog setup.
重启后,在 Claude Code 中:
在 Codex CLI 中,启动技能的方式略有不同:输入 /skills 查看它们,然后输入 $wienerdog-setup——或者直接用自然语言请求“Wienerdog setup”。
就是这样。你的 AI 会访谈你、构建你的记忆库,并开始记住信息。
状态:0.x。 可安装,且维护者每天都在实际使用;在 1.0 之前,文件格式仍可能演进(已安装的文件布局是我们的公共 API)。
-
一份真正的 CLAUDE.md / AGENTS.md——通过访谈生成,而非空白页面。你的 AI 会在每次会话中了解你是谁、你如何工作,以及你关心什么。
-
由两个 Agent 共享的单一记忆库——Claude Code 的 CLAUDE.md 和 Codex CLI 的 AGENTS.md 都由同一场访谈生成,并从同一个记忆库读取。你在一个工具中教给它的内容,下次打开另一个工具时依然存在——不是两个各自拥有独立记忆的 AI。记忆库本身采用 Obsidian 约定的 PARA 结构(如果你使用 Obsidian,它可与之配合;但并不要求使用 Obsidian):你拥有的纯文本文件,可由你阅读,也可用 git 进行版本控制。它始终留在你的电脑上——Wienerdog 不会自行将其推送到任何地方;如果你想发布它,需要由你自己完成。Wienerdog 还会从它读取和写入的内容中清除看似敏感的信息(API 密钥、token),但这种清理属于尽力而为,并非保证——如果你确认真实凭证已被记录,请遵循密钥事件处理指南。
-
做梦(Dreaming)——夜间任务会审查当天的对话,通过质量门槛将重要信息提升为长期记忆,并把重复工作流转化为可复用技能。Wienerdog 创建的技能会持续学习:做梦流程会观察它们在实际使用中的表现,并随时间修改它们——你自己的技能以及 Wienerdog 内置技能绝不会被触碰(参见威胁模型)。每晚最多产生一次 git commit;任何内容都可以回滚。如果你的电脑在该时间关机或休眠,也无需担心——Wienerdog 会在你下次回来时自动补做。做梦流程还可以在它跨足够多会话反复观察到相同信息后,提议编辑你的身份笔记——即你是谁、你的偏好和目标——但它提议的任何内容都不会进入你的下一个会话,除非你使用
wienerdog memory approve批准确切文本。你可以随时运行wienerdog safety查看每项受控能力的状态。 -
Google Workspace 感知能力(可选)——Gmail、Calendar 和 Drive 访问默认采用“先读取、先起草”的设计。在 Wienerdog 强制执行的路径中——一个持有凭证且仅暴露固定动词的本地能力代理——你的 AI 只能向你明确授予权限的对象、向你明确批准的收件人_发送_内容;无人值守的发送只会发往你自己的地址;授权只能由你在键盘前创建,绝不会由 AI 创建。1 你可以随时通过
/wienerdog-google-setup连接;运行wienerdog safety可查看每项受控能力的状态。 -
适合笔记本电脑的例行流程(可选,可从目录中挑选)——完成设置后,可从菜单中选择现成的定时例行流程(晨间摘要、收件箱整理、每周回顾,……),由操作系统的原生调度器(launchd / systemd / Task Scheduler)运行。笔记本在运行时间处于合盖状态?它会补做。没有守护进程。每项例行流程均在受严格限制的 AI 副本中运行,并会在每次运行前重新检查(参见威胁模型);你可以随时运行
wienerdog safety查看每项受控能力的状态。 -
定时运行会在执行前经过验证。 每次夜间触发时,一个独立启动器会先检查应用代码是否与其记录的内容地址匹配,以及任务是否仍与其经摘要绑定的授权描述符匹配;Claude 和 Git 只会从其被固定且经过结构验证的安装位置启动。在
wienerdog sync之外对config.yaml或应用目录树所做的编辑,不会改变实际运行的内容——任务会拒绝运行并发出警报(故障时默认关闭)。对于config.yaml编辑,修复方式是执行一次wienerdog sync;当检查无法确认应用文件本身时,警报会刻意不建议你执行同步——同步并不是此时安全的下一步——而是要求你从可信来源重新安装。2
为什么选择 Wienerdog,而不是“个人 AI Agent”应用?
OpenClaw 和 Hermes 等项目令人印象深刻——但它们是_应用程序_:你必须运行、保护和更新的网关、守护进程和服务器。Wienerdog 的设计则有所不同:
Wienerdog 就是文件。 Markdown、技能、钩子、配置——由你已经在运行且信任的 AI 工具进行解释。没有新的长期运行软件:没有任何东西监听、提供服务或回传数据。不需要额外硬件,也不需要 VPS。并且,由于一切都通过你自己的 Claude Code / Codex 订阅执行,你始终完全遵守服务提供商的服务条款。
这个仓库从第一天起就用 Wienerdog 来实际驱动自身:它自己的记忆库位于 memory/,开发约定就是它自己的 CLAUDE.md,而大部分代码由遵循其规格系统的中端 AI 模型编写(参见 docs/specs/)。产品论点——当你在 AI 周围安装合适的文件时,它会显著变得更好——也正是该项目的构建方式。
English / 原文
Give your AI a memory, habits, and a daily routine — with nothing but files.
Just files, by design: no daemon, no server, no telemetry. Nothing listens, nothing phones home — andwienerdog uninstall removes every file it wrote.
You already pay for a great AI model. Wienerdog makes it feel dramatically smarter — not by changing the model, but by installing the right files around it: a real profile of you, a persistent markdown memory, skills for your recurring tasks, and a nightly "dreaming" process that learns from your conversations. If you use both Claude Code and Codex CLI , they share this: one memory vault, read and written by whichever one you're in, so switching tools doesn't mean starting over with an AI that knows nothing about you.
npx wienerdog@latest init
Want to review the plan before anything is written? Run
npx wienerdog@latest init --dry-runfirst — it prints exactly what would be created and touches nothing.
No Node installed yet? Use the bootstrap script instead — on macOS/Linux:
curl -fsSL https://raw.githubusercontent.com/wienerdog-ai/wienerdog/main/install.sh | bash
On Windows , open PowerShell and run:
irm https://raw.githubusercontent.com/wienerdog-ai/wienerdog/main/install.ps1 | iex
Either script checks for Node (and git); if either is missing it offers to install it for you — always asking first and showing the exact command it will run, and simply printing that command for you to run yourself if you decline or aren't in an interactive terminal. On Windows, installing Node this way may pop up a one-time admin (UAC) prompt — that's Windows asking permission, not Wienerdog; decline it and you get the same command to run yourself instead. The window stays open and tells you when it's done. Read install.sh or install.ps1 first if you like; once Node is ready either one hands over to the same versioned npm package. That handoff doesn't pause for another confirmation — it prints its plan as it installs, and running the one-liner is your go-ahead. Prefer a guided path? Use the AI-assisted install below.
Windows has full parity: vault, skills, and scheduled nightly dreaming all work — the nightly dream registers in Task Scheduler for your own user (no admin rights), and if the machine was off or asleep at dream time it catches up after you're back.
Not comfortable with the terminal at all? Paste the prompt below into Claude Code or Codex and your AI will install Wienerdog for you. In this flow you are the approval step: it shows you the plan first, installs only after you say go, and points you at the metadata so a cautious AI can confirm the package is genuine before running it.
Please install Wienerdog for me. It's an open-source tool that gives an AI a
memory and daily routines using plain files. Before running anything, you can
verify it: GitHub https://github.com/wienerdog-ai/wienerdog, npm
https://www.npmjs.com/package/wienerdog. Then:
1. Show me the plan: run `npx wienerdog@latest init --dry-run` and summarize what
it would create. Wait for me to say go ahead.
2. Install it: run `npx wienerdog@latest init --yes`.
3. Tell me to restart Claude Code (or Codex) so the new Wienerdog skills
load — they only appear after a restart.
4. After I restart, walk me through the Wienerdog setup.
After the restart, in Claude Code:
In Codex CLI, skills start a little differently: type /skills to see them, then $wienerdog-setup — or just ask for "Wienerdog setup" in plain words.
That's it. Your AI interviews you, builds your memory vault, and starts remembering.
Status: 0.x. Installable and dogfooded daily by its maintainer; file formats may still evolve until 1.0 (the installed file layout is our public API).
-
A proper CLAUDE.md / AGENTS.md — generated from an interview, not a blank page. Your AI knows who you are, how you work, and what you care about, in every session.
-
One memory vault, shared by both agents — Claude Code's CLAUDE.md and Codex CLI's AGENTS.md are both generated from the same interview and read from the same vault. Teach it something in one tool, and it's there the next time you open the other — not two AIs with two separate memories. The vault itself is Obsidian-convention PARA structure (works with Obsidian if you use it, doesn't require it): plain files you own, readable by you, versioned in git. It stays on your machine — Wienerdog never pushes it anywhere on its own; publishing it, if you ever want to, is something you do yourself. Wienerdog also scrubs secret-looking text (API keys, tokens) out of what it reads and writes, but that scrubbing is best-effort, not a guarantee — if you know a real credential got captured, follow the secret-incident guide.
-
Dreaming — a nightly job reviews the day's conversations, promotes what matters into long-term memory through quality gates, and turns your repeated workflows into reusable skills. Skills Wienerdog created keep learning: the dream watches how they perform in real use and revises them over time — your own skills and Wienerdog's built-ins are never touched (see the threat model). Every night is at most one git commit; anything can be reverted. If your computer is off or asleep at that time, don't worry — Wienerdog catches up automatically the next time you're back. The dream can also propose edits to your identity notes — who you are, your preferences, your goals — once it's noticed the same thing across enough sessions, but nothing it proposes reaches your next session until you approve the exact text with
wienerdog memory approve. Runwienerdog safetyany time to see the status of every gated capability. -
Google Workspace senses (optional) — Gmail, Calendar, and Drive access that is read-first and draft-first by design. On the path Wienerdog enforces — a local capability broker that holds the credentials and exposes only fixed verbs — your AI can only send what you explicitly granted, to recipients you explicitly approved, and unattended sending goes to your own address only; grants are created by you at the keyboard, never by the AI.1 Connect it any time with
/wienerdog-google-setup; runwienerdog safetyto see the status of every gated capability. -
Laptop-friendly routines (optional, pick from a catalog) — after setup, choose from a menu of ready-made scheduled routines (morning digest, inbox triage, weekly review, …) run by your OS's native scheduler (launchd / systemd / Task Scheduler). Laptop was closed at run time? It catches up. No daemon. Each routine runs in a locked-down copy of your AI that's checked fresh before every run (see the threat model); run
wienerdog safetyany time to see the status of every gated capability. -
Scheduled runs are verified before they run. At every nightly fire, an independent launcher first checks that the app's code matches its recorded content address and that the job still matches its digest-bound authorization descriptor; Claude and Git are only spawned from their pinned, structurally verified install locations. Edits to
config.yamlor the app tree made outsidewienerdog syncdon't change what runs — the job refuses with an alert instead (fail closed). For aconfig.yamledit the fix is onewienerdog sync; when the check couldn't confirm the app files themselves, the alert deliberately does not tell you to sync — syncing is not the safe next step there — and asks you to reinstall from a trusted source instead.2
Why Wienerdog and not a "personal AI agent" app?
Projects like OpenClaw and Hermes are impressive — and they are applications : gateways, daemons, servers you must run, secure, and update. Wienerdog is different by design:
Wienerdog is just files. Markdown, skills, hooks, config — interpreted by the AI tool you already run and trust. No new long-running software: nothing listens, nothing serves, nothing phones home. No extra hardware, no VPS. And because everything executes through your own Claude Code / Codex subscription, you stay fully within your provider's terms of service.
This repo dogfoods Wienerdog from day one: its own memory vault lives in memory/, its development conventions are its own CLAUDE.md, and most of its code is written by mid-tier AI models following its spec system (see docs/specs/). The product thesis — an AI gets dramatically better when you install the right files around it — is also how this project is built.