binhong87_obsidian-note-agent/README.md
Bin-Home 4262120030 docs: add vault access and clipboard disclosures, fix provider tables
- Add "Vault access" disclosure: enumerate, read, and write behaviours
- Add "Clipboard access" disclosure: write-only, code copy button only
- Split Zhipu and Z.ai into separate rows in network and provider tables
- Add LM Studio to supported providers and network tables

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
2026-05-16 22:51:08 +08:00

128 lines
6.1 KiB
Markdown

# Smart Note Agent
An agentic AI assistant plugin for [Obsidian](https://obsidian.md) that can read and — with your approval — modify vault notes, powered by your choice of LLM provider.
[中文文档](README-cn.md)
## Features
- **Agentic chat** — multi-turn conversations with an autonomous tool-calling loop
- **Vault tools** — full-text search, read notes, list folders, follow backlinks and outgoing links, get the active note and current selection
- **Edit mode** — create, edit (full replace or unified patch), delete, and move notes; every change is shown as a diff for your review before it is committed
- **Multiple providers** — OpenAI, Anthropic, DeepSeek, Qwen (Alibaba), Kimi (Moonshot), Zhipu (GLM), MiniMax, OpenRouter, Ollama (local), and any custom OpenAI- or Anthropic-compatible endpoint
- **Three modes**
- **Ask** — read-only; for Q&A and research without touching your vault
- **Edit** — full write access; all changes require your approval via a diff UI
- **Scheduled** — automated background runs (daily summary, weekly review) with restricted write access
- **Scheduled tasks** — daily summaries and weekly reviews written automatically to configurable folders
- **Auto-compaction** — conversation history is compacted transparently when approaching the model's context limit
- **Per-provider profiles** — separate API key, base URL, and model saved per provider
- **User profile** — optional personal description injected into every system prompt
- **i18n** — English and Simplified Chinese UI, auto-detected from Obsidian's language setting
## Installation
### Community plugins (recommended)
1. Open **Settings → Community plugins** and disable Safe mode if prompted
2. Click **Browse** and search for `Smart Note Agent`
3. Click **Install**, then **Enable**
### Manual
1. Download `main.js`, `manifest.json`, and `styles.css` from the [latest release](../../releases/latest)
2. Create the folder `<your-vault>/.obsidian/plugins/smart-note-agent/`
3. Copy the three files into that folder
4. Reload Obsidian and enable the plugin in **Settings → Community plugins**
## Setup
1. Open **Settings → Smart Note Agent**
2. Select your LLM provider and enter your API key
3. Optionally set a custom base URL (for self-hosted or proxy endpoints) and model name
4. Choose a mode: **Ask** for read-only access, **Edit** for write access
## Usage
- Click the **bot icon** in the left ribbon, or run `Open Note Agent` from the command palette
- Type your message and press Enter (or Shift+Enter for a new line)
- In **Edit mode**, the agent proposes note changes as unified diffs — approve or reject each one before it is written to disk
- Use `New Chat` to start a fresh conversation; previous conversations are saved and accessible via the history panel
## Supported Providers
| Provider | Notes |
|---|---|
| OpenAI | GPT-4o, GPT-4o-mini, o1, o3, etc. |
| Anthropic | Claude 3.5 / 4 series |
| DeepSeek | deepseek-v3, deepseek-r1 |
| Qwen | Alibaba Cloud Dashscope (qwen-plus, qwen-max, etc.) |
| Kimi | Moonshot AI (moonshot-v1 series) |
| Zhipu | GLM-4 series |
| Z.ai | GLM-4 series via Z.ai |
| MiniMax | MiniMax-Text series |
| OpenRouter | Any model via openrouter.ai |
| Ollama | Local models — Llama, Mistral, Qwen, etc. |
| LM Studio | Local models via LM Studio |
| Custom | Any OpenAI-compatible or Anthropic-compatible endpoint |
## Disclosures
### Account required
Using a remote LLM provider (OpenAI, Anthropic, DeepSeek, Qwen, Kimi, Zhipu, Z.ai, MiniMax, OpenRouter) requires an account with that provider and a valid API key. Local providers (Ollama, LM Studio) and custom self-hosted endpoints require no account.
### Payment may be required
Remote LLM providers charge for API usage. You are billed directly by the provider you choose — this plugin has no subscription or in-app purchase of its own. Local providers (Ollama, LM Studio) are free.
### Network use
When you send a message, the plugin transmits your message text and relevant vault context to the LLM provider you have configured. No data is sent to any service by default — the plugin is inert until you supply an API key and send a message. The following remote services may be contacted, depending on your provider selection:
| Provider | Endpoint |
|---|---|
| OpenAI | `https://api.openai.com` |
| Anthropic | `https://api.anthropic.com` |
| DeepSeek | `https://api.deepseek.com` |
| Qwen (Alibaba Cloud) | `https://dashscope.aliyuncs.com` |
| Kimi (Moonshot AI) | `https://api.moonshot.cn` |
| Zhipu | `https://open.bigmodel.cn` |
| Z.ai | `https://open.z.ai` |
| MiniMax | `https://api.minimax.chat` |
| OpenRouter | `https://openrouter.ai` |
Ollama and LM Studio communicate only with `localhost` — no data leaves your machine. The Custom provider connects to whatever endpoint you configure.
### Vault access
This plugin reads, writes, and enumerates vault files in order to operate:
- **Read** — notes are read to answer questions, provide context to the LLM, and compute diffs before edits.
- **Enumerate** — `list_folder` and `search_vault` tools scan all files (or all Markdown files) in the vault to find matches. Only file paths and content relevant to the query are sent to the LLM.
- **Write** — in Edit and Scheduled modes the agent can create, modify, delete, and move notes. Every write operation is presented as a unified diff for your review and requires explicit approval before anything is written to disk.
### Clipboard access
When you click the **Copy** button on a code block in the chat view, the plugin writes that code block's text to your clipboard via the browser Clipboard API. The plugin never reads from your clipboard.
## Development
```bash
npm install
npm run dev # esbuild watch mode — rebuilds on save
npm run build # tsc type-check + production bundle
npm test # unit tests (Vitest)
```
For local testing, symlink or copy the `dist/` folder into your vault:
```
<vault>/.obsidian/plugins/smart-note-agent/
```
The plugin artifacts (`main.js`, `manifest.json`, `styles.css`) are output to `dist/` after each build.
## License
[MIT](LICENSE)