Files
JoneSSLandGitHub 07c1c56b4f Add Azure / Foundry launch support to VS Code extension (#1365)
* Enhance OpenClaude VS Code extension with Microsoft Foundry / Azure OpenAI support. Added configuration options for Azure API key, endpoint, and deployment settings. Updated README and documentation for new features, including a setup wizard for Azure integration. Improved terminal launch environment handling for Azure compatibility.

* Fix packaged Windows helper runtime references

* Use installed CLI from Windows helper aliases

* Scope Windows helper env overrides to invocation

* Align Windows alias docs with shipped helper
2026-06-09 06:27:18 +08:00

87 lines
3.7 KiB
Markdown

# OpenClaude VS Code Extension
A practical VS Code companion for OpenClaude with a project-aware **Control Center**, predictable terminal launch behavior, and quick access to useful OpenClaude workflows.
## Features
- **Real Control Center status** in the Activity Bar:
- whether the configured `openclaude` command is installed
- the launch command being used
- whether the launch shim injects `CLAUDE_CODE_USE_OPENAI=1`
- the current workspace folder
- the launch cwd that will be used for terminal sessions
- whether `.openclaude-profile.json` exists in the current workspace root
- a conservative provider summary derived from the workspace profile or known environment flags
- **Project-aware launch behavior**:
- `Launch OpenClaude` launches from the active editor's workspace when possible
- falls back to the first workspace folder when needed
- avoids launching from an arbitrary default cwd when a project is open
- **Practical sidebar actions**:
- Launch OpenClaude
- Launch in Workspace Root
- Open Workspace Profile
- Open Repository
- Open Setup Guide
- Open Command Palette
- **Built-in dark theme**: `OpenClaude Terminal Black`
- **Microsoft Foundry / Azure OpenAI**: optional wizard and settings store endpoint, API version, deployment name, and API key (Secret Storage); launch injects `OPENAI_*` and `AZURE_OPENAI_API_VERSION` into the OpenClaude terminal (see `docs/advanced-setup.md` on the repo).
## Requirements
- VS Code `1.95+`
- `openclaude` available in your terminal PATH (`npm install -g @gitlawb/openclaude@latest`)
## Commands
- `OpenClaude: Open Control Center`
- `OpenClaude: Launch in Terminal`
- `OpenClaude: Launch in Workspace Root`
- `OpenClaude: Open Repository`
- `OpenClaude: Open Setup Guide`
- `OpenClaude: Open Workspace Profile`
- `OpenClaude: New Chat` / `OpenClaude: Open Chat Panel` / `OpenClaude: Resume Session` / `OpenClaude: Abort Generation`
- `OpenClaude: Configure Azure / Foundry Chat (wizard)`
- `OpenClaude: Set Azure / Foundry API Key (Secret Storage)`
- `OpenClaude: Clear Azure / Foundry API Key`
- `OpenClaude: Open Azure / Foundry Settings`
## Microsoft Foundry / Azure OpenAI (terminal chat)
1. Command Palette → **OpenClaude: Configure Azure / Foundry Chat (wizard)** and enter endpoint, API version, deployment name, and API key; or set `openclaude.azure.*` in Settings and use **OpenClaude: Set Azure / Foundry API Key**.
2. Enable **OpenClaude: Azure: Enabled** (the wizard turns this on).
3. **OpenClaude: Launch in Terminal** — the extension merges env vars the OpenAI shim expects (`CLAUDE_CODE_USE_OPENAI`, `OPENAI_BASE_URL`, `OPENAI_API_KEY`, `OPENAI_MODEL`, `AZURE_OPENAI_API_VERSION`, and `OPENAI_AZURE_STYLE` when forced).
If you use `.openclaude-profile.json` for the same workspace, leave Azure injection off to avoid conflicting provider configuration.
## Settings
- `openclaude.launchCommand` (default: `openclaude`)
- `openclaude.terminalName` (default: `OpenClaude`)
- `openclaude.useOpenAIShim` (default: `false`)
- `openclaude.azure.*` — Foundry / Azure OpenAI terminal injection (see Settings UI)
- `openclaude.permissionMode` — chat permission mode
`openclaude.useOpenAIShim` only injects `CLAUDE_CODE_USE_OPENAI=1` when Azure injection did not already set it. It does not configure endpoints or keys by itself.
## Notes on Status Detection
- Provider status prefers the real workspace `.openclaude-profile.json` file when present.
- If no saved profile exists, the extension falls back to known environment flags available to the VS Code extension host.
- If the source of truth is unclear, the extension shows `unknown` instead of guessing.
## Development
From this folder:
```bash
npm run test
npm run lint
```
To package (optional):
```bash
npm run package
```