Skip to content

Commit 2d672d1

Browse files
committed
feat: add auto terminal provider detection
Add automatic terminal provider detection that tries snacks first, then falls back to native terminal silently. Update default config to use "auto" provider for better user experience. Change-Id: I1332f52ed466d0304faf7244d8d3e39d49dd4112 Signed-off-by: Thomas Kosiewski <[email protected]>
1 parent 09b231d commit 2d672d1

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ See [DEVELOPMENT.md](./DEVELOPMENT.md) for build instructions and development gu
199199
terminal = {
200200
split_side = "right",
201201
split_width_percentage = 0.3,
202-
provider = "snacks", -- or "native"
202+
provider = "auto", -- "auto" (default), "snacks", or "native"
203203
auto_close = true, -- Auto-close terminal after command completion
204204
},
205205

lua/claudecode/init.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ M.state = {
7474
---@alias ClaudeCode.TerminalOpts { \
7575
--- split_side?: "left"|"right", \
7676
--- split_width_percentage?: number, \
77-
--- provider?: "snacks"|"native", \
77+
--- provider?: "auto"|"snacks"|"native", \
7878
--- show_native_term_exit_tip?: boolean }
7979
---
8080
---@alias ClaudeCode.SetupOpts { \

lua/claudecode/terminal.lua

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ local claudecode_server_module = require("claudecode.server.init")
1818
local config = {
1919
split_side = "right",
2020
split_width_percentage = 0.30,
21-
provider = "snacks",
21+
provider = "auto",
2222
show_native_term_exit_tip = true,
2323
terminal_cmd = nil,
2424
auto_close = true,
@@ -48,7 +48,15 @@ end
4848
local function get_provider()
4949
local logger = require("claudecode.logger")
5050

51-
if config.provider == "snacks" then
51+
if config.provider == "auto" then
52+
-- Try snacks first, then fallback to native silently
53+
local snacks_provider = load_provider("snacks")
54+
if snacks_provider and snacks_provider.is_available() then
55+
logger.debug("terminal", "Auto-detected snacks terminal provider")
56+
return snacks_provider
57+
end
58+
-- Fall through to native provider
59+
elseif config.provider == "snacks" then
5260
local snacks_provider = load_provider("snacks")
5361
if snacks_provider and snacks_provider.is_available() then
5462
return snacks_provider

0 commit comments

Comments
 (0)