AI学习笔记工具

一款基于AI的TIL(今日学习)工作流工具,可作为独立CLI或Obsidian插件使用,提供嵌入式终端、学习看板、间隔重复等功能。

  • by SongYunSeop
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 SongYunSeop/obsidian-claude-til

使用说明

哦,我的TIL

英语 | 韩语

用于AI驱动的TIL(Today I Learned)学习工作流程的Claude Code插件。作为独立的CLI工作(npx oh-my-til)或者作为带有嵌入式Claude Code终端的黑曜石插件。

特性

  • 嵌入式终端 --黑曜石侧边栏中的Claude Code终端(xterm.js+node-pty)
  • 内置MCP服务器 --Claude Code可以通过HTTP直接访问您的保险库
  • 学习仪表板 --TIL统计数据和类别细分概览
  • 自动安装技能 — /til, /research, /backlog, /save, /til-review, /til-lint, /dashboard 命令开箱即用
  • 间隔重复(SRS) --基于SM-2算法的TIL笔记复习调度
  • Markdown链接检测 — [text](path) 终端中的链接可点击并打开注释(CJK感知)
  • TIL触发器的积压 --单击空积压链接以启动TIL会话
  • 文件监视器 --新创建的TIL文件在编辑器中自动打开

运作原理

Command Palette → Open Terminal → Claude Code starts
→ Run /til, /backlog, /research, /save, /til-review, /til-lint, /dashboard skills
→ Claude researches → interactive learning → saves TIL markdown
→ New file detected → opens in editor

安装

选项A:Claude代码插件(推荐)

直接安装为Claude Code插件——技能、MCP服务器和钩子都是自动注册的。

先决条件: Node.js 18+ / 克劳德代码 v1.0.33+

# Add marketplace (project scope recommended — only active in this TIL vault)
claude plugin marketplace add https://github.com/SongYunSeop/oh-my-til.git --scope project

# Install plugin
claude plugin install oh-my-til@oh-my-til --scope project

技能是按命名空间排列的: /oh-my-til:til, /oh-my-til:research, /oh-my-til:backlog等等。

选项B:独立CLI(不含Obsidian)

先决条件: Node.js 18+ / 克劳德代码CLI (claude)

  1. 安装Claude Code插件 (上面的选项A)--技能和MCP服务器是自动注册的。

  2. 启动克劳德代码 和使用 /til, /research, /backlog 立即掌握技能:

    cd ~/my-til
    claude
    
  3. (可选)注册MCP服务器 --让Claude Code查询您的TIL文件(stdio模式,适用于Claude Desktop):

    claude mcp add oh-my-til -- npx oh-my-til mcp ~/my-til
    

选项C:黑曜石插件

先决条件: 黑曜石 v1.5.0+/ Node.js 18+ / 克劳德代码CLI (claude)

使用npx(推荐)

直接安装黑曜石插件:

npx oh-my-til install-obsidian /path/to/your/vault

在macOS上自动检测电子版本。要覆盖,请执行以下操作:

ELECTRON_VERSION=37.10.2 npx oh-my-til install-obsidian /path/to/your/vault

要查找您的Electron版本,请打开Obsidian的开发工具(Ctrl+Shift+I)并运行 process.versions.electron.

手动安装(来源)

git clone https://github.com/SongYunSeop/oh-my-til.git
cd oh-my-til
npm install
ELECTRON_VERSION=<your-electron-version> npm run deploy -- /path/to/your/vault

安装后,重新启动Obsidian并启用 哦,我的TIL 在“设置”>“社区插件”中。

MCP服务器设置(可选)

该插件包括一个内置的MCP服务器,因此Claude Code可以直接访问您的保险库:

claude mcp add --transport http oh-my-til http://localhost:22360/mcp

配置

设置 默认值 说明
Shell路径 系统默认值 终端中使用的Shell
自动启动克劳德 true 快跑 claude 当终端打开时
恢复上次会话 false 继续上一次克劳德会议(--continue)
字体大小 13 终端字体大小(px)
字体系列 Menlo 终端字体(Menlo、SF Mono、Fira Code、JetBrains Mono等)
线条高度 1.0 端子线间距(1.0=默认值,最多2.0)
TIL路径 til TIL文件夹路径。技能会自动跟随它(首先解析CLI: --til-path → TIL_PATH env → oh-my-til.json → 黑曜石背景→ 默认)
自动打开新TIL true 在编辑器中自动打开新的TIL文件
启动时打开仪表板 false Obsidian启动时打开学习仪表板
克劳德·阿格斯 (空) 其他论点传递给 claude 命令

MCP工具

当MCP服务器连接时,Claude Code可以使用以下工具:

