claudeCode.useTerminal setting has no effect in v2.1.83 — setting is defined but never read

Resolved 💬 2 comments Opened Mar 25, 2026 by golaniy Closed Apr 23, 2026

Summary

The claudeCode.useTerminal setting is documented and present in the extension's package.json with a default of false, but setting it to true has no effect — the extension always opens the graphical webview panel regardless of the setting value.

Environment

  • Claude Code extension version: 2.1.83
  • Editor: Cursor (darwin-arm64)
  • OS: macOS

Steps to Reproduce

  1. Set "claudeCode.useTerminal": true in VS Code/Cursor user settings
  2. Reload the window
  3. Open Claude Code

Expected: Claude Code opens in terminal/CLI mode inside the integrated terminal

Actual: Claude Code opens in the graphical webview panel, same as when the setting is false

Root Cause (from source inspection)

In extension.js, the string useTerminal only appears in two places:

  1. A legacy settings migration block that copies values from the old claude-code namespace to claudeCode — it never acts on the value
  2. A banner's "configure" button that opens the settings UI to claudeCode.useTerminal

The setting is never read to make a terminal-vs-webview decision. There is no code path equivalent to if (config.get("useTerminal")) { createTerminal() } else { createWebviewPanel() }.

Workaround

Run claude directly in the integrated terminal to get CLI mode.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