Skip to content

miloquinn/Niki-AI

Repository files navigation

在 Obsidian 侧边栏中使用 Claude Code,享受流畅的 AI 辅助写作体验。
Embed Claude Code into your Obsidian sidebar — write, edit, and create with AI.


🎯 Why Niki AI?

不是又一个 AI 聊天框。 Niki AI 把 Claude Code 的完整能力——文件读写、代码执行、MCP 工具链——原生嵌入你的 Obsidian 工作流。AI 不只是回答问题,它直接帮你改文件

🧬 Deep Integration 🔒 Privacy First ⚡ Zero Friction 🛡️ Safe by Default
直接嵌入 Claude Code CLI
完整 MCP 工具链支持
数据始终在本地
支持自定义 API 端点
@ 引用 · 拖拽 · 一键插入
每个交互都精心设计
AI 改完一键撤销
多文件批量恢复

✨ Features

🚀 Core Capabilities

Feature Description
🎨 Sidebar Chat UI 原生 Obsidian 界面风格,自动适配你的主题
📝 Smart Context 自动包含当前笔记,或手动 @ 引用多个文件
⌨️ @ File Reference 输入 @ 弹出文件选择器,或直接拖拽文件/文件夹
🔄 Undo System AI 修改文件后一键撤销,支持多文件批量恢复
💬 Multi-Thread 创建多个独立对话话题,互不干扰
📋 Diff Preview 代码块差异可视化,审查后一键应用变更
🎯 One-Click Insert AI 回复直接插入当前笔记光标位置
⏹️ Interrupt 发送/停止按钮智能切换,随时中断 AI 回复
👤 Multi-Assistant 多个 AI 助手预设,独立系统提示词,快速切换

🔥 Powered by Claude Code

  • 支持 Opus / Sonnet / Haiku 模型切换
  • 完整 MCP 工具链 支持
  • 自定义 系统提示词工作目录
  • npm 版本 & 原生版本 自动检测(v4.0.9+)
  • 支持自定义 API 端点(兼容第三方代理)
  • Windows / macOS / Linux 全平台支持

📦 Installation

Prerequisites

你需要先安装 Claude Code CLI

npm 安装(推荐)

npm install -g @anthropic-ai/claude-code

✅ 跨平台 · 易更新 · 版本可控

官方脚本安装

curl -fsSL https://claude.ai/install.sh | bash

✅ 无依赖 · 性能更优 · 自动更新

两种安装方式对比
特性 npm 安装 官方脚本
依赖 Node.js
性能 较好 最优
更新方式 npm update -g 自动更新
跨平台 ✅ 全平台 Unix-like
安装大小 ~100MB ~50MB

Install Plugin

方式一:Release 安装(1 分钟)

  1. 下载 最新 Release
  2. main.jsmanifest.jsonstyles.css 放入:
    <your-vault>/.obsidian/plugins/niki-ai/
    
  3. 重启 Obsidian → 设置 → 第三方插件 → 启用 Niki AI

方式二:源码构建

git clone https://github.com/KeloYuan/Niki-AI.git
cd Niki-AI
npm install
npm run dev    # 开发模式(自动 watch)
npm run build  # 生产构建

⚙️ Configuration

Step 1:Claude Code 配置

编辑 ~/.claude/settings.json(最简配置):

{
  "permissions": {
    "defaultMode": "bypassPermissions"
  }
}

这样 AI 修改文件时不会弹出确认框,修改后插件会显示「撤销修改」按钮。