工具 说明
til_list 列出按类别分组的TIL文件(支持 search 过滤器)
til_save_note 使用经过验证的frontmatter和路径约定保存TIL注释(自动积压检查)
til_backlog_status 带有复选框计数的积压进度摘要
til_backlog_check 将积压项标记为由slug完成(独立使用)
til_get_context 获取主题的现有知识上下文(文件、链接、未解决的提及)
til_recent_context 按日期分组的最近学习活动
til_dashboard 学习统计摘要
til_review_list 到期审查卡列表+统计数据(SRS、支持 include_content)
til_review_update 记录审核结果或从审核中删除
til_get_path 返回vault的已配置TIL文件夹路径(对于没有SessionStart挂钩的环境,回退)

克劳德技能

插件会自动安装这些技能 .claude/skills/:

技能 命令 描述
直到 /til <topic> [category] 研究一个主题→ 互动学习→ 保存TIL
研究 /research <topic> [category] 研究一个主题并创建学习积压
积压 /backlog [category] 查看学习积压和进度
保存 (由/til自动调用) 使用MOC和待办事项列表更新保存TIL标记
til回顾 /til-review [category] 基于SRS的间隔重复审查会话(SM-2算法)
直到棉绒 /til-lint [category] TIL wiki健康检查-缺少前端内容、断开链接、孤立TIL、未处理的原始源
仪表盘 /dashboard 学习仪表板——统计数据、活动热图、类别、待办事项进度
omt设置 /omt-setup [subcommand] 统一设置——初始化、部署和管理oh-my-til
设置黑曜石 /setup-obsidian 在当前vault中安装Obsidian桌面插件

发展

npm run dev              # Watch mode (esbuild)
npm test                 # Run tests (vitest)
npm run rebuild-pty      # Rebuild node-pty for Obsidian's Electron
npm run deploy -- /path  # Deploy to vault
npm run deploy -- --refresh-skills /path  # Deploy with skill/rule refresh

项目结构

src/
├── core/                    # Platform-independent pure logic
│   ├── backlog.ts           # Backlog parsing/formatting (pure functions)
│   ├── context.ts           # Learning context helpers (pure functions)
│   ├── stats.ts             # TIL statistics (pure functions)
│   ├── srs.ts               # Spaced repetition (SM-2 algorithm, review cards/stats)
│   ├── migrate-links.ts     # Wikilink [[]] → [](path) conversion (internal utility)
│   ├── keyboard.ts          # Shift+Enter → \n (multiline support)
│   ├── env.ts               # macOS PATH resolution (Homebrew)
│   ├── skills.ts            # Version comparison / placeholder substitution
│   ├── cli.ts               # CLI argument parsing (pure functions)
│   ├── config.ts            # Config file parsing/loading (pure functions)
│   ├── markdown.ts          # Markdown → HTML conversion (no external deps)
│   ├── profile.ts           # Static site page generation (profile, TIL pages, category index)
│   └── index.ts             # Barrel export
├── ports/                   # Adapter interfaces
│   ├── storage.ts           # FileStorage interface
│   └── metadata.ts          # MetadataProvider interface
├── adapters/                # Port implementations
│   ├── fs-adapter.ts        # node:fs based (standalone)
│   └── obsidian-adapter.ts  # Obsidian App based
├── mcp/                     # MCP server (port-dependent, Obsidian-free)
│   ├── context.ts           # Learning context tools (topic matching, category extraction)
│   └── tools.ts             # MCP tool definitions (FileStorage + MetadataProvider)
├── cli/                     # Standalone CLI entry point
│   ├── index.ts             # npx oh-my-til mcp / install-obsidian / deploy
│   └── obsidian-install.ts  # Auto-install Obsidian plugin (Electron detection, node-pty rebuild)
└── obsidian/                # Obsidian platform adapter
    ├── main.ts              # Plugin entry point
    ├── settings.ts          # Settings tab & interface
    ├── watcher.ts           # File watcher → open in editor
    ├── terminal/
    │   ├── TerminalView.ts  # Sidebar terminal (ItemView + xterm.js)
    │   ├── MarkdownLinkProvider.ts  # 3 ILinkProviders: Markdown, Filepath, OSC 8
    │   └── pty.ts           # PTY process manager (node-pty)
    └── dashboard/
        └── DashboardView.ts # Learning dashboard (ItemView)

技术栈

运行时 TypeScript,黑名单插件API
终端 xterm.js,节点pty
主控程序 @modelcontextprotocol/sdk
构建 esb构建
测试 请柬

路线图

  • [x] 嵌入式克劳德码终端
  • [x] 内置MCP服务器
  • [x] 学习仪表板(基本统计数据)
  • [x] 独立CLI(npx oh-my-til)--不含黑曜石
  • [x] 间隔重复(SRS)——基于SM-2的评审排程
  • []仪表板中的待办事项进度条
  • []可配置的TIL文件夹路径
  • []丰富的仪表板——最近的TIL、连胜、每周总结
  • []动态代码块(til-moc)--在没有数据视图的情况下自动呈现TIL列表
  • []多终端选项卡--运行多个Claude Code会话
  • []笔记链接--自动插入相关笔记的反向链接

致谢

许可证

麻省理工学院