@mseep/obsidian-agent-client 0.10.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/.claude/hooks/gh-setup.sh +49 -0
  2. package/.claude/settings.json +15 -0
  3. package/.claude/skills/release-notes/SKILL.md +331 -0
  4. package/.editorconfig +10 -0
  5. package/.github/FUNDING.yml +2 -0
  6. package/.github/ISSUE_TEMPLATE/bug_report.yml +90 -0
  7. package/.github/ISSUE_TEMPLATE/config.yml +11 -0
  8. package/.github/ISSUE_TEMPLATE/feature_request.yml +59 -0
  9. package/.github/copilot-instructions.md +45 -0
  10. package/.github/pull_request_template.md +32 -0
  11. package/.github/workflows/ci.yaml +25 -0
  12. package/.github/workflows/docs.yml +58 -0
  13. package/.github/workflows/relay_to_openclaw.yml +59 -0
  14. package/.github/workflows/release.yaml +45 -0
  15. package/.prettierignore +10 -0
  16. package/.prettierrc +13 -0
  17. package/.vscode/extensions.json +7 -0
  18. package/.vscode/settings.json +37 -0
  19. package/.zed/settings.json +42 -0
  20. package/AGENTS.md +330 -0
  21. package/ARCHITECTURE.md +390 -0
  22. package/CONTRIBUTING.md +216 -0
  23. package/LICENSE +202 -0
  24. package/NOTICE +2 -0
  25. package/README.ja.md +121 -0
  26. package/README.md +125 -0
  27. package/docs/.vitepress/config.mts +124 -0
  28. package/docs/.vitepress/theme/custom.css +111 -0
  29. package/docs/.vitepress/theme/index.ts +4 -0
  30. package/docs/agent-setup/claude-code.md +84 -0
  31. package/docs/agent-setup/codex.md +76 -0
  32. package/docs/agent-setup/custom-agents.md +67 -0
  33. package/docs/agent-setup/gemini-cli.md +99 -0
  34. package/docs/agent-setup/index.md +34 -0
  35. package/docs/announcements/gemini-cli-deprecation.md +73 -0
  36. package/docs/getting-started/index.md +78 -0
  37. package/docs/getting-started/quick-start.md +38 -0
  38. package/docs/help/faq.md +181 -0
  39. package/docs/help/troubleshooting.md +221 -0
  40. package/docs/index.md +63 -0
  41. package/docs/public/apple-touch-icon.png +0 -0
  42. package/docs/public/demo.mp4 +0 -0
  43. package/docs/public/favicon-16x16.png +0 -0
  44. package/docs/public/favicon-32x32.png +0 -0
  45. package/docs/public/favicon.ico +0 -0
  46. package/docs/public/images/editing.webp +0 -0
  47. package/docs/public/images/export.webp +0 -0
  48. package/docs/public/images/floating-chat-button.webp +0 -0
  49. package/docs/public/images/floating-chat-instance-menu.webp +0 -0
  50. package/docs/public/images/floating-chat-view.webp +0 -0
  51. package/docs/public/images/mode-selection.webp +0 -0
  52. package/docs/public/images/model-selection.webp +0 -0
  53. package/docs/public/images/multi-session.webp +0 -0
  54. package/docs/public/images/remove-image.webp +0 -0
  55. package/docs/public/images/ribbon-icon.webp +0 -0
  56. package/docs/public/images/selection-context.gif +0 -0
  57. package/docs/public/images/sending-images.webp +0 -0
  58. package/docs/public/images/sending-messages.webp +0 -0
  59. package/docs/public/images/session-history-button.webp +0 -0
  60. package/docs/public/images/slash-commands-1.webp +0 -0
  61. package/docs/public/images/slash-commands-2.webp +0 -0
  62. package/docs/public/images/switch-agent.webp +0 -0
  63. package/docs/public/images/switch-default-agent.webp +0 -0
  64. package/docs/public/images/temporary-disable.gif +0 -0
  65. package/docs/reference/acp-support.md +110 -0
  66. package/docs/usage/chat-export.md +80 -0
  67. package/docs/usage/commands.md +51 -0
  68. package/docs/usage/context-files.md +57 -0
  69. package/docs/usage/editing.md +69 -0
  70. package/docs/usage/floating-chat.md +84 -0
  71. package/docs/usage/index.md +97 -0
  72. package/docs/usage/mcp-tools.md +33 -0
  73. package/docs/usage/mentions.md +70 -0
  74. package/docs/usage/mode-selection.md +28 -0
  75. package/docs/usage/model-selection.md +32 -0
  76. package/docs/usage/multi-session.md +68 -0
  77. package/docs/usage/sending-images.md +64 -0
  78. package/docs/usage/session-history.md +91 -0
  79. package/docs/usage/slash-commands.md +44 -0
  80. package/esbuild.config.mjs +49 -0
  81. package/eslint.config.mjs +25 -0
  82. package/main.js +228 -0
  83. package/manifest.json +11 -0
  84. package/package.json +52 -0
  85. package/src/acp/acp-client.ts +921 -0
  86. package/src/acp/acp-handler.ts +252 -0
  87. package/src/acp/permission-handler.ts +282 -0
  88. package/src/acp/terminal-handler.ts +264 -0
  89. package/src/acp/type-converter.ts +272 -0
  90. package/src/hooks/useAgent.ts +250 -0
  91. package/src/hooks/useAgentMessages.ts +470 -0
  92. package/src/hooks/useAgentSession.ts +544 -0
  93. package/src/hooks/useChatActions.ts +400 -0
  94. package/src/hooks/useHistoryModal.ts +219 -0
  95. package/src/hooks/useSessionHistory.ts +863 -0
  96. package/src/hooks/useSettings.ts +19 -0
  97. package/src/hooks/useSuggestions.ts +342 -0
  98. package/src/main.ts +9 -0
  99. package/src/plugin.ts +1126 -0
  100. package/src/services/chat-exporter.ts +552 -0
  101. package/src/services/message-sender.ts +755 -0
  102. package/src/services/message-state.ts +375 -0
  103. package/src/services/session-helpers.ts +211 -0
  104. package/src/services/session-state.ts +130 -0
  105. package/src/services/session-storage.ts +267 -0
  106. package/src/services/settings-normalizer.ts +255 -0
  107. package/src/services/settings-service.ts +285 -0
  108. package/src/services/update-checker.ts +128 -0
  109. package/src/services/vault-service.ts +558 -0
  110. package/src/services/view-registry.ts +345 -0
  111. package/src/types/agent.ts +92 -0
  112. package/src/types/chat.ts +351 -0
  113. package/src/types/errors.ts +136 -0
  114. package/src/types/obsidian-internals.d.ts +14 -0
  115. package/src/types/session.ts +731 -0
  116. package/src/ui/ChangeDirectoryModal.ts +137 -0
  117. package/src/ui/ChatContext.ts +25 -0
  118. package/src/ui/ChatHeader.tsx +295 -0
  119. package/src/ui/ChatPanel.tsx +1162 -0
  120. package/src/ui/ChatView.tsx +348 -0
  121. package/src/ui/ErrorBanner.tsx +104 -0
  122. package/src/ui/FloatingButton.tsx +351 -0
  123. package/src/ui/FloatingChatView.tsx +531 -0
  124. package/src/ui/InputArea.tsx +1107 -0
  125. package/src/ui/InputToolbar.tsx +371 -0
  126. package/src/ui/MessageBubble.tsx +442 -0
  127. package/src/ui/MessageList.tsx +265 -0
  128. package/src/ui/PermissionBanner.tsx +61 -0
  129. package/src/ui/SessionHistoryModal.tsx +821 -0
  130. package/src/ui/SettingsTab.ts +1337 -0
  131. package/src/ui/SuggestionPopup.tsx +138 -0
  132. package/src/ui/TerminalBlock.tsx +107 -0
  133. package/src/ui/ToolCallBlock.tsx +456 -0
  134. package/src/ui/shared/AttachmentStrip.tsx +57 -0
  135. package/src/ui/shared/IconButton.tsx +55 -0
  136. package/src/ui/shared/MarkdownRenderer.tsx +103 -0
  137. package/src/ui/view-host.ts +56 -0
  138. package/src/utils/error-utils.ts +274 -0
  139. package/src/utils/logger.ts +44 -0
  140. package/src/utils/mention-parser.ts +129 -0
  141. package/src/utils/paths.ts +246 -0
  142. package/src/utils/platform.ts +425 -0
  143. package/styles.css +2322 -0
  144. package/tsconfig.json +18 -0
  145. package/version-bump.mjs +18 -0
  146. package/versions.json +3 -0