完整配置示例(含自定义 API / 模型)
{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "your-api-key",
    "API_TIMEOUT_MS": "3000000",
    "ANTHROPIC_BASE_URL": "https://your-api-endpoint.com",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
  },
  "permissions": {
    "defaultMode": "bypassPermissions"
  },
  "model": "opus",
  "alwaysThinkingEnabled": false
}
参数 说明
permissions.defaultMode bypassPermissions 绕过文件修改确认
model 使用的模型(opus / sonnet / haiku
env.API_TIMEOUT_MS API 超时时间(毫秒)
env.ANTHROPIC_BASE_URL 自定义 API 端点

Step 2:插件设置

Obsidian → 设置 → 插件 → Niki AI

设置项 说明 默认值
Claude command CLI 命令模板 claude -p "{prompt}"
Default prompt 每次请求附加的系统提示词 (空)
Working directory Claude 工作目录 当前 Vault 路径
Claude 版本选择 CLI 版本检测策略 (v4.0.9+) 自动检测

💡 Claude command 支持两种模式:

  • 内联模式(推荐):claude -p "{prompt}" — 插件自动替换 {prompt}
  • Stdin 模式claude — 插件通过 stdin 写入 prompt

💡 Usage

@ File Reference

输入 @          → 弹出文件选择器
拖拽文件        → 直接添加到上下文
拖拽文件夹 📁   → 自动包含文件夹内所有文件(v4.0.3+)
支持多个        → 同时引用多个文件

Multi-Assistant Presets

设置 → Niki AI → Assistants → 添加预设
每个预设独立:名称 · 系统提示词 · 身份配置
侧边栏发送按钮旁快速切换

Multi-Thread Chat

左上角话题下拉 → 切换 / 新建 / 删除话题
不同话题完全独立,互不干扰

Diff & Apply

AI 返回代码块 → 点击「查看变更」→ 审查差异
确认无误 → 点击「应用全部变更」→ 写入文件
后悔了?→ 点击「撤销修改」→ 一键恢复

📋 Changelog

v4.0.3 — Folder Drag & Drop

  • 📁 支持拖拽整个文件夹到聊天窗口
  • AI 自动读取文件夹内所有文件作为上下文
  • 视觉指示:文件夹图标 + 文件计数

v4.0.2 — Windows Compatibility

  • 🪟 修复 Windows .cmd / .bat 文件执行错误
  • 智能 shell 检测,处理带引号的路径

v4.0.0 — Multi-Assistant

  • 👤 多助手预设系统:独立系统提示词和身份配置
  • ⏹️ 发送/停止按钮智能切换
  • ⚙️ 设置自动保存(500ms 防抖)
查看完整更新日志

See CHANGELOG.md for full version history.


🛠️ Development

Niki-AI/
├── src/
│   ├── main.ts          # 插件入口
│   ├── settings.ts      # 设置面板
│   ├── view.ts          # 聊天视图
│   ├── claude.ts        # Claude Code 集成
│   └── utils/           # 工具函数
├── styles.css           # 样式(跟随 Obsidian 主题)
├── manifest.json        # 插件清单
├── CHANGELOG.md         # 更新日志
└── esbuild.config.mjs   # 构建配置
npm install        # 安装依赖
npm run dev        # 开发模式(自动 watch + 热重载)
npm run build      # 生产构建

❓ FAQ

没有任何输出?
  1. 确认 Claude command 设置正确
  2. 在终端中测试命令是否可用:claude -p "hello"
  3. 检查 Claude Code 是否已登录/配置 API Key
提示找不到命令?

检查 PATH 或使用绝对路径:

  • npm:~/.npm-global/bin/claude
  • Homebrew:/opt/homebrew/bin/claude
  • 官方脚本:~/.claude/bin/claude
  • Windows:%APPDATA%\npm\claude.cmd
AI 说修改了但文件没变?

确保 Claude Code 配置中设置了 "defaultMode": "bypassPermissions"。 没有这个配置,AI 的文件修改会被拦截。

撤销按钮在哪?

只有当 AI 真正修改了文件后才会显示「撤销修改」按钮。 仅聊天回复不会触发撤销按钮。

支持哪些模型?

通过 Claude Code 支持 Opus / Sonnet / Haiku。 也可以通过自定义 ANTHROPIC_BASE_URL 使用第三方兼容 API。


📊 Star History

Star History Chart

🤝 Contributing

Contributions are welcome! Feel free to:

  1. 🐛 Report bugs
  2. 💡 Request features
  3. 🔧 Submit PRs
git clone https://github.com/KeloYuan/Niki-AI.git
cd Niki-AI && npm install && npm run dev

❤️ Support

如果这个插件对你有帮助:

  • 给个 Star — 这是对我最大的鼓励
  • 🐛 提 Issue — 帮我做得更好
  • 请我喝杯咖啡
微信赞赏码 支付宝收款码

📄 License

MIT © KeloYuan


Made with ❤️ by KeloYuan
AI should work where you work — inside your notes.

About

Obsidian plugin: Chat with Claude Code in a sidebar and edit notes with AI assistance.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors