@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,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,4 @@
1
+ import DefaultTheme from "vitepress/theme";
2
+ import "./custom.css";
3
+
4
+ export default DefaultTheme;
@@ -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/)