象牙 🐘
开发者日志与站立会议工具 - 用于AI代理的持久内存
用 Bun 语言对 tusk 进行全面重写,专注于实际有效的方法: 记录工作进展 并且 生成精美的站立会议报告没有任务管理的复杂性——只需简单、有效的记忆,即可在Claude会话中持久存在。
为什么是图斯克?
- 🧠 上下文恢复永远不要因为Claude崩溃或数据压缩而丢失重要工作细节
- 🤖 主动式人工智能行为内置指令引导AI代理自动进行检查点
- 📊 精美的每日站会(或:每日站立会议)从您的日志中生成可用于会议的报告
- ⚡ 极速如火Bun + SQLite = 实时保存与并发调用
- 🔍 简单且可搜索基于SQLite的日志系统,具备强大的过滤功能和工作区隔离能力
快速入门
1. 安装并运行
# Clone and install
git clone tusk
cd tusk
bun install
# Start the MCP server
bun run index.ts2. 配置Claude桌面版
在您的Claude Desktop MCP配置中添加:
macOS(苹果电脑操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/claude/claude_desktop_config.json
{
"mcpServers": {
"tusk": {
"command": "bun",
"args": ["run", "/absolute/path/to/tusk/index.ts"]
}
}
}特定平台的路径:
// Windows example
{
"mcpServers": {
"tusk": {
"command": "bun",
"args": ["run", "C:\\Users\\YourName\\tusk\\index.ts"]
}
}
}
// macOS/Linux example
{
"mcpServers": {
"tusk": {
"command": "bun",
"args": ["run", "/Users/yourname/tusk/index.ts"]
}
}
}3. 开始使用
通过MCP(Claude桌面版):
checkpoint("Started working on the auth system")
recall()
recall(standup="meeting") # Standup integrated into recall
plan(action="save", title="Q4 Roadmap", content="...")通过CLI(命令行 & Claude代码钩子):
# Save a checkpoint
bun cli.ts checkpoint "Fixed auth timeout bug"
bun cli.ts cp "Added user dashboard" "feature,ui"
# Recall previous work
bun cli.ts recall
bun cli.ts recall --days 7 --search auth
# Generate standup
bun cli.ts standup
bun cli.ts standup --style executive --days 3
# View transcript timeline
bun cli.ts timeline
bun cli.ts timeline --days 30 --verbose克劳德代码集成
Tusk 通过 Claude Code 插件提供自动检查点捕获功能。 设置完全自动化 - 只需配置MCP服务器,然后重启Claude Code!
自动设置 ✨
当你将 Tusk 配置为 MCP 服务器并启动 Claude Code 时,Tusk 会自动:
- ✅ 安装钩子以
.claude/hooks/在你的项目中 - ✅ 安装斜杠命令到
.claude/commands/ - ✅ 配置钩子(hooks)于
.claude/settings.json带有适当的事件类型 - ✅ 为Tusk MCP工具设置权限
- ✅ 记录安装版本以避免不必要的更新
无需手动复制! 只需配置MCP服务器(参见上述步骤2),然后在任意项目中打开Claude Code。
什么是自动安装的
钩子(或挂钩) (10 个 TypeScript 文件在 .claude/hooks/):
conversation_start.ts- 在会话开始时触发火灾(或:在会话启动时引发火灾,但根据上下文,“fires on SessionStart”可能更常被理解为“在会话开始时执行/触发某操作”,若指实际火灾则较为罕见,此处提供较为通用的翻译)pre_compact.ts- 在上下文压缩之前发生的火灾(PreCompact)stop.ts+post_response.ts- 会话停止时关闭火(或“灭火”)user_prompt_submit.ts+enhanced_user_prompt_submit.ts+exchange_monitor.ts- 在用户提交提示时触发(Fire on UserPromptSubmit)post_tool_use.ts+plan_detector.ts- 工具使用后的处理(PostToolUse)hook-logger.ts- 共享日志记录工具
命令 (4个Markdown文件在 .claude/commands/):
/checkpoint- 保存进度检查点/recall- 恢复之前会话的上下文/plan- 管理长期项目计划/standup- 生成每日站立会议报告
设置 (.claude/settings.json):
- 钩子事件类型映射(SessionStart、PreCompact、Stop、UserPromptSubmit、PostToolUse)
- Tusk MCP 工具的权限
- 跨平台相对路径
跨平台支持
所有平台 (Windows、macOS、Linux):
- 钩子使用跨平台相对路径(
.claude/hooks/) - Bun 执行
.ts文件直接包含shebang行 - 无需手动配置路径
- 确保 Bun 已添加到你的系统 PATH 中
- 为所有Claude Code事件类型自动配置钩子文件
- 钩子(Hooks)将最小活动记录到
~/.tusk/hooks.log每日轮换
版本追踪
Tusk追踪安装版本于 .claude/.tusk-version:
- 防止每次重启时重复安装
- 当Tusk版本更新时自动更新
- 跳过用户修改过的文件
- 可以安全删除以强制重新安装
手动集成(可选)
如果你更喜欢手动设置检查点,请在你的项目中添加 CLAUDE.md:
## Post-Work Hook
After completing any significant work, run:
bun /path/to/tusk/cli.ts checkpoint "Brief description of what was accomplished"核心工具
📝 检查点
在Claude会话之间保存工作进度:
checkpoint("Fixed JWT timeout bug using refresh tokens")
checkpoint("Implemented user dashboard", ["feature", "ui"])🧠 回忆
从之前的工作中恢复上下文(包括可选的站立会议):
recall() # Last 2 days with active plan
recall(days=7, search="auth") # Search last week
recall(project="myproject") # Project-specific
recall(standup="meeting") # Context + standup report
recall(days=7, standup="executive") # Weekly executive summary📋 计划
管理跨会话的长期项目计划:
plan(action="save", title="...", content="...") # Save new plan
plan(action="list") # View all plans
plan(action="update", planId="...", progress="...") # Track progress
plan(action="complete", planId="...") # Mark done🕰️ 时间线(仅限CLI)
查看转录档案历史(时光机风格):
bun cli.ts timeline # Last 7 days
bun cli.ts timeline --days 30 # Last 30 days
bun cli.ts timeline --date 2025-10-01 # Specific date
bun cli.ts timeline --verbose # Detailed view从Python Tusk迁移
导入您现有的检查点:
# Preview what will be migrated
bun run migrate.ts --dry-run --verbose
# Perform the migration
bun run migrate.ts
# Custom tusk location
PYTHON_TUSK_DIR=/path/to/tusk bun run migrate.ts数据存储
- 位置:
~/.tusk/journal.db - 格式支持多工作区的SQLite数据库
- 特点/特性:
- 自动检测工作区(git 根目录、package.json 或当前工作目录) - 跨平台路径规范化 - 使用WAL模式进行并发访问 - 项目工作区隔离
- 模式(或架构)带有 Git 上下文、项目信息和元数据的检查点
站立会议格式
会议风格(默认)
🏃♂️ Daily Standup (last 24 hours)
📍 Projects: myproject
✅ What I accomplished:
• Fixed auth timeout bug using JWT refresh pattern (2h ago)
• Implemented user dashboard UI components (4h ago)
⭐ Key highlights:
• Resolved critical security vulnerability
• Achieved 100% test coverage
🚀 Next steps:
• Deploy auth fix to staging
• Add user preferences panel执行风格
🎯 Executive Summary (last 24 hours)
Portfolio: myproject • dashboard-redesign
Impact: Delivered 3 key achievements across 2 strategic initiatives
with high development velocity (8 work sessions).
Strategic Focus:
1. myproject - 6 active sessions
2. dashboard-redesign - 2 active sessions
Key Wins:
1. Resolved critical security vulnerability
2. Achieved 100% test coverage
3. Completed user dashboard implementation
Forward Outlook:
Priority actions: Deploy to staging • Add user preferences发展
# Development with hot reload
bun run dev
# Test CLI tools directly
bun cli.ts checkpoint "Test checkpoint from CLI"
bun cli.ts recall --days 7
bun cli.ts standup --style metrics
bun cli.ts timeline --days 30
# Using npm scripts
bun run checkpoint "Test checkpoint"
bun run recall
bun run standup
# Test MCP server manually (advanced)
echo '{"method":"tools/call","params":{"name":"checkpoint","arguments":{"description":"Test checkpoint"}}}' | bun run index.ts
# Run migration
bun run migrate.ts --help建筑学
核心:
- index.ts(通常表示一个名为“index”的TypeScript文件)带有3种工具(检查点、回忆、计划)+ 行为指令的MCP服务器
- cli.ts 翻译成中文是:“命令行接口类型脚本文件” 或者简化为 “命令行类型脚本文件”(具体翻译可能根据上下文有所调整)。这里,“cli”代表“Command Line Interface”(命令行接口),“ts”代表“TypeScript”用于钩子/直接使用的命令行界面
- src/core/journal-db.ts 翻译为中文是:“源代码/核心/日志数据库.ts” 或者更简洁地表达为 “核心日志数据库源文件.ts”。这里,“src”通常表示源代码(source code)目录,“core”表示核心模块,“journal-db”可能指的是日志数据库(journal database),“.ts”是TypeScript文件的扩展名支持多工作区的SQLite存储
- src/integrations/git.ts 翻译为中文是:源代码目录/集成/ git.ts 文件Git 上下文捕获
- src/reports/standup.ts 翻译为中文是:“源代码/报告/每日站会.ts”(或根据具体语境,也可翻译为“源代码/报告/站立会议.ts”)。这里,“standup”通常指的是敏捷开发中的每日站立会议(Daily Standup),是一种简短的会议形式,用于团队成员快速同步工作进展和计划报告格式化工具(集成于召回功能中)
- 源代码/时间线/转录本存档时间线查看器(6个模块)
迁移:
- \
migrate.ts\翻译成中文是“迁移.ts”或“迁移文件(TypeScript)”。在这里,\ts\通常代表 TypeScript,是一种用于构建前端和后端应用程序的编程语言。所以,\migrate.ts\可以理解为一个用于执行迁移操作的 TypeScript 脚本或文件Python 牙齿迁移工具
简洁、集中的架构,代码行数约为3,200行,而Python版本的代码行数为6,358行!
为什么不选择Python象牙(或译为:为什么不采用Python语言?)?
- 过度设计6,358行用于基本日记记录
- 异步复杂性子进程死锁与异步IO的痛苦
- 身份危机任务、计划、检查点、搜索引擎
- “Python tax”可以翻译为“Python税”或根据上下文可能意译为“Python语言的特定费用/税项”,但通常直接翻译为“Python税”即可,具体含义需结合实际语境理解。在计算机科学或编程领域,这个术语可能指的是与使用Python语言相关的某种费用或税收(尽管在实际中并不常见,更多是理论或比喻性的说法)虚拟环境、依赖项、模型
设计理念
我们的工作内容
✅ 开发者日志记录 - 捕捉进步的瞬间 ✅ 上下文恢复 - 克劳德的坠机中幸存 ✅ 站立会议生成(或“每日站会生成”,根据上下文具体含义可能有所不同,但“站立会议”是更常见的翻译) - 格式美观的报告(已集成到召回系统中) ✅ 项目规划 - 长期运行的计划,这些计划在压缩后仍然存在 ✅ 时间线查看 - 类似Time Machine的转录历史记录 ✅ 表示“正确”或“已完成” Git 集成 - 自动上下文捕捉 ✅ 可靠的存储 - 带有工作区隔离和并发控制的SQLite
我们不做哪些事
❌(表示错误或否定的符号,可翻译为“错误”或“否”,具体根据上下文确定) 任务管理 - Claude的TodoWrite可以处理这个 ❌ 复杂的搜索引擎 - SQLite的全文搜索(FTS)功能足够 ❌ 多个后端 - SQLite 运行得非常完美 ❌(表示错误或否定的符号) 过度抽象化 - 只有三个核心MCP工具
功劳/学分/信用
- 站立会议格式 受原始金鱼站立辅助工具的启发
- MCP集成 基于ModelContextProtocol SDK
- 使用(以下技术/材料)构建 面包 - 快速的全能型JavaScript运行时
______________________________________________________________________
*“如大象般的记忆——永远记住你在Claude会话中的工作”* 🐘 对应的中文是“大象”。
