{"id":42972722,"url":"https://github.com/YishenTu/claudian","last_synced_at":"2026-02-10T19:01:32.602Z","repository":{"id":327909928,"uuid":"1110782890","full_name":"YishenTu/claudian","owner":"YishenTu","description":"An Obsidian plugin that embeds Claude Code as an AI collaborator in your vault","archived":false,"fork":false,"pushed_at":"2026-02-07T13:08:14.000Z","size":6417,"stargazers_count":2060,"open_issues_count":39,"forks_count":135,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-02-07T15:54:51.626Z","etag":null,"topics":["claude-code","ide","obsidian","obsidian-plugin","productivity"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YishenTu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-12-05T17:58:26.000Z","updated_at":"2026-02-07T15:33:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/YishenTu/claudian","commit_stats":null,"previous_names":["yishentu/claudian"],"tags_count":76,"template":false,"template_full_name":null,"purl":"pkg:github/YishenTu/claudian","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YishenTu%2Fclaudian","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YishenTu%2Fclaudian/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YishenTu%2Fclaudian/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YishenTu%2Fclaudian/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YishenTu","download_url":"https://codeload.github.com/YishenTu/claudian/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YishenTu%2Fclaudian/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29312951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T17:48:59.043Z","status":"ssl_error","status_checked_at":"2026-02-10T17:45:37.240Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude-code","ide","obsidian","obsidian-plugin","productivity"],"created_at":"2026-01-31T01:01:06.417Z","updated_at":"2026-02-10T19:01:32.593Z","avatar_url":"https://github.com/YishenTu.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","🤖 AI \u0026 Machine Learning","Repos","🔌 Obsidian 插件集成 | Plugin Integrations","GUI \u0026 IDE","🚀 AI Tools for Vim, Neovim, and Terminal"],"sub_categories":["4. Claudian"],"readme":"# Claudian\n\n![GitHub stars](https://img.shields.io/github/stars/YishenTu/claudian?style=social)\n![GitHub release](https://img.shields.io/github/v/release/YishenTu/claudian)\n![License](https://img.shields.io/github/license/YishenTu/claudian)\n\n![Preview](Preview.png)\n\nAn Obsidian plugin that embeds Claude Code as an AI collaborator in your vault. Your vault becomes Claude's working directory, giving it full agentic capabilities: file read/write, search, bash commands, and multi-step workflows.\n\n## Features\n\n- **Full Agentic Capabilities**: Leverage Claude Code's power to read, write, and edit files, search, and execute bash commands, all within your Obsidian vault.\n- **Context-Aware**: Automatically attach the focused note, mention files with `@`, exclude notes by tag, include editor selection (Highlight), and access external directories for additional context.\n- **Vision Support**: Analyze images by sending them via drag-and-drop, paste, or file path.\n- **Inline Edit**: Edit selected text or insert content at cursor position directly in notes with word-level diff preview and read-only tool access for context.\n- **Instruction Mode (`#`)**: Add refined custom instructions to your system prompt directly from the chat input, with review/edit in a modal.\n- **Slash Commands**: Create reusable prompt templates triggered by `/command`, with argument placeholders, `@file` references, and optional inline bash substitutions.\n- **Skills**: Extend Claudian with reusable capability modules that are automatically invoked based on context, compatible with Claude Code's skill format.\n- **Custom Agents**: Define custom subagents that Claude can invoke, with support for tool restrictions and model overrides.\n- **Claude Code Plugins**: Enable Claude Code plugins installed via the CLI, with automatic discovery from `~/.claude/plugins` and per-vault configuration. Plugin skills, agents, and slash commands integrate seamlessly.\n- **MCP Support**: Connect external tools and data sources via Model Context Protocol servers (stdio, SSE, HTTP) with context-saving mode and `@`-mention activation.\n- **Advanced Model Control**: Select between Haiku, Sonnet, and Opus, configure custom models via environment variables, fine-tune thinking budget, and enable Sonnet with 1M context window (requires Max subscription).\n- **Plan Mode**: Toggle plan mode via Shift+Tab in the chat input. Claudian explores and designs before implementing, presenting a plan for approval with options to approve in a new session, continue in the current session, or provide feedback.\n- **Security**: Permission modes (YOLO/Safe/Plan), safety blocklist, and vault confinement with symlink-safe checks.\n- **Claude in Chrome**: Allow Claude to interact with Chrome through the `claude-in-chrome` extension.\n\n## Requirements\n\n- [Claude Code CLI](https://code.claude.com/docs/en/overview) installed (strongly recommend install Claude Code via Native Install)\n- Obsidian v1.8.9+\n- Claude subscription/API or Custom model provider that supports Anthropic API format ([Openrouter](https://openrouter.ai/docs/guides/guides/claude-code-integration), [Kimi](https://platform.moonshot.ai/docs/guide/agent-support), [GLM](https://docs.z.ai/devpack/tool/claude), [DeepSeek](https://api-docs.deepseek.com/guides/anthropic_api), etc.)\n- Desktop only (macOS, Linux, Windows)\n\n## Installation\n\n### From GitHub Release (recommended)\n\n1. Download `main.js`, `manifest.json`, and `styles.css` from the [latest release](https://github.com/YishenTu/claudian/releases/latest)\n2. Create a folder called `claudian` in your vault's plugins folder:\n   ```\n   /path/to/vault/.obsidian/plugins/claudian/\n   ```\n3. Copy the downloaded files into the `claudian` folder\n4. Enable the plugin in Obsidian:\n   - Settings → Community plugins → Enable \"Claudian\"\n\n### Using BRAT\n\n[BRAT](https://github.com/TfTHacker/obsidian42-brat) (Beta Reviewers Auto-update Tester) allows you to install and automatically update plugins directly from GitHub.\n\n1. Install the BRAT plugin from Obsidian Community Plugins\n2. Enable BRAT in Settings → Community plugins\n3. Open BRAT settings and click \"Add Beta plugin\"\n4. Enter the repository URL: `https://github.com/YishenTu/claudian`\n5. Click \"Add Plugin\" and BRAT will install Claudian automatically\n6. Enable Claudian in Settings → Community plugins\n\n\u003e **Tip**: BRAT will automatically check for updates and notify you when a new version is available.\n\n### From source (development)\n\n1. Clone this repository into your vault's plugins folder:\n   ```bash\n   cd /path/to/vault/.obsidian/plugins\n   git clone https://github.com/YishenTu/claudian.git\n   cd claudian\n   ```\n\n2. Install dependencies and build:\n   ```bash\n   npm install\n   npm run build\n   ```\n\n3. Enable the plugin in Obsidian:\n   - Settings → Community plugins → Enable \"Claudian\"\n\n### Development\n\n```bash\n# Watch mode\nnpm run dev\n\n# Production build\nnpm run build\n```\n\n\u003e **Tip**: Copy `.env.local.example` to `.env.local` or `npm install` and setup your vault path to auto-copy files during development.\n\n## Usage\n\n**Two modes:**\n1. Click the bot icon in ribbon or use command palette to open chat\n2. Select text + hotkey for inline edit\n\nUse it like Claude Code—read, write, edit, search files in your vault.\n\n### Context\n\n- **File**: Auto-attaches focused note; type `@` to attach other files\n- **@-mention dropdown**: Type `@` to see MCP servers, agents, external contexts, and vault files\n  - `@Agents/` shows custom agents for selection\n  - `@mcp-server` enables context-saving MCP servers\n  - `@folder/` filters to files from that external context (e.g., `@workspace/`)\n  - Vault files shown by default\n- **Selection**: Select text in editor, then chat—selection included automatically\n- **Images**: Drag-drop, paste, or type path; configure media folder for `![[image]]` embeds\n- **External contexts**: Click folder icon in toolbar for access to directories outside vault\n\n### Features\n\n- **Inline Edit**: Select text + hotkey to edit directly in notes with word-level diff preview\n- **Instruction Mode**: Type `#` to add refined instructions to system prompt\n- **Slash Commands**: Type `/` for custom prompt templates or skills\n- **Skills**: Add `skill/SKILL.md` files to `~/.claude/skills/` or `{vault}/.claude/skills/`, recommended to use Claude Code to manage skills\n- **Custom Agents**: Add `agent.md` files to `~/.claude/agents/` (global) or `{vault}/.claude/agents/` (vault-specific); select via `@Agents/` in chat, or prompt Claudian to invoke agents\n- **Claude Code Plugins**: Enable plugins via Settings → Claude Code Plugins, recommended to use Claude Code to manage plugins\n- **MCP**: Add external tools via Settings → MCP Servers; use `@mcp-server` in chat to activate\n\n## Configuration\n\n### Settings\n\n**Customization**\n- **User name**: Your name for personalized greetings\n- **Excluded tags**: Tags that prevent notes from auto-loading (e.g., `sensitive`, `private`)\n- **Media folder**: Configure where vault stores attachments for embedded image support (e.g., `attachments`)\n- **Custom system prompt**: Additional instructions appended to the default system prompt (Instruction Mode `#` saves here)\n- **Enable auto-scroll**: Toggle automatic scrolling to bottom during streaming (default: on)\n- **Auto-generate conversation titles**: Toggle AI-powered title generation after the first user message is sent\n- **Title generation model**: Model used for auto-generating conversation titles (default: Auto/Haiku)\n- **Vim-style navigation mappings**: Configure key bindings with lines like `map w scrollUp`, `map s scrollDown`, `map i focusInput`\n\n**Hotkeys**\n- **Inline edit hotkey**: Hotkey to trigger inline edit on selected text\n- **Open chat hotkey**: Hotkey to open the chat sidebar\n\n**Slash Commands**\n- Create/edit/import/export custom `/commands` (optionally override model and allowed tools)\n\n**MCP Servers**\n- Add/edit/verify/delete MCP server configurations with context-saving mode\n\n**Claude Code Plugins**\n- Enable/disable Claude Code plugins discovered from `~/.claude/plugins`\n- User-scoped plugins available in all vaults; project-scoped plugins only in matching vault\n\n**Safety**\n- **Load user Claude settings**: Load `~/.claude/settings.json` (user's Claude Code permission rules may bypass Safe mode)\n- **Enable command blocklist**: Block dangerous bash commands (default: on)\n- **Blocked commands**: Patterns to block (supports regex, platform-specific)\n- **Allowed export paths**: Paths outside the vault where files can be exported (default: `~/Desktop`, `~/Downloads`). Supports `~`, `$VAR`, `${VAR}`, and `%VAR%` (Windows).\n\n**Environment**\n- **Custom variables**: Environment variables for Claude SDK (KEY=VALUE format, supports `export ` prefix)\n- **Environment snippets**: Save and restore environment variable configurations\n\n**Advanced**\n- **Claude CLI path**: Custom path to Claude Code CLI (leave empty for auto-detection)\n\n## Safety and Permissions\n\n| Scope | Access |\n|-------|--------|\n| **Vault** | Full read/write (symlink-safe via `realpath`) |\n| **Export paths** | Write-only (e.g., `~/Desktop`, `~/Downloads`) |\n| **External contexts** | Full read/write (session-only, added via folder icon) |\n\n- **YOLO mode**: No approval prompts; all tool calls execute automatically (default)\n- **Safe mode**: Approval prompt per tool call; Bash requires exact match, file tools allow prefix match\n- **Plan mode**: Explores and designs a plan before implementing. Toggle via Shift+Tab in the chat input\n\n## Privacy \u0026 Data Use\n\n- **Sent to API**: Your input, attached files, images, and tool call outputs. Default: Anthropic; custom endpoint via `ANTHROPIC_BASE_URL`.\n- **Local storage**: Settings, session metadata, and commands stored in `vault/.claude/`; session messages in `~/.claude/projects/` (SDK-native); legacy sessions in `vault/.claude/sessions/`.\n- **No telemetry**: No tracking beyond your configured API provider.\n\n## Troubleshooting\n\n### Claude CLI not found\n\nIf you encounter `spawn claude ENOENT` or `Claude CLI not found`, the plugin can't auto-detect your Claude installation. Common with Node version managers (nvm, fnm, volta).\n\n**Solution**: Find your CLI path and set it in Settings → Advanced → Claude CLI path.\n\n| Platform | Command | Example Path |\n|----------|---------|--------------|\n| macOS/Linux | `which claude` | `/Users/you/.volta/bin/claude` |\n| Windows (native) | `where.exe claude` | `C:\\Users\\you\\AppData\\Local\\Claude\\claude.exe` |\n| Windows (npm) | `npm root -g` | `{root}\\@anthropic-ai\\claude-code\\cli.js` |\n\n\u003e **Note**: On Windows, avoid `.cmd` wrappers. Use `claude.exe` or `cli.js`.\n\n**Alternative**: Add your Node.js bin directory to PATH in Settings → Environment → Custom variables.\n\n### npm CLI and Node.js not in same directory\n\nIf using npm-installed CLI, check if `claude` and `node` are in the same directory:\n```bash\ndirname $(which claude)\ndirname $(which node)\n```\n\nIf different, GUI apps like Obsidian may not find Node.js.\n\n**Solutions**:\n1. Install native binary (recommended)\n2. Add Node.js path to Settings → Environment: `PATH=/path/to/node/bin`\n\n**Still having issues?** [Open a GitHub issue](https://github.com/YishenTu/claudian/issues) with your platform, CLI path, and error message.\n\n## Architecture\n\n```\nsrc/\n├── main.ts                      # Plugin entry point\n├── core/                        # Core infrastructure\n│   ├── agent/                   # Claude Agent SDK wrapper (ClaudianService)\n│   ├── agents/                  # Custom agent management (AgentManager)\n│   ├── commands/                # Slash command management (SlashCommandManager)\n│   ├── hooks/                   # PreToolUse/PostToolUse hooks\n│   ├── images/                  # Image caching and loading\n│   ├── mcp/                     # MCP server config, service, and testing\n│   ├── plugins/                 # Claude Code plugin discovery and management\n│   ├── prompts/                 # System prompts for agents\n│   ├── sdk/                     # SDK message transformation\n│   ├── security/                # Approval, blocklist, path validation\n│   ├── storage/                 # Distributed storage system\n│   ├── tools/                   # Tool constants and utilities\n│   └── types/                   # Type definitions\n├── features/                    # Feature modules\n│   ├── chat/                    # Main chat view + UI, rendering, controllers, tabs\n│   ├── inline-edit/             # Inline edit service + UI\n│   └── settings/                # Settings tab UI\n├── shared/                      # Shared UI components and modals\n│   ├── components/              # Input toolbar bits, dropdowns, selection highlight\n│   ├── mention/                 # @-mention dropdown controller\n│   ├── modals/                  # Instruction modal\n│   └── icons.ts                 # Shared SVG icons\n├── i18n/                        # Internationalization (10 locales)\n├── utils/                       # Modular utility functions\n└── style/                       # Modular CSS (→ styles.css)\n```\n\n## Roadmap\n\n- [x] Claude Code Plugin support\n- [x] Custom agent (subagent) support\n- [x] Claude in Chrome support\n- [x] `/compact` command\n- [x] Plan mode\n- [x] `rewind` and `fork` support (including `/fork` command)\n- [x] `!command` support\n- [ ] Tool renderers refinement\n- [ ] Hooks and other advanced features\n- [ ] More to come!\n\n## License\n\nLicensed under the [MIT License](LICENSE).\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=YishenTu/claudian\u0026type=date\u0026legend=top-left)](https://www.star-history.com/#YishenTu/claudian\u0026type=date\u0026legend=top-left)\n\n## Acknowledgments\n\n- [Obsidian](https://obsidian.md) for the plugin API\n- [Anthropic](https://anthropic.com) for Claude and the [Claude Agent SDK](https://platform.claude.com/docs/en/agent-sdk/overview)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYishenTu%2Fclaudian","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FYishenTu%2Fclaudian","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYishenTu%2Fclaudian/lists"}