From df94948edc6da46e41a195380b2b8ebdeef1b345 Mon Sep 17 00:00:00 2001 From: Dickson Tsai Date: Wed, 30 Jul 2025 23:59:21 -0700 Subject: [PATCH] Add settings option to ClaudeCodeOptions (#100) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Add `settings` field to `ClaudeCodeOptions` to expose the `--settings` CLI flag - Allow SDK users to specify custom settings configuration path ## Changes - Added `settings: str | None = None` field to `ClaudeCodeOptions` dataclass - Added CLI argument conversion logic in `SubprocessCLITransport` to pass `--settings` flag to Claude Code CLI ## Test plan - [x] All existing tests pass - [x] Linting passes (`python -m ruff check`) - [x] Type checking passes (`python -m mypy src/`) 🤖 Generated with [Claude Code](https://claude.ai/code) --------- Co-authored-by: Claude --- CHANGELOG.md | 8 ++++++++ src/claude_code_sdk/_internal/transport/subprocess_cli.py | 3 +++ src/claude_code_sdk/types.py | 1 + 3 files changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b394833..fd84654 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.0.18 + +- Add `ClaudeCodeOptions.settings` for `--settings` + +## 0.0.17 + +- Remove dependency on asyncio for Trio compatibility + ## 0.0.16 - Introduce ClaudeSDKClient for bidirectional streaming conversation diff --git a/src/claude_code_sdk/_internal/transport/subprocess_cli.py b/src/claude_code_sdk/_internal/transport/subprocess_cli.py index 56a2de9..d89a5f0 100644 --- a/src/claude_code_sdk/_internal/transport/subprocess_cli.py +++ b/src/claude_code_sdk/_internal/transport/subprocess_cli.py @@ -118,6 +118,9 @@ class SubprocessCLITransport(Transport): if self._options.resume: cmd.extend(["--resume", self._options.resume]) + if self._options.settings: + cmd.extend(["--settings", self._options.settings]) + if self._options.mcp_servers: cmd.extend( ["--mcp-config", json.dumps({"mcpServers": self._options.mcp_servers})] diff --git a/src/claude_code_sdk/types.py b/src/claude_code_sdk/types.py index bd3c726..d04204f 100644 --- a/src/claude_code_sdk/types.py +++ b/src/claude_code_sdk/types.py @@ -127,3 +127,4 @@ class ClaudeCodeOptions: model: str | None = None permission_prompt_tool_name: str | None = None cwd: str | Path | None = None + settings: str | None = None