@@ -0,0 +1,181 @@
1
+ # FAQ
2
+
3
+ Frequently asked questions about Agent Client.
4
+
5
+ ## General
6
+
7
+ ### What is Agent Client?
8
+
9
+ Agent Client is an Obsidian plugin that lets you chat with AI agents directly within Obsidian. It supports Claude Code, Codex, Gemini CLI, and any ACP-compatible agent. The plugin uses the [Agent Client Protocol (ACP)](https://agentclientprotocol.com/) to communicate with agents.
10
+
11
+ ### Is this an official Anthropic/OpenAI/Google plugin?
12
+
13
+ No. Agent Client is a community-developed plugin. It uses official agent packages but is not affiliated with any AI provider.
14
+
15
+ ### Does this work on mobile?
16
+
17
+ No. Agent Client is desktop-only. Agents run as local processes, which is not supported on mobile devices.
18
+
19
+ ### Is my data sent to AI providers?
20
+
21
+ Yes. When you send a message, it's processed by the AI provider behind your selected agent (Anthropic, OpenAI, Google, etc.). Review each provider's privacy policy for details.
22
+
23
+ ## Note Mentions
24
+
25
+ ### How do I reference my notes in a conversation?
26
+
27
+ Type `@` in the input field and a dropdown appears with matching notes. Select a note to insert a mention in `@[[Note Name]]` format. The note's content is sent to the agent.
28
+
29
+ See [Note Mentions](/usage/mentions) for details.
30
+
31
+ ### Can I change the character limit for mentions?
32
+
33
+ Yes. Configure **Max note length** and **Max selection length** in **Settings → Agent Client → Mentions**. The default is 10,000 characters each.
34
+
35
+ ### What is auto-mention?
36
+
37
+ When enabled (**Settings → Agent Client → Mentions → Auto-mention active note**), the currently open note is automatically included as context. Unlike manual mentions, auto-mention only sends the note's file path—not its content. The agent can use its Read tool to access the content if needed.
38
+
39
+ ### Can I include just part of a note?
40
+
41
+ Yes. If you select text in your note, only that selection is sent as context. The auto-mention badge shows the line range (e.g., `@My Note:5-10`).
42
+
43
+ ### How do I temporarily disable auto-mention?
44
+
45
+ Click the **×** button next to the auto-mention badge above the input field. Click **+** to re-enable it. This only affects the current message.
46
+
47
+ ## Agents
48
+
49
+ ### How do I switch between agents?
50
+
51
+ Click the **⋮** (ellipsis) menu in the chat header. Under **"Switch agent"**, select the agent you want to use. This is a one-time change for that view only.
52
+
53
+ To change the default agent for new chat views, go to **Settings → Agent Client → Default agent**.
54
+
55
+ ### Can I run multiple agents at the same time?
56
+
57
+ Yes. Open multiple chat views using **"Open new chat view"** from the command palette or the **⋮** menu in the chat header. Each view runs an independent agent process.
58
+
59
+ See [Multi-Session Chat](/usage/multi-session) for details.
60
+
61
+ ### How do I send the same prompt to multiple agents?
62
+
63
+ Use the **Broadcast** commands:
64
+ 1. Type your prompt in one chat view
65
+ 2. Open command palette and run **"Broadcast prompt"** to copy it to all views
66
+ 3. Run **"Broadcast send"** to send simultaneously
67
+
68
+ ### Where do new chat views open?
69
+
70
+ By default, new views open in the right pane. You can change this in **Settings → Agent Client → Display → Chat view location** to open in editor tabs or splits instead.
71
+
72
+ ### What is a custom agent?
73
+
74
+ Any ACP-compatible agent beyond the built-in ones (Claude Code, Codex, Gemini CLI). You can add custom agents in **Settings → Agent Client → Custom agents**. See [Custom Agents](/agent-setup/custom-agents).
75
+
76
+ ### Do all agents support the same features?
77
+
78
+ No. Features like slash commands, modes, and models depend on the agent. The plugin adapts its UI based on what the agent supports. For example, the mode dropdown only appears if the agent provides multiple modes.
79
+
80
+ ## Slash Commands
81
+
82
+ ### Why don't I see slash commands?
83
+
84
+ Slash commands are provided by the agent, not the plugin. If the input placeholder doesn't show `/ for commands`, your current agent doesn't support slash commands.
85
+
86
+ ### Why are the commands different from what I expected?
87
+
88
+ Each agent provides its own commands. Claude Code, Codex, and Gemini CLI all have different command sets. Refer to your agent's documentation for available commands.
89
+
90
+ ## Permissions
91
+
92
+ ### Why does the agent ask for permission?
93
+
94
+ Some agents request permission before performing certain actions (like editing files or running commands). This is a safety feature controlled by the agent.
95
+
96
+ ### Can I auto-approve all permissions?
97
+
98
+ Yes. Enable **Settings → Agent Client → Permissions → Auto-allow permissions**. Use with caution—this gives agents full access without confirmation prompts.
99
+
100
+ ### Some agents don't ask for permission at all?
101
+
102
+ Correct. Permission behavior is agent-specific. Some agents may edit files directly without requesting permission.
103
+
104
+ ## Exporting
105
+
106
+ ### How do I export a conversation?
107
+
108
+ Click the **export button** in the chat header. The conversation is saved as a Markdown file in your vault.
109
+
110
+ ### Where are exports saved?
111
+
112
+ By default, exports are saved to the `Agent Client` folder in your vault. You can change this in **Settings → Agent Client → Export → Export folder**.
113
+
114
+ ### Can I auto-export conversations?
115
+
116
+ Yes. Enable **Auto-export on new chat** or **Auto-export on close chat** in export settings.
117
+
118
+ ### Can I customize the frontmatter tag?
119
+
120
+ Yes. In **Settings → Agent Client → Export → Frontmatter tag**, you can set a custom tag. Nested tags like `projects/agent-client` are supported.
121
+
122
+ ## Session History
123
+
124
+ ### How do I resume a previous conversation?
125
+
126
+ Click the **History** button (clock icon) in the chat header to open the session history modal. Select a session and click the **Restore** button (play icon) to continue where you left off.
127
+
128
+ See [Session History](/usage/session-history) for details.
129
+
130
+ ### What's the difference between Restore and Fork?
131
+
132
+ **Restore** continues the existing session—new messages are added to the same conversation. **Fork** creates a new session branching from that point, leaving the original session unchanged.
133
+
134
+ ### The modal says "This agent does not support session restoration"
135
+
136
+ Not all agents support session restoration. You can still view and delete locally saved sessions, but you won't be able to restore or fork them with that agent.
137
+
138
+ ### Are my sessions saved automatically?
139
+
140
+ Yes. The plugin automatically saves session metadata and message history when you send messages. Sessions are stored locally in Obsidian's data folder.
141
+
142
+ ### Can I delete old sessions?
143
+
144
+ Yes. Open the session history modal and click the **Delete** button (trash icon) on any session. Deletion is permanent.
145
+
146
+ ## Windows
147
+
148
+ ### What is WSL mode?
149
+
150
+ WSL (Windows Subsystem for Linux) mode runs agents inside a Linux environment on Windows. Enable it in **Settings → Agent Client → Windows Subsystem for Linux → Enable WSL mode**. This is useful for agents that work better in Linux environments.
151
+
152
+ ### Do I need to specify a WSL distribution?
153
+
154
+ Only if you have multiple WSL distributions installed and want to use a specific one. Leave it empty to use your default distribution.
155
+
156
+ ## Cost & Billing
157
+
158
+ ### Is Agent Client free?
159
+
160
+ The plugin itself is free and open source. However, using AI agents may incur costs depending on the agent and your authentication method.
161
+
162
+ ### API key vs account login—what's the difference?
163
+
164
+ - **API key**: Billed per usage by the AI provider. You pay for what you use.
165
+ - **Account login**: Uses your subscription's included usage. May have limits depending on your plan.
166
+
167
+ ## Getting Help
168
+
169
+ ### Where can I get help?
170
+
171
+ 1. Check the [Troubleshooting](/help/troubleshooting) page
172
+ 2. Search [GitHub Issues](https://github.com/RAIT-09/obsidian-agent-client/issues)
173
+ 3. Open a new issue if your problem isn't covered
174
+
175
+ ### How do I report a bug?
176
+
177
+ [Open an issue on GitHub](https://github.com/RAIT-09/obsidian-agent-client/issues/new) with:
178
+ - Your OS and Obsidian version
179
+ - The agent you're using
180
+ - Steps to reproduce
181
+ - Error messages (enable **Debug Mode** in **Settings → Agent Client → Developer**)
@@ -0,0 +1,221 @@
1
+ # Troubleshooting
2
+
3
+ This guide covers common issues and solutions for Agent Client.
4
+
5
+ ## Connection Issues
6
+
7
+ ### "Connecting to [Agent]..." doesn't complete
8
+
9
+ The plugin is trying to start the agent process but isn't receiving a response.
10
+
11
+ **Common causes:**
12
+ - Incorrect agent path
13
+ - Missing Node.js
14
+ - Agent not installed
15
+
16
+ **Solutions:**
17
+
18
+ 1. **Verify the agent path** in **Settings → Agent Client → [Agent Name] → Path**
19
+ - On macOS/Linux, find the path with: `which claude-agent-acp`
20
+ - On Windows, find the path with: `where claude-agent-acp`
21
+
22
+ 2. **Verify Node.js path** in **Settings → Agent Client → Node.js path**
23
+ - Many agents require Node.js
24
+ - Find it with: `which node` (macOS/Linux) or `where node` (Windows)
25
+
26
+ 3. **Reload the plugin** after changing path settings (disable then re-enable in Settings → Community plugins)
27
+
28
+ ### "Command Not Found" error
29
+
30
+ The agent executable cannot be found at the specified path.
31
+
32
+ **Solutions:**
33
+
34
+ 1. Verify the agent is installed by running it directly in Terminal
35
+ 2. Try the **Auto-detect** button in the agent's path setting, or use the full absolute path
36
+ 3. On Windows, include the `.cmd` extension if needed
37
+
38
+ ## Authentication Issues
39
+
40
+ ### "Authentication Required" error
41
+
42
+ The agent requires authentication before processing requests.
43
+
44
+ **For Claude Code:**
45
+ - **API key**: Set in **Settings → Agent Client → Claude Code (ACP) → API key**
46
+ - **Account login**: Run `claude` in Terminal first and complete the login flow
47
+
48
+ **For Codex:**
49
+ - Set your OpenAI API key in **Settings → Agent Client → Codex → API key**
50
+
51
+ **For Gemini CLI:**
52
+ - Set your Google API key in **Settings → Agent Client → Gemini CLI → API key**
53
+ - Or run `gemini` in Terminal first to authenticate with your Google account
54
+
55
+ ### "No Authentication Methods" error
56
+
57
+ The agent didn't provide authentication options.
58
+
59
+ **Solution:** Check your agent configuration. The agent may not be properly initialized—try reloading the plugin.
60
+
61
+ ## Rate Limiting
62
+
63
+ ### "Rate Limit Exceeded" error
64
+
65
+ You've sent too many requests.
66
+
67
+ **Solutions:**
68
+
69
+ 1. Wait before sending another message
70
+ 2. Check your usage limits at the provider's console:
71
+ - Anthropic: [console.anthropic.com](https://console.anthropic.com/)
72
+ - OpenAI: [platform.openai.com](https://platform.openai.com/)
73
+ - Google: [console.cloud.google.com](https://console.cloud.google.com/)
74
+
75
+ ## Session Issues
76
+
77
+ ### "Session Creation Failed" error
78
+
79
+ The agent connected but couldn't create a session.
80
+
81
+ **Solutions:**
82
+
83
+ 1. Click **New Chat** (+ button in header) to create a fresh session
84
+ 2. Check if your vault path contains special characters that might cause issues
85
+ 3. Reload the plugin
86
+
87
+ ### "Agent Not Found" error
88
+
89
+ The selected agent ID doesn't exist in settings.
90
+
91
+ **Solution:** Go to **Settings → Agent Client** and select a valid agent from the **Active agent** dropdown.
92
+
93
+ ## Message Sending Issues
94
+
95
+ ### "Cannot Send Message" error
96
+
97
+ No active session available.
98
+
99
+ **Solutions:**
100
+
101
+ 1. Wait for the connection to complete (status shows agent name, not "Connecting...")
102
+ 2. Click **New Chat** to create a fresh session
103
+
104
+ ### "Send Message Failed" error
105
+
106
+ The message was sent but the agent returned an error.
107
+
108
+ **Solutions:**
109
+
110
+ 1. Check the error message for details
111
+ 2. Verify your API key or login status
112
+ 3. Try a simpler message to test the connection
113
+
114
+ ## Export Issues
115
+
116
+ ### "Failed to export chat" notification
117
+
118
+ The conversation couldn't be saved.
119
+
120
+ **Solutions:**
121
+
122
+ 1. Check that the export folder exists (**Settings → Agent Client → Export → Export folder**)
123
+ 2. Verify the folder name is valid (no special characters that aren't allowed in folder names)
124
+ 3. Check the filename template for invalid characters (**Settings → Agent Client → Export → Filename**)
125
+
126
+ ## Multi-Device Vault Sync
127
+
128
+ ### Agent paths break when syncing across machines
129
+
130
+ If you sync your vault (e.g., via Nextcloud, Syncthing, or iCloud) across machines with different environments (macOS, Linux, WSL2), absolute paths stored in `data.json` will not work on every machine.
131
+
132
+ **Solution:** Leave the agent path and Node.js path fields **empty**. The plugin uses bare command names by default (e.g., `claude-agent-acp`) and resolves them through each machine's login shell PATH.
133
+
134
+ ## Windows-Specific Issues
135
+
136
+ ### WSL mode not working
137
+
138
+ **Prerequisites:**
139
+ - WSL must be installed: Run `wsl --status` in Command Prompt
140
+ - A Linux distribution must be installed: Run `wsl --list`
141
+
142
+ **Settings:**
143
+ - Enable **Settings → Agent Client → Windows Subsystem for Linux → Enable WSL mode**
144
+ - Optionally specify your distribution in **WSL distribution**
145
+
146
+ ### Agent works in Terminal but not in Obsidian
147
+
148
+ The PATH environment may differ between Terminal and Obsidian.
149
+
150
+ **Solutions:**
151
+
152
+ 1. Try the **Auto-detect** button, or use full absolute paths for both agent and Node.js
153
+ 2. Enable WSL mode for better compatibility
154
+ 3. Add the agent's directory to your system PATH (not just user PATH)
155
+
156
+ ## macOS-Specific Issues
157
+
158
+ ### Agent installed via Homebrew not found
159
+
160
+ Homebrew binaries may not be in Obsidian's PATH.
161
+
162
+ **Solution:** Try the **Auto-detect** button, or use the full path (find it with `which <agent-name>` in Terminal).
163
+
164
+ ## Linux-Specific Issues
165
+
166
+ ### Agent not found when using Flatpak version of Obsidian
167
+
168
+ The Flatpak version of Obsidian runs in a sandbox that cannot access paths like `/usr/local/bin`.
169
+
170
+ **Solution:** Use the AppImage or .deb version of Obsidian instead of Flatpak.
171
+
172
+ ### Agent works in Terminal but not in Obsidian
173
+
174
+ Desktop applications on Linux may not inherit PATH settings from `.bashrc`.
175
+
176
+ **Solutions:**
177
+
178
+ 1. Try the **Auto-detect** button, or use the full absolute path (e.g., `/usr/local/bin/gemini`)
179
+ 2. Ensure the agent is installed in a standard location (`/usr/bin` or `/usr/local/bin`)
180
+
181
+ ## Debug Mode
182
+
183
+ If you need more detailed information about an issue, enable Debug mode:
184
+
185
+ 1. Go to **Settings → Agent Client → Developer → Debug mode**
186
+ 2. Enable the toggle
187
+ 3. Open DevTools:
188
+ - macOS: `Cmd + Option + I`
189
+ - Windows/Linux: `Ctrl + Shift + I`
190
+ 4. Go to the **Console** tab
191
+ 5. Filter by these prefixes:
192
+ - `[AcpClient]` - Agent process and connection
193
+ - `[AcpHandler]` - Agent event handling
194
+ - `[PermissionManager]` - Permission requests
195
+ - `[VaultService]` - Vault access
196
+ - `[useAgentSession]` - Session management
197
+
198
+ ## Common Error Messages
199
+
200
+ | Error | Meaning | Quick Fix |
201
+ |-------|---------|-----------|
202
+ | Command Not Found | Agent executable not at specified path | Check Path setting |
203
+ | Authentication Required | API key missing or login needed | Add API key or run agent in Terminal first |
204
+ | No Authentication Methods | Agent configuration issue | Reload the plugin |
205
+ | Rate Limit Exceeded | Too many API requests | Wait and retry |
206
+ | Session Creation Failed | Agent couldn't start session | Click New Chat |
207
+ | Agent Not Found | Invalid agent ID in settings | Select valid agent |
208
+ | Cannot Send Message | No active session | Wait for connection or click New Chat |
209
+ | Send Message Failed | Agent returned an error | Check error details |
210
+
211
+ ## Getting Help
212
+
213
+ If you're still experiencing issues:
214
+
215
+ 1. Enable **Debug mode** and check console logs
216
+ 2. Search [GitHub Issues](https://github.com/RAIT-09/obsidian-agent-client/issues)
217
+ 3. Open a new issue with:
218
+ - Your OS and Obsidian version
219
+ - The agent you're using
220
+ - Steps to reproduce
221
+ - Error messages from Debug mode
package/docs/index.md ADDED
@@ -0,0 +1,63 @@
1
+ ---
2
+ layout: home
3
+
4
+ hero:
5
+ name: "Agent Client"
6
+ text: "AI Agents in Obsidian"
7
+ tagline: Chat with Claude Code, Codex, Gemini CLI, and more — right from your vault
8
+ actions:
9
+ - theme: brand
10
+ text: Get Started
11
+ link: /getting-started/
12
+ - theme: alt
13
+ text: View on GitHub
14
+ link: https://github.com/RAIT-09/obsidian-agent-client
15
+
16
+ features:
17
+ - icon: 🤖
18
+ title: Direct Agent Integration
19
+ details: Chat with AI coding agents in a dedicated right-side panel
20
+ - icon: 📝
21
+ title: Note Mentions
22
+ details: Mention any note with @notename to include its content in your prompt
23
+ - icon: ⚡
24
+ title: Slash Commands
25
+ details: Use / commands to quickly trigger agent actions
26
+ - icon: 🔄
27
+ title: Multi-Agent Support
28
+ details: Switch between Claude Code, Codex, Gemini CLI, and custom agents
29
+ - icon: 🎛️
30
+ title: Mode & Model Selection
31
+ details: Change AI models and agent modes directly from the chat
32
+ - icon: 💻
33
+ title: Terminal Integration
34
+ details: Let your agent execute commands and return results in chat
35
+ ---
36
+
37
+ <div style="max-width: 800px; margin: 2rem auto;">
38
+ <video controls autoplay loop muted playsinline style="width: 100%; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.15);">
39
+ <source src="/demo.mp4" type="video/mp4">
40
+ </video>
41
+ </div>
42
+
43
+ ## What is Agent Client?
44
+
45
+ Agent Client is an Obsidian plugin that brings AI coding agents directly into your vault. Built on the [Agent Client Protocol (ACP)](https://github.com/agentclientprotocol/agent-client-protocol), it enables seamless communication with various AI agents.
46
+
47
+ ### Supported Agents
48
+
49
+ | Agent | Provider | Integration |
50
+ |-------|----------|-------------|
51
+ | **[Claude Code](https://github.com/anthropics/claude-code)** | Anthropic | via [ACP adapter](https://github.com/agentclientprotocol/claude-agent-acp) |
52
+ | **[Codex](https://github.com/openai/codex)** | OpenAI | via [Zed’s adapter](https://github.com/zed-industries/codex-acp) |
53
+ | **[Gemini CLI](https://github.com/google-gemini/gemini-cli)** | Google | with `--experimental-acp` option |
54
+ | **Custom** | Various | [Any ACP-compatible agent](https://agentclientprotocol.com/overview/agents) (e.g., OpenCode, Qwen Code, Kiro) |
55
+
56
+ ### Key Features
57
+
58
+ - **Note Mentions**: Reference your Obsidian notes in conversations with `@notename`
59
+ - **File Editing**: Let agents read and modify files with permission controls
60
+ - **Chat Export**: Save conversations for future reference
61
+ - **Terminal Integration**: Agents can execute shell commands and show results inline
62
+
63
+ Ready to get started? Check out the [Installation Guide](/getting-started/).
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,110 @@
1
+ # ACP Protocol Support
2
+
3
+ This page documents which Agent Client Protocol (ACP) features are supported by this plugin.
4
+
5
+ ## What is ACP?
6
+
7
+ The [Agent Client Protocol (ACP)](https://agentclientprotocol.com/) is an open standard for communication between AI agents and client applications. It defines how clients send prompts, receive responses, handle permissions, and manage sessions.
8
+
9
+ Agent Client implements ACP as a **client**, communicating with ACP-compatible agents like Claude Code, Codex, and Gemini CLI.
10
+
11
+ ## Methods
12
+
13
+ ### Client → Agent
14
+
15
+ Methods the plugin can call on agents.
16
+
17
+ | Method | Status | Notes |
18
+ |--------|--------|-------|
19
+ | `initialize` | ✅ Supported | |
20
+ | `authenticate` | ✅ Supported | |
21
+ | `session/new` | ✅ Supported | |
22
+ | `session/prompt` | ✅ Supported | |
23
+ | `session/cancel` | ✅ Supported | |
24
+ | `session/set_mode` | ✅ Supported | |
25
+ | `session/load` | ✅ Supported | |
26
+ | `session/set_model` | ✅ Supported | Unstable API |
27
+ | `session/list` | ✅ Supported | Unstable API |
28
+ | `session/resume` | ✅ Supported | Unstable API |
29
+ | `session/fork` | ✅ Supported | Unstable API |
30
+ | `session/set_config_option` | ✅ Supported | |
31
+
32
+ ::: tip
33
+ Methods marked "Unstable API" may change in future ACP versions. They are prefixed with `unstable_` in the SDK.
34
+ :::
35
+
36
+ ### Agent → Client (Notifications)
37
+
38
+ Session updates the plugin can receive from agents via `session/update`.
39
+
40
+ | Update Type | Status | Notes |
41
+ |-------------|--------|-------|
42
+ | `agent_message_chunk` | ✅ Supported | Text only |
43
+ | `agent_thought_chunk` | ✅ Supported | Text only |
44
+ | `user_message_chunk` | ✅ Supported | Text only; used for session history replay |
45
+ | `tool_call` | ✅ Supported | |
46
+ | `tool_call_update` | ✅ Supported | |
47
+ | `plan` | ✅ Supported | |
48
+ | `available_commands_update` | ✅ Supported | |
49
+ | `current_mode_update` | ✅ Supported | |
50
+ | `session_info_update` | ✅ Supported | |
51
+ | `usage_update` | ✅ Supported | Context window usage |
52
+ | `config_option_update` | ✅ Supported | |
53
+
54
+ ### Agent → Client (Requests)
55
+
56
+ Requests agents can make to the plugin.
57
+
58
+ | Method | Status | Notes |
59
+ |--------|--------|-------|
60
+ | `session/request_permission` | ✅ Supported | |
61
+ | `terminal/create` | ✅ Supported | |
62
+ | `terminal/output` | ✅ Supported | |
63
+ | `terminal/wait_for_exit` | ✅ Supported | |
64
+ | `terminal/kill` | ✅ Supported | |
65
+ | `terminal/release` | ✅ Supported | |
66
+ | `fs/read_text_file` | — | Agents use their own Read tools |
67
+ | `fs/write_text_file` | — | Agents use their own Write tools |
68
+
69
+ ## Content Types
70
+
71
+ ### Prompt Content (Client → Agent)
72
+
73
+ Content types the plugin can send in `session/prompt`.
74
+
75
+ | Type | Status | Notes |
76
+ |------|--------|-------|
77
+ | `text` | ✅ Supported | |
78
+ | `image` | ✅ Supported | Requires agent support |
79
+ | `audio` | ❌ Not supported | |
80
+ | `resource_link` | ✅ Supported | File attachments |
81
+ | `resource` | ✅ Supported | Embedded context; requires agent support |
82
+
83
+ ### Tool Call Content (Agent → Client)
84
+
85
+ Content types the plugin can display in tool calls.
86
+
87
+ | Type | Status | Notes |
88
+ |------|--------|-------|
89
+ | `diff` | ✅ Supported | |
90
+ | `terminal` | ✅ Supported | |
91
+ | `content` | ❌ Not supported | |
92
+
93
+ ## Client Capabilities
94
+
95
+ Capabilities advertised to agents during initialization.
96
+
97
+ | Capability | Value |
98
+ |------------|-------|
99
+ | `fs.readTextFile` | `false` |
100
+ | `fs.writeTextFile` | `false` |
101
+ | `terminal` | `true` |
102
+
103
+ ::: info
104
+ The plugin does not implement filesystem operations (`fs/read_text_file`, `fs/write_text_file`). Agents handle file operations through their own tools.
105
+ :::
106
+
107
+ ## See Also
108
+
109
+ - [Agent Client Protocol Specification](https://agentclientprotocol.com/)
110
+ - [ACP Schema Reference](https://agentclientprotocol.com/protocol/schema)