@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.
- package/.claude/hooks/gh-setup.sh +49 -0
- package/.claude/settings.json +15 -0
- package/.claude/skills/release-notes/SKILL.md +331 -0
- package/.editorconfig +10 -0
- package/.github/FUNDING.yml +2 -0
- package/.github/ISSUE_TEMPLATE/bug_report.yml +90 -0
- package/.github/ISSUE_TEMPLATE/config.yml +11 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +59 -0
- package/.github/copilot-instructions.md +45 -0
- package/.github/pull_request_template.md +32 -0
- package/.github/workflows/ci.yaml +25 -0
- package/.github/workflows/docs.yml +58 -0
- package/.github/workflows/relay_to_openclaw.yml +59 -0
- package/.github/workflows/release.yaml +45 -0
- package/.prettierignore +10 -0
- package/.prettierrc +13 -0
- package/.vscode/extensions.json +7 -0
- package/.vscode/settings.json +37 -0
- package/.zed/settings.json +42 -0
- package/AGENTS.md +330 -0
- package/ARCHITECTURE.md +390 -0
- package/CONTRIBUTING.md +216 -0
- package/LICENSE +202 -0
- package/NOTICE +2 -0
- package/README.ja.md +121 -0
- package/README.md +125 -0
- package/docs/.vitepress/config.mts +124 -0
- package/docs/.vitepress/theme/custom.css +111 -0
- package/docs/.vitepress/theme/index.ts +4 -0
- package/docs/agent-setup/claude-code.md +84 -0
- package/docs/agent-setup/codex.md +76 -0
- package/docs/agent-setup/custom-agents.md +67 -0
- package/docs/agent-setup/gemini-cli.md +99 -0
- package/docs/agent-setup/index.md +34 -0
- package/docs/announcements/gemini-cli-deprecation.md +73 -0
- package/docs/getting-started/index.md +78 -0
- package/docs/getting-started/quick-start.md +38 -0
- package/docs/help/faq.md +181 -0
- package/docs/help/troubleshooting.md +221 -0
- package/docs/index.md +63 -0
- package/docs/public/apple-touch-icon.png +0 -0
- package/docs/public/demo.mp4 +0 -0
- package/docs/public/favicon-16x16.png +0 -0
- package/docs/public/favicon-32x32.png +0 -0
- package/docs/public/favicon.ico +0 -0
- package/docs/public/images/editing.webp +0 -0
- package/docs/public/images/export.webp +0 -0
- package/docs/public/images/floating-chat-button.webp +0 -0
- package/docs/public/images/floating-chat-instance-menu.webp +0 -0
- package/docs/public/images/floating-chat-view.webp +0 -0
- package/docs/public/images/mode-selection.webp +0 -0
- package/docs/public/images/model-selection.webp +0 -0
- package/docs/public/images/multi-session.webp +0 -0
- package/docs/public/images/remove-image.webp +0 -0
- package/docs/public/images/ribbon-icon.webp +0 -0
- package/docs/public/images/selection-context.gif +0 -0
- package/docs/public/images/sending-images.webp +0 -0
- package/docs/public/images/sending-messages.webp +0 -0
- package/docs/public/images/session-history-button.webp +0 -0
- package/docs/public/images/slash-commands-1.webp +0 -0
- package/docs/public/images/slash-commands-2.webp +0 -0
- package/docs/public/images/switch-agent.webp +0 -0
- package/docs/public/images/switch-default-agent.webp +0 -0
- package/docs/public/images/temporary-disable.gif +0 -0
- package/docs/reference/acp-support.md +110 -0
- package/docs/usage/chat-export.md +80 -0
- package/docs/usage/commands.md +51 -0
- package/docs/usage/context-files.md +57 -0
- package/docs/usage/editing.md +69 -0
- package/docs/usage/floating-chat.md +84 -0
- package/docs/usage/index.md +97 -0
- package/docs/usage/mcp-tools.md +33 -0
- package/docs/usage/mentions.md +70 -0
- package/docs/usage/mode-selection.md +28 -0
- package/docs/usage/model-selection.md +32 -0
- package/docs/usage/multi-session.md +68 -0
- package/docs/usage/sending-images.md +64 -0
- package/docs/usage/session-history.md +91 -0
- package/docs/usage/slash-commands.md +44 -0
- package/esbuild.config.mjs +49 -0
- package/eslint.config.mjs +25 -0
- package/main.js +228 -0
- package/manifest.json +11 -0
- package/package.json +52 -0
- package/src/acp/acp-client.ts +921 -0
- package/src/acp/acp-handler.ts +252 -0
- package/src/acp/permission-handler.ts +282 -0
- package/src/acp/terminal-handler.ts +264 -0
- package/src/acp/type-converter.ts +272 -0
- package/src/hooks/useAgent.ts +250 -0
- package/src/hooks/useAgentMessages.ts +470 -0
- package/src/hooks/useAgentSession.ts +544 -0
- package/src/hooks/useChatActions.ts +400 -0
- package/src/hooks/useHistoryModal.ts +219 -0
- package/src/hooks/useSessionHistory.ts +863 -0
- package/src/hooks/useSettings.ts +19 -0
- package/src/hooks/useSuggestions.ts +342 -0
- package/src/main.ts +9 -0
- package/src/plugin.ts +1126 -0
- package/src/services/chat-exporter.ts +552 -0
- package/src/services/message-sender.ts +755 -0
- package/src/services/message-state.ts +375 -0
- package/src/services/session-helpers.ts +211 -0
- package/src/services/session-state.ts +130 -0
- package/src/services/session-storage.ts +267 -0
- package/src/services/settings-normalizer.ts +255 -0
- package/src/services/settings-service.ts +285 -0
- package/src/services/update-checker.ts +128 -0
- package/src/services/vault-service.ts +558 -0
- package/src/services/view-registry.ts +345 -0
- package/src/types/agent.ts +92 -0
- package/src/types/chat.ts +351 -0
- package/src/types/errors.ts +136 -0
- package/src/types/obsidian-internals.d.ts +14 -0
- package/src/types/session.ts +731 -0
- package/src/ui/ChangeDirectoryModal.ts +137 -0
- package/src/ui/ChatContext.ts +25 -0
- package/src/ui/ChatHeader.tsx +295 -0
- package/src/ui/ChatPanel.tsx +1162 -0
- package/src/ui/ChatView.tsx +348 -0
- package/src/ui/ErrorBanner.tsx +104 -0
- package/src/ui/FloatingButton.tsx +351 -0
- package/src/ui/FloatingChatView.tsx +531 -0
- package/src/ui/InputArea.tsx +1107 -0
- package/src/ui/InputToolbar.tsx +371 -0
- package/src/ui/MessageBubble.tsx +442 -0
- package/src/ui/MessageList.tsx +265 -0
- package/src/ui/PermissionBanner.tsx +61 -0
- package/src/ui/SessionHistoryModal.tsx +821 -0
- package/src/ui/SettingsTab.ts +1337 -0
- package/src/ui/SuggestionPopup.tsx +138 -0
- package/src/ui/TerminalBlock.tsx +107 -0
- package/src/ui/ToolCallBlock.tsx +456 -0
- package/src/ui/shared/AttachmentStrip.tsx +57 -0
- package/src/ui/shared/IconButton.tsx +55 -0
- package/src/ui/shared/MarkdownRenderer.tsx +103 -0
- package/src/ui/view-host.ts +56 -0
- package/src/utils/error-utils.ts +274 -0
- package/src/utils/logger.ts +44 -0
- package/src/utils/mention-parser.ts +129 -0
- package/src/utils/paths.ts +246 -0
- package/src/utils/platform.ts +425 -0
- package/styles.css +2322 -0
- package/tsconfig.json +18 -0
- package/version-bump.mjs +18 -0
- package/versions.json +3 -0
package/docs/help/faq.md
ADDED
|
@@ -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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
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)
|