@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
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Obsidian-inspired theme for VitePress
|
|
3
|
+
* Based on Obsidian's default dark/light themes
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
:root {
|
|
7
|
+
/* Obsidian Purple accent */
|
|
8
|
+
--vp-c-brand-1: #a88bfa;
|
|
9
|
+
--vp-c-brand-2: #8b6ce7;
|
|
10
|
+
--vp-c-brand-3: #7c5fd6;
|
|
11
|
+
--vp-c-brand-soft: rgba(168, 139, 250, 0.14);
|
|
12
|
+
|
|
13
|
+
/* Light mode colors (Obsidian light theme inspired) */
|
|
14
|
+
--vp-c-bg: #ffffff;
|
|
15
|
+
--vp-c-bg-alt: #f6f6f6;
|
|
16
|
+
--vp-c-bg-elv: #ffffff;
|
|
17
|
+
--vp-c-bg-soft: #f6f6f6;
|
|
18
|
+
|
|
19
|
+
--vp-c-text-1: #2e3338;
|
|
20
|
+
--vp-c-text-2: #5c6166;
|
|
21
|
+
--vp-c-text-3: #86909c;
|
|
22
|
+
|
|
23
|
+
--vp-c-divider: #e5e5e5;
|
|
24
|
+
--vp-c-border: #e0e0e0;
|
|
25
|
+
--vp-c-gutter: #e5e5e5;
|
|
26
|
+
|
|
27
|
+
/* Code blocks */
|
|
28
|
+
--vp-code-block-bg: #f6f6f6;
|
|
29
|
+
--vp-code-line-highlight-color: rgba(168, 139, 250, 0.1);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.dark {
|
|
33
|
+
/* Obsidian Dark mode colors */
|
|
34
|
+
--vp-c-brand-1: #a88bfa;
|
|
35
|
+
--vp-c-brand-2: #9575f3;
|
|
36
|
+
--vp-c-brand-3: #8466e5;
|
|
37
|
+
--vp-c-brand-soft: rgba(168, 139, 250, 0.16);
|
|
38
|
+
|
|
39
|
+
--vp-c-bg: #1e1e1e;
|
|
40
|
+
--vp-c-bg-alt: #181818;
|
|
41
|
+
--vp-c-bg-elv: #252525;
|
|
42
|
+
--vp-c-bg-soft: #252525;
|
|
43
|
+
|
|
44
|
+
--vp-c-text-1: #dcddde;
|
|
45
|
+
--vp-c-text-2: #a3a3a3;
|
|
46
|
+
--vp-c-text-3: #787878;
|
|
47
|
+
|
|
48
|
+
--vp-c-divider: #2d2d2d;
|
|
49
|
+
--vp-c-border: #3d3d3d;
|
|
50
|
+
--vp-c-gutter: #2d2d2d;
|
|
51
|
+
|
|
52
|
+
/* Code blocks */
|
|
53
|
+
--vp-code-block-bg: #181818;
|
|
54
|
+
--vp-code-line-highlight-color: rgba(168, 139, 250, 0.15);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* Hero section styling */
|
|
58
|
+
.VPHero .name {
|
|
59
|
+
background: linear-gradient(135deg, #a88bfa 0%, #7c5fd6 100%);
|
|
60
|
+
-webkit-background-clip: text;
|
|
61
|
+
background-clip: text;
|
|
62
|
+
-webkit-text-fill-color: transparent;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Button styling */
|
|
66
|
+
.VPButton.brand {
|
|
67
|
+
background-color: var(--vp-c-brand-1);
|
|
68
|
+
border-color: var(--vp-c-brand-1);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.VPButton.brand:hover {
|
|
72
|
+
background-color: var(--vp-c-brand-2);
|
|
73
|
+
border-color: var(--vp-c-brand-2);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* Sidebar active item */
|
|
77
|
+
.VPSidebar .is-active > .link > .text {
|
|
78
|
+
color: var(--vp-c-brand-1);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* Feature cards */
|
|
82
|
+
.VPFeature {
|
|
83
|
+
border-radius: 8px;
|
|
84
|
+
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.VPFeature:hover {
|
|
88
|
+
transform: translateY(-2px);
|
|
89
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.dark .VPFeature:hover {
|
|
93
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* Inline code */
|
|
97
|
+
:not(pre) > code {
|
|
98
|
+
background-color: var(--vp-c-bg-soft);
|
|
99
|
+
border-radius: 4px;
|
|
100
|
+
padding: 2px 6px;
|
|
101
|
+
color: var(--vp-c-brand-1);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* Custom containers (tips, warnings) */
|
|
105
|
+
.custom-block.tip {
|
|
106
|
+
border-color: var(--vp-c-brand-1);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.custom-block.warning {
|
|
110
|
+
border-color: #e5a84b;
|
|
111
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Claude Code Setup
|
|
2
|
+
|
|
3
|
+
Claude Code is Anthropic's AI coding assistant. You can use it with either an **API key** or by **logging in with your Anthropic account**.
|
|
4
|
+
|
|
5
|
+
## Install and Configure
|
|
6
|
+
|
|
7
|
+
Open a terminal (Terminal on macOS/Linux, PowerShell on Windows) and run the following commands.
|
|
8
|
+
|
|
9
|
+
1. Install claude-agent-acp:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install -g @agentclientprotocol/claude-agent-acp
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
2. Find the installation path:
|
|
16
|
+
|
|
17
|
+
::: code-group
|
|
18
|
+
|
|
19
|
+
```bash [macOS/Linux]
|
|
20
|
+
which claude-agent-acp
|
|
21
|
+
# Example output: /usr/local/bin/claude-agent-acp
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
```cmd [Windows]
|
|
25
|
+
where.exe claude-agent-acp
|
|
26
|
+
# Example output: C:\Users\Username\AppData\Roaming\npm\claude-agent-acp.cmd
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
:::
|
|
30
|
+
|
|
31
|
+
3. Open **Settings → Agent Client**. The default command (`claude-agent-acp`) works in many cases. If the agent is not found automatically, set the **Claude Code path** to the path found above, or click **Auto-detect**.
|
|
32
|
+
|
|
33
|
+
## Authentication
|
|
34
|
+
|
|
35
|
+
Choose one of the following methods:
|
|
36
|
+
|
|
37
|
+
### Option A: API Key
|
|
38
|
+
|
|
39
|
+
1. Get your API key from [Anthropic Console](https://console.anthropic.com/)
|
|
40
|
+
2. Enter the API key in **Settings → Agent Client → Claude Code → API key**
|
|
41
|
+
|
|
42
|
+
### Option B: Account Login
|
|
43
|
+
|
|
44
|
+
If you have a Claude subscription and prefer not to use an API key, you can log in with your Anthropic account.
|
|
45
|
+
|
|
46
|
+
::: warning Important
|
|
47
|
+
This requires installing **Claude Code CLI** separately. The CLI creates the login session that the plugin uses.
|
|
48
|
+
:::
|
|
49
|
+
|
|
50
|
+
1. Install Claude Code CLI by running the following command in your terminal:
|
|
51
|
+
|
|
52
|
+
::: code-group
|
|
53
|
+
|
|
54
|
+
```bash [macOS/Linux]
|
|
55
|
+
curl -fsSL https://claude.ai/install.sh | bash
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
```powershell [Windows]
|
|
59
|
+
irm https://claude.ai/install.ps1 | iex
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
:::
|
|
63
|
+
|
|
64
|
+
2. Login via CLI by running:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
claude
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Follow the prompts to authenticate with your Anthropic account.
|
|
71
|
+
|
|
72
|
+
3. In **Settings → Agent Client**, leave the **API key field empty**.
|
|
73
|
+
|
|
74
|
+
::: tip
|
|
75
|
+
The Claude Desktop app uses a different authentication system. Having Claude Desktop running does **not** authenticate the plugin — you must log in via the CLI.
|
|
76
|
+
:::
|
|
77
|
+
|
|
78
|
+
## Verify Setup
|
|
79
|
+
|
|
80
|
+
1. Click the robot icon in the ribbon or use the command palette: **"Open chat view"**
|
|
81
|
+
2. You should see the chat panel open and connect to Claude Code
|
|
82
|
+
3. Try sending a message to verify the connection
|
|
83
|
+
|
|
84
|
+
Having issues? See [Troubleshooting](/help/troubleshooting).
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Codex Setup
|
|
2
|
+
|
|
3
|
+
Codex is OpenAI's AI coding assistant. You can use it with either an **API key** or by **logging in with your OpenAI account**.
|
|
4
|
+
|
|
5
|
+
## Install and Configure
|
|
6
|
+
|
|
7
|
+
Open a terminal (Terminal on macOS/Linux, PowerShell on Windows) and run the following commands.
|
|
8
|
+
|
|
9
|
+
1. Install codex-acp:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install -g @zed-industries/codex-acp
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
2. Find the installation path:
|
|
16
|
+
|
|
17
|
+
::: code-group
|
|
18
|
+
|
|
19
|
+
```bash [macOS/Linux]
|
|
20
|
+
which codex-acp
|
|
21
|
+
# Example output: /usr/local/bin/codex-acp
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
```cmd [Windows]
|
|
25
|
+
where.exe codex-acp
|
|
26
|
+
# Example output: C:\Users\Username\AppData\Roaming\npm\codex-acp.cmd
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
:::
|
|
30
|
+
|
|
31
|
+
3. Open **Settings → Agent Client**. The default command (`codex-acp`) works in many cases. If the agent is not found automatically, set the **Codex path** to the path found above, or click **Auto-detect**.
|
|
32
|
+
|
|
33
|
+
## Authentication
|
|
34
|
+
|
|
35
|
+
Choose one of the following methods:
|
|
36
|
+
|
|
37
|
+
### Option A: API Key
|
|
38
|
+
|
|
39
|
+
1. Get your API key from [OpenAI Platform](https://platform.openai.com/api-keys)
|
|
40
|
+
2. Enter the API key in **Settings → Agent Client → Codex → API key**
|
|
41
|
+
|
|
42
|
+
### Option B: Account Login
|
|
43
|
+
|
|
44
|
+
If you have a ChatGPT subscription and prefer not to use an API key, you can log in with your OpenAI account.
|
|
45
|
+
|
|
46
|
+
::: warning Important
|
|
47
|
+
This requires installing **Codex CLI** separately. The CLI creates the login session that the plugin uses.
|
|
48
|
+
:::
|
|
49
|
+
|
|
50
|
+
1. Install Codex CLI by running the following command in your terminal:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npm install -g @openai/codex
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
2. Login via CLI by running:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
codex
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Follow the prompts to authenticate with your OpenAI account.
|
|
63
|
+
|
|
64
|
+
3. In **Settings → Agent Client**, leave the **API key field empty**.
|
|
65
|
+
|
|
66
|
+
::: tip
|
|
67
|
+
The ChatGPT app and Codex app use a different authentication system. Having ChatGPT running does **not** authenticate the plugin — you must log in via the CLI.
|
|
68
|
+
:::
|
|
69
|
+
|
|
70
|
+
## Verify Setup
|
|
71
|
+
|
|
72
|
+
1. Click the robot icon in the ribbon or use the command palette: **"Open chat view"**
|
|
73
|
+
2. Switch to Codex from the agent dropdown in the chat header
|
|
74
|
+
3. Try sending a message to verify the connection
|
|
75
|
+
|
|
76
|
+
Having issues? See [Troubleshooting](/help/troubleshooting).
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Custom Agents Setup
|
|
2
|
+
|
|
3
|
+
You can use any agent that implements the [Agent Client Protocol (ACP)](https://agentclientprotocol.com/get-started/agents).
|
|
4
|
+
|
|
5
|
+
## Install and Configure
|
|
6
|
+
|
|
7
|
+
1. Install your ACP-compatible agent (e.g., [OpenCode](https://github.com/anomalyco/opencode), [Qwen Code](https://github.com/QwenLM/qwen-code), [Kiro](https://kiro.dev/)).
|
|
8
|
+
|
|
9
|
+
2. Open **Settings → Agent Client** and scroll to **Custom Agents** section.
|
|
10
|
+
|
|
11
|
+
3. Click **Add custom agent**.
|
|
12
|
+
|
|
13
|
+
4. Configure the agent:
|
|
14
|
+
- **Agent ID**: Unique identifier (e.g., `my-agent`)
|
|
15
|
+
- **Display name**: Name shown in menus (e.g., `My Agent`)
|
|
16
|
+
- **Path**: Command name or absolute path to the agent executable. The command name alone (e.g., `opencode`) works in many cases. If the agent is not found automatically, set the full path, or click **Auto-detect**.
|
|
17
|
+
- **Arguments**: Command-line arguments, one per line (if required)
|
|
18
|
+
- **Environment variables**: `KEY=VALUE` pairs, one per line (if required)
|
|
19
|
+
|
|
20
|
+
## Configuration Examples
|
|
21
|
+
|
|
22
|
+
### OpenCode
|
|
23
|
+
|
|
24
|
+
| Field | Value |
|
|
25
|
+
|-------|-------|
|
|
26
|
+
| **Agent ID** | `opencode` |
|
|
27
|
+
| **Display name** | `OpenCode` |
|
|
28
|
+
| **Path** | `opencode` |
|
|
29
|
+
| **Arguments** | `acp` |
|
|
30
|
+
| **Environment variables** | (optional) |
|
|
31
|
+
|
|
32
|
+
### Qwen Code
|
|
33
|
+
|
|
34
|
+
| Field | Value |
|
|
35
|
+
|-------|-------|
|
|
36
|
+
| **Agent ID** | `qwen-code` |
|
|
37
|
+
| **Display name** | `Qwen Code` |
|
|
38
|
+
| **Path** | `qwen` |
|
|
39
|
+
| **Arguments** | `--experimental-acp` |
|
|
40
|
+
| **Environment variables** | (optional) |
|
|
41
|
+
|
|
42
|
+
### Kiro
|
|
43
|
+
|
|
44
|
+
| Field | Value |
|
|
45
|
+
|-------|-------|
|
|
46
|
+
| **Agent ID** | `kiro-cli` |
|
|
47
|
+
| **Display name** | `Kiro` |
|
|
48
|
+
| **Path** | `kiro-cli` |
|
|
49
|
+
| **Arguments** | `acp` |
|
|
50
|
+
| **Environment variables** | (optional) |
|
|
51
|
+
|
|
52
|
+
## Authentication
|
|
53
|
+
|
|
54
|
+
Authentication depends on the specific agent. Common patterns:
|
|
55
|
+
|
|
56
|
+
- **API Key**: Add to **Environment variables** (e.g., `MY_API_KEY=xxx`)
|
|
57
|
+
- **Account Login**: Run the agent's CLI to authenticate, then leave environment variables empty
|
|
58
|
+
|
|
59
|
+
Refer to your agent's documentation for specific authentication instructions.
|
|
60
|
+
|
|
61
|
+
## Verify Setup
|
|
62
|
+
|
|
63
|
+
1. Click the robot icon in the ribbon or use the command palette: **"Open chat view"**
|
|
64
|
+
2. Select your custom agent from the agent dropdown in the chat header
|
|
65
|
+
3. Try sending a message to verify the connection
|
|
66
|
+
|
|
67
|
+
Having issues? See [Troubleshooting](/help/troubleshooting).
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Gemini CLI Setup
|
|
2
|
+
|
|
3
|
+
::: warning Gemini CLI is being discontinued
|
|
4
|
+
Google is retiring account login for Gemini CLI (Pro / Ultra / free tiers) on **June 18, 2026**. Google states Gemini CLI stays accessible via a **paid** Gemini API key. See **[Gemini CLI Discontinuation & Migration](/announcements/gemini-cli-deprecation)**.
|
|
5
|
+
:::
|
|
6
|
+
|
|
7
|
+
Gemini CLI is Google's AI assistant. You can authenticate using your **Google account**, an **API key**, or **Vertex AI**.
|
|
8
|
+
|
|
9
|
+
## Install and Configure
|
|
10
|
+
|
|
11
|
+
Open a terminal (Terminal on macOS/Linux, PowerShell on Windows) and run the following commands.
|
|
12
|
+
|
|
13
|
+
1. Install Gemini CLI:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install -g @google/gemini-cli
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
2. Find the installation path:
|
|
20
|
+
|
|
21
|
+
::: code-group
|
|
22
|
+
|
|
23
|
+
```bash [macOS/Linux]
|
|
24
|
+
which gemini
|
|
25
|
+
# Example output: /usr/local/bin/gemini
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
```cmd [Windows]
|
|
29
|
+
where.exe gemini
|
|
30
|
+
# Example output: C:\Users\Username\AppData\Roaming\npm\gemini.cmd
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
:::
|
|
34
|
+
|
|
35
|
+
3. Open **Settings → Agent Client**. The default command (`gemini`) works in many cases. If the agent is not found automatically, set the **Gemini CLI path** to the path found above, or click **Auto-detect**.
|
|
36
|
+
|
|
37
|
+
4. Ensure **Arguments** contains `--experimental-acp` (this is set by default).
|
|
38
|
+
|
|
39
|
+
## Authentication
|
|
40
|
+
|
|
41
|
+
Choose one of the following methods:
|
|
42
|
+
|
|
43
|
+
### Option A: Google Account Login (OAuth)
|
|
44
|
+
|
|
45
|
+
If you have a Google account and prefer not to use an API key, you can log in directly.
|
|
46
|
+
|
|
47
|
+
::: warning
|
|
48
|
+
Account login is being discontinued for Pro / Ultra / free tiers on June 18, 2026. See [Gemini CLI Discontinuation & Migration](/announcements/gemini-cli-deprecation).
|
|
49
|
+
:::
|
|
50
|
+
|
|
51
|
+
1. Run Gemini CLI in your terminal and choose "Login with Google":
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
gemini
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
2. Follow the browser authentication flow.
|
|
58
|
+
|
|
59
|
+
3. In **Settings → Agent Client**, leave the **API key field empty**.
|
|
60
|
+
|
|
61
|
+
::: tip
|
|
62
|
+
If you have a Gemini Code Assist License from your organization, add `GOOGLE_CLOUD_PROJECT=YOUR_PROJECT_ID` in the **Environment variables** field.
|
|
63
|
+
:::
|
|
64
|
+
|
|
65
|
+
### Option B: Gemini API Key
|
|
66
|
+
|
|
67
|
+
If you prefer to use an API key for authentication:
|
|
68
|
+
|
|
69
|
+
1. Get your API key from [Google AI Studio](https://aistudio.google.com/apikey)
|
|
70
|
+
2. Enter the API key in **Settings → Agent Client → Gemini CLI → API key**
|
|
71
|
+
|
|
72
|
+
::: tip If the key isn't picked up
|
|
73
|
+
If authentication still fails, set the key on the Gemini CLI side instead: run `gemini` in your terminal, type `/auth`, choose **Use Gemini API Key**, and paste your key (it's stored in your system keychain). Then leave the **API key field empty** in Agent Client.
|
|
74
|
+
:::
|
|
75
|
+
|
|
76
|
+
### Option C: Vertex AI
|
|
77
|
+
|
|
78
|
+
If you are using Vertex AI for enterprise workloads:
|
|
79
|
+
|
|
80
|
+
1. In **Settings → Agent Client → Gemini CLI → Environment variables**, add:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
GOOGLE_API_KEY=YOUR_API_KEY
|
|
84
|
+
GOOGLE_GENAI_USE_VERTEXAI=true
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
2. Leave the **API key field empty** (use Environment variables instead).
|
|
88
|
+
|
|
89
|
+
::: tip If it isn't picked up
|
|
90
|
+
If authentication still fails, configure Vertex AI on the Gemini CLI side instead: run `gemini` in your terminal, type `/auth`, and choose **Vertex AI**.
|
|
91
|
+
:::
|
|
92
|
+
|
|
93
|
+
## Verify Setup
|
|
94
|
+
|
|
95
|
+
1. Click the robot icon in the ribbon or use the command palette: **"Open chat view"**
|
|
96
|
+
2. Switch to Gemini CLI from the agent dropdown in the chat header
|
|
97
|
+
3. Try sending a message to verify the connection
|
|
98
|
+
|
|
99
|
+
Having issues? See [Troubleshooting](/help/troubleshooting).
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Agent Setup Overview
|
|
2
|
+
|
|
3
|
+
Agent Client supports multiple AI agents through the [Agent Client Protocol (ACP)](https://github.com/agentclientprotocol/agent-client-protocol). This section covers how to set up each supported agent.
|
|
4
|
+
|
|
5
|
+
## Supported Agents
|
|
6
|
+
|
|
7
|
+
| Agent | Provider | Package |
|
|
8
|
+
|-------|----------|---------|
|
|
9
|
+
| [Claude Code](./claude-code) | Anthropic | `@agentclientprotocol/claude-agent-acp` |
|
|
10
|
+
| [Codex](./codex) | OpenAI | `@zed-industries/codex-acp` |
|
|
11
|
+
| [Gemini CLI](./gemini-cli) | Google | `@google/gemini-cli` |
|
|
12
|
+
| [Custom Agents](./custom-agents) | Various | Any ACP-compatible agent |
|
|
13
|
+
|
|
14
|
+
## Common Setup Steps
|
|
15
|
+
|
|
16
|
+
All agents follow a similar setup pattern:
|
|
17
|
+
|
|
18
|
+
1. **Install the agent package** via npm
|
|
19
|
+
2. **Set up authentication** (API key or account login)
|
|
20
|
+
|
|
21
|
+
The plugin resolves bare command names through your login shell's PATH, so path configuration is often not needed. If the agent is not found automatically, use `which` (macOS/Linux) or `where.exe` (Windows) to find the path and configure it in Settings → Agent Client.
|
|
22
|
+
|
|
23
|
+
## WSL Mode (Windows)
|
|
24
|
+
|
|
25
|
+
For Windows users, we recommend using **WSL Mode** for better compatibility:
|
|
26
|
+
|
|
27
|
+
1. Install [WSL](https://docs.microsoft.com/en-us/windows/wsl/install)
|
|
28
|
+
2. Install Node.js and agents inside WSL
|
|
29
|
+
3. Enable **WSL Mode** in Settings → Agent Client
|
|
30
|
+
4. Use Linux-style paths (e.g., `/usr/local/bin/node`)
|
|
31
|
+
|
|
32
|
+
## Switching Agents
|
|
33
|
+
|
|
34
|
+
Once you have multiple agents configured, you can switch between them using the **⋮** menu in the chat header. To change the default agent for new chat views, go to **Settings → Agent Client → Default agent**.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Gemini CLI Discontinuation & Migration
|
|
2
|
+
|
|
3
|
+
::: warning Gemini CLI is being discontinued
|
|
4
|
+
Google is retiring **account login for Gemini CLI (Pro / Ultra / free tiers) on June 18, 2026**. After that date, signing in with your Google account will stop working in Gemini CLI.
|
|
5
|
+
|
|
6
|
+
According to Google, **Gemini CLI stays accessible via a paid Gemini API key**, so the reliable way to keep using Gemini in this plugin is a paid API key.
|
|
7
|
+
:::
|
|
8
|
+
|
|
9
|
+
## What's changing
|
|
10
|
+
|
|
11
|
+
On **June 18, 2026**, Gemini CLI will **stop serving requests** for account-login tiers. This is part of Google's transition from Gemini CLI to the new **Antigravity CLI**, announced at Google I/O 2026.
|
|
12
|
+
|
|
13
|
+
Account login (signing in with your Google account) is what stops — but Google also points to a way to keep using Gemini CLI:
|
|
14
|
+
|
|
15
|
+
> "Gemini CLI will remain accessible via paid Gemini and Gemini Enterprise Agent Platform API keys."
|
|
16
|
+
> — [Google Developers Blog](https://developers.googleblog.com/an-important-update-transitioning-gemini-cli-to-antigravity-cli/)
|
|
17
|
+
|
|
18
|
+
Note that Google's wording specifies a **paid** API key. The blog does not state whether a **free-tier** API key will keep working with Gemini CLI after the cutoff, so free-tier continuation is **not guaranteed**. This plugin drives Gemini CLI with an API key, so a paid API key is the dependable path forward.
|
|
19
|
+
|
|
20
|
+
## Who is affected
|
|
21
|
+
|
|
22
|
+
| Tier / access | Still usable after June 18, 2026? |
|
|
23
|
+
| --- | --- |
|
|
24
|
+
| Free tier (account login) | ❌ No — account login stops |
|
|
25
|
+
| Google AI Pro (account login) | ❌ No — account login stops |
|
|
26
|
+
| Google AI Ultra (account login) | ❌ No — account login stops |
|
|
27
|
+
| **Gemini CLI via a paid API key** | ✅ Yes — keeps working |
|
|
28
|
+
|
|
29
|
+
::: tip Note
|
|
30
|
+
Being on a paid plan (Pro or Ultra) does **not** exempt you — the cutoff is about the *account-login* method, not whether you pay. The reliable way to keep going is a **paid API key** (see below).
|
|
31
|
+
:::
|
|
32
|
+
|
|
33
|
+
## How to keep using Gemini in this plugin
|
|
34
|
+
|
|
35
|
+
### Option A — Use a paid Gemini API key (recommended)
|
|
36
|
+
|
|
37
|
+
1. Create an API key in [Google AI Studio](https://aistudio.google.com/apikey) and enable billing to move it to a [paid tier](https://ai.google.dev/gemini-api/docs/billing). This is the access Google explicitly says keeps working.
|
|
38
|
+
2. Configure the key in this plugin by following the [Gemini CLI Setup](/agent-setup/gemini-cli) page (Option B: API key, or Option C: Vertex AI).
|
|
39
|
+
|
|
40
|
+
::: tip About the free tier
|
|
41
|
+
The Gemini API has a free tier, and as of writing models such as `gemini-2.5-pro` and `gemini-3.5-flash` show as free of charge on the [pricing page](https://ai.google.dev/gemini-api/docs/pricing). **However, Google's announcement only guarantees access via a *paid* API key** — it does not say a free-tier key will keep working with Gemini CLI after June 18, 2026. A free key *may* work, but it is not guaranteed; if you need reliability, use a paid key. Rate limits for any tier can be checked in the [AI Studio rate-limit dashboard](https://aistudio.google.com/rate-limit).
|
|
42
|
+
:::
|
|
43
|
+
|
|
44
|
+
::: tip Privacy note
|
|
45
|
+
A paid API key also helps with privacy. Agent Client can send your **note contents** to the model as context, and on **paid** tiers Google does not use that data to improve its products: *"When you use Paid Services, Google doesn't use your prompts ... or responses to improve our products."* (If you ever fall back to a free-tier key, note that free/unpaid usage **can** be used for product improvement and human review.) Source: [Gemini API Additional Terms of Service](https://ai.google.dev/gemini-api/terms).
|
|
46
|
+
:::
|
|
47
|
+
|
|
48
|
+
### Option B — Switch to another ACP agent
|
|
49
|
+
|
|
50
|
+
This plugin works with any agent that speaks the Agent Client Protocol (ACP). If you'd rather move off Gemini entirely:
|
|
51
|
+
|
|
52
|
+
- [Claude Code](/agent-setup/claude-code)
|
|
53
|
+
- [Codex](/agent-setup/codex)
|
|
54
|
+
|
|
55
|
+
## What about Antigravity CLI?
|
|
56
|
+
|
|
57
|
+
Google's replacement, **Antigravity CLI**, does **not currently support ACP** (there is no `--experimental-acp` mode), so this plugin **cannot connect to it as a built-in agent yet**. Antigravity CLI is also not open source.
|
|
58
|
+
|
|
59
|
+
If Google adds ACP support — or if an adapter built on the **Antigravity SDK** emerges (similar to how `claude-agent-acp` is built on the Claude Agent SDK rather than wrapping the CLI) — built-in support will be reconsidered. For Google's own migration steps, see the [Antigravity CLI migration guide](https://antigravity.google/docs/gcli-migration).
|
|
60
|
+
|
|
61
|
+
A community ACP bridge, [`agy-acp`](https://github.com/openabdev/openab/tree/main/agy-acp), does exist and can be added as a [custom agent](/agent-setup/custom-agents). It works as a minimal text chat only — streaming, tool calls, and diffs don't come through — so it's an escape hatch rather than a full replacement.
|
|
62
|
+
|
|
63
|
+
## Questions?
|
|
64
|
+
|
|
65
|
+
If anything is unclear or you run into trouble migrating, join the discussion on [GitHub](https://github.com/RAIT-09/obsidian-agent-client/discussions/300).
|
|
66
|
+
|
|
67
|
+
## Sources
|
|
68
|
+
|
|
69
|
+
- [An important update: Transitioning Gemini CLI to Antigravity CLI — Google Developers Blog](https://developers.googleblog.com/an-important-update-transitioning-gemini-cli-to-antigravity-cli/)
|
|
70
|
+
- [Google I/O 2026 developer highlights — Google blog](https://blog.google/intl/ja-jp/company-news/technology/google-io-2026-developer-highlights/)
|
|
71
|
+
- [Gemini Developer API pricing](https://ai.google.dev/gemini-api/docs/pricing)
|
|
72
|
+
- [Gemini API Additional Terms of Service](https://ai.google.dev/gemini-api/terms)
|
|
73
|
+
- [Gemini API rate limits](https://ai.google.dev/gemini-api/docs/rate-limits)
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Installation
|
|
2
|
+
|
|
3
|
+
## Install the Plugin
|
|
4
|
+
|
|
5
|
+
### From Community Plugins (Recommended)
|
|
6
|
+
|
|
7
|
+
1. In Obsidian, open **Settings → Community Plugins → Browse**
|
|
8
|
+
2. Search for **"Agent Client"**
|
|
9
|
+
3. Click **Install**, then **Enable**
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="obsidian://show-plugin?id=agent-client" style="display:inline-block;padding:10px 24px;background:#7c3aed;color:white;border-radius:8px;text-decoration:none;font-weight:600;">Add to Obsidian</a>
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
### Via BRAT (Pre-release Versions)
|
|
16
|
+
|
|
17
|
+
To try pre-release versions before they are published to Community Plugins:
|
|
18
|
+
|
|
19
|
+
1. Install the [BRAT](https://github.com/TfTHacker/obsidian42-brat) plugin from the Community Plugins browser
|
|
20
|
+
2. In Obsidian settings, go to **Community Plugins → BRAT → Add Beta Plugin**
|
|
21
|
+
3. Paste this repo URL:
|
|
22
|
+
```
|
|
23
|
+
https://github.com/RAIT-09/obsidian-agent-client
|
|
24
|
+
```
|
|
25
|
+
4. BRAT will download the latest release and keep it auto-updated
|
|
26
|
+
5. Enable **Agent Client** from the plugin list
|
|
27
|
+
|
|
28
|
+
### Manual Installation
|
|
29
|
+
|
|
30
|
+
1. Download the latest release files from [GitHub Releases](https://github.com/RAIT-09/obsidian-agent-client/releases):
|
|
31
|
+
- `main.js`
|
|
32
|
+
- `manifest.json`
|
|
33
|
+
- `styles.css`
|
|
34
|
+
2. Create the plugin folder: `VaultFolder/.obsidian/plugins/agent-client/`
|
|
35
|
+
3. Place the downloaded files in this folder
|
|
36
|
+
4. Enable the plugin in **Obsidian Settings → Community Plugins**
|
|
37
|
+
|
|
38
|
+
## Prerequisites
|
|
39
|
+
|
|
40
|
+
### Node.js
|
|
41
|
+
|
|
42
|
+
::: tip Not always required
|
|
43
|
+
Node.js is needed for npm-based agents like Claude Code, Codex, and Gemini CLI. If your agent is a standalone binary, you can skip this step.
|
|
44
|
+
:::
|
|
45
|
+
|
|
46
|
+
If you need Node.js:
|
|
47
|
+
|
|
48
|
+
1. Download from [nodejs.org](https://nodejs.org/)
|
|
49
|
+
2. Install the LTS version (recommended)
|
|
50
|
+
|
|
51
|
+
### Find Your Node.js Path
|
|
52
|
+
|
|
53
|
+
If auto-detect doesn't find Node.js, you can locate it manually. Open a terminal (Terminal on macOS/Linux, PowerShell on Windows) and run:
|
|
54
|
+
|
|
55
|
+
::: code-group
|
|
56
|
+
|
|
57
|
+
```bash [macOS/Linux]
|
|
58
|
+
which node
|
|
59
|
+
# Example output: /usr/local/bin/node
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
```cmd [Windows]
|
|
63
|
+
where.exe node
|
|
64
|
+
# Example output: C:\Program Files\nodejs\node.exe
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
:::
|
|
68
|
+
|
|
69
|
+
### Configure Node.js Path
|
|
70
|
+
|
|
71
|
+
In most cases, the plugin automatically finds Node.js through your login shell's PATH, so no configuration is needed. If Node.js is not detected automatically:
|
|
72
|
+
|
|
73
|
+
1. Open **Settings → Agent Client**
|
|
74
|
+
2. Click the **Auto-detect** button next to the **Node.js path** field, or enter the path manually
|
|
75
|
+
|
|
76
|
+
## Next Steps
|
|
77
|
+
|
|
78
|
+
Continue to [Quick Start](./quick-start) to set up your first agent and start chatting!
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Quick Start
|
|
2
|
+
|
|
3
|
+
This guide will get you chatting with an AI agent in just a few minutes.
|
|
4
|
+
|
|
5
|
+
## Step 1: Choose Your Agent
|
|
6
|
+
|
|
7
|
+
Agent Client supports multiple AI agents. Choose one to start:
|
|
8
|
+
|
|
9
|
+
| Agent | Provider | Integration |
|
|
10
|
+
|-------|----------|-------------|
|
|
11
|
+
| **[Claude Code](/agent-setup/claude-code)** | Anthropic | via [ACP adapter](https://github.com/agentclientprotocol/claude-agent-acp) |
|
|
12
|
+
| **[Codex](/agent-setup/codex)** | OpenAI | via [Zed's adapter](https://github.com/zed-industries/codex-acp) |
|
|
13
|
+
| **[Gemini CLI](/agent-setup/gemini-cli)** | Google | with `--experimental-acp` option |
|
|
14
|
+
| **[Custom](/agent-setup/custom-agents)** | Various | [Any ACP-compatible agent](https://agentclientprotocol.com/overview/agents) (e.g., OpenCode, Qwen Code, Kiro) |
|
|
15
|
+
|
|
16
|
+
## Step 2: Install and Configure the Agent
|
|
17
|
+
|
|
18
|
+
Follow the setup guide for your chosen agent:
|
|
19
|
+
|
|
20
|
+
- [Claude Code Setup](/agent-setup/claude-code)
|
|
21
|
+
- [Codex Setup](/agent-setup/codex)
|
|
22
|
+
- [Gemini CLI Setup](/agent-setup/gemini-cli)
|
|
23
|
+
- [Custom Agents](/agent-setup/custom-agents)
|
|
24
|
+
|
|
25
|
+
Each guide covers installation, path configuration, and authentication.
|
|
26
|
+
|
|
27
|
+
## Step 3: Start Chatting
|
|
28
|
+
|
|
29
|
+
1. Click the **robot icon** in the left ribbon, or
|
|
30
|
+
2. Open the command palette (`Cmd/Ctrl + P`) and search for **"Open chat view"**
|
|
31
|
+
|
|
32
|
+
The chat panel opens in the right sidebar. Type a message and press Enter!
|
|
33
|
+
|
|
34
|
+
## What's Next?
|
|
35
|
+
|
|
36
|
+
- Learn about [Note Mentions](/usage/mentions) to reference your notes in conversations
|
|
37
|
+
- Explore [Slash Commands](/usage/slash-commands) for quick actions
|
|
38
|
+
- Set up additional agents in [Agent Setup](/agent-setup/)
|