Is "Unify Chat Provider" on VS Code Marketplace Safe to Install?
# Unify Chat Provider A VS Code extension that allows you to integrate multiple LLM API providers into VS Code's Language Model Chat Provider API. Configure any number of API endpoints and use them seamlessly with GitHub Copilot Chat. ## Supported API Formats | Type | Description | Example Providers | | ----------- | ----------------------------- | ----------------------------------------------------------------------------------------- | | `anthropic` | Anthropic Messages API format | Anthropic, AWS Bedrock, Google Vertex AI, OpenRouter, and other Anthropic-compatible APIs | More API formats will be added in future releases. ## Features - Register multiple LLM API endpoints as language model providers - Support for different API formats - Multiple providers and models per provider - Streaming responses with proper cancellation handling - Tool calling support - Token counting estimation - Interactive commands to add and manage providers ## Configuration Add providers to your workspace settings (`.vscode/settings.json`) using the `unifyChatProvider.endpoints` array: ```json { "unifyChatProvider.endpoints": [ { "type": "anthropic", "name": "Anthropic", "baseUrl": "https://api.anthropic.com", "apiKey": "your-api-key", "models": ["claude-sonnet-4-20250514", "claude-opus-4-20250514"] }, { "type": "anthropic", "name": "OpenRouter", "baseUrl": "https://openrouter.ai/api", "apiKey": "your-openrouter-key", "models": ["anthropic/claude-sonnet-4", "anthropic/claude-opus-4"] } ] } ``` ### Verbose Logging By default only errors and failed requests are logged. Set `unifyChatProvider.verbose` to `true` to log full request and response details: ```json { "unifyChatProvider.verbose": true } ``` ### Model Configuration Models can be specified as simple strings or as objects with additional configuration: ```json { "unifyChatProvider.endpoints": [ { "type": "anthropic", "name": "Custom Provider", "baseUrl": "https://api.example.com", "apiKey": "your-api-key", "models": [ { "id": "model-a", "name": "Model A (Display Name)", "maxInputTokens": 200000, "maxOutputTokens": 8192 }, "model-b" ] } ] } ``` ### Provider Configuration Properties | Property | Required | Description | | --------- | -------- | ----------------------------- | | `type` | Yes | API format type | | `name` | Yes | Display name for the provider | | `baseUrl` | Yes | API base URL | | `apiKey` | No | API key for authentication | | `models` | No | List of available models | ## Commands - **Unify Chat Provider: Add Provider** - Interactive wizard to add a new provider - **Unify Chat Provider: Remove Provider** - Remove a configured provider - **Unify Chat Provider: Manage Providers** - Open settings to manage providers ## API Compatibility ### Anthropic Format (`type: "anthropic"`) Compatible with APIs that follow the Anthropic Messages API format: - **Endpoint**: POST to ` /v1/messages` - **Authentication**: `x-api-key` header - **API Version**: `anthropic-version: 2023-06-01` - **Request format**: Anthropic Messages API - **Response format**: Server-Sent Events (SSE) streaming This includes: - Anthropic's official API - AWS Bedrock (with Anthropic gateway) - Google Vertex AI (with Anthropic gateway) - OpenRouter - Other Anthropic-compatible proxies and gateways ## Development - Build: `npm run compile` - Watch: `npm run watch` ## License MIT
Risk Assessment
Analyzed168 security findings detected across all analyzers
VS Code extension analyzed via package manifest and static code analysis
Severity Breakdown
Finding Categories
YARA Rules Matched
9 rules(39 hits)About This Extension
Detailed Findings
42 totalYARA Rule Matches
9 rulesIndicators of Compromise
Network indicators, suspicious strings, and potential IoCs extracted during analysis
All Indicators · 125
detected Domain: obj.id XIOC detected Domain: obj.id
extracted_from_files
detected Domain: types.js.map XIOC detected Domain: types.js.map
extracted_from_files
detected URL: https://github.com/smallmain/vscode-unify-chat-provider.git XIOC detected URL: https://github.com/smallmain/vscode-unify-chat-provider.git
extracted_from_files
detected URL: https://github.com/smallmain/vscode-unify-chat-provider/issues XIOC detected URL: https://github.com/smallmain/vscode-unify-chat-provider/issues
extracted_from_files
detected URL: https://github.com/smallmain/vscode-unify-chat-provider#readme XIOC detected URL: https://github.com/smallmain/vscode-unify-chat-provider#readme
extracted_from_files
detected URL: https://docs.anthropic.com/en/docs/build-with-claude/tool-use/memory-tool XIOC detected URL: https://docs.anthropic.com/en/docs/build-with-claude/tool-use/memory-tool
extracted_from_files
detected URL: https://docs.anthropic.com/en/docs/build-with-claude/tool-use/web-search-tool#citations XIOC detected URL: https://docs.anthropic.com/en/docs/build-with-claude/tool-use/web-search-tool#citations
extracted_from_files
detected URL: https://api.example.com', XIOC detected URL: https://api.example.com',
extracted_from_files
detected URL: https://api.anthropic.com). XIOC detected URL: https://api.anthropic.com).
extracted_from_files
detected URL: https://api.anthropic.com XIOC detected URL: https://api.anthropic.com
extracted_from_files
detected URL: https://openrouter.ai/api XIOC detected URL: https://openrouter.ai/api
extracted_from_files
detected Domain: readme.md XIOC detected Domain: readme.md
extracted_from_files
detected URL: http://schemas.openxmlformats.org/package/2006/content-types XIOC detected URL: http://schemas.openxmlformats.org/package/2006/content-types
extracted_from_files
detected URL: http://www.w3.org/1999/02/22-rdf-syntax-ns# XIOC detected URL: http://www.w3.org/1999/02/22-rdf-syntax-ns#
extracted_from_files
detected URL: http://ns.adobe.com/exif/1.0/ XIOC detected URL: http://ns.adobe.com/exif/1.0/
extracted_from_files
detected URL: https://api.anthropic.com', XIOC detected URL: https://api.anthropic.com',
extracted_from_files
detected URL: https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking XIOC detected URL: https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking
extracted_from_files
detected URL: https://docs.anthropic.com/en/docs/build-with-claude/tool-use/web-search-tool XIOC detected URL: https://docs.anthropic.com/en/docs/build-with-claude/tool-use/web-search-tool
extracted_from_files
detected Domain: url.js.map XIOC detected Domain: url.js.map
extracted_from_files
detected Domain: utils.js.map XIOC detected Domain: utils.js.map
extracted_from_files
detected Domain: well-known-models.js.map XIOC detected Domain: well-known-models.js.map
extracted_from_files
detected Domain: github.com XIOC detected Domain: github.com
extracted_from_files
detected Domain: openrouter.ai XIOC detected Domain: openrouter.ai
extracted_from_files
detected Domain: schemas.microsoft.com XIOC detected Domain: schemas.microsoft.com
extracted_from_files
detected Domain: microsoft.visualstudio.services.links.support XIOC detected Domain: microsoft.visualstudio.services.links.support
extracted_from_files
detected Domain: m.stream XIOC detected Domain: m.stream
extracted_from_files
detected Domain: original.stream XIOC detected Domain: original.stream
extracted_from_files
detected URL: http://schemas.microsoft.com/developer/vsx-schema/2011 XIOC detected URL: http://schemas.microsoft.com/developer/vsx-schema/2011
extracted_from_files
detected URL: https://api.example.com XIOC detected URL: https://api.example.com
extracted_from_files
detected IP: :: XIOC detected IP: ::
extracted_from_files
detected Domain: item.model.id XIOC detected Domain: item.model.id
extracted_from_files
detected Domain: reader.read XIOC detected Domain: reader.read
extracted_from_files
detected Domain: chatprovider.js.map XIOC detected Domain: chatprovider.js.map
extracted_from_files
detected Domain: service.js.map XIOC detected Domain: service.js.map
extracted_from_files
detected Domain: component.js.map XIOC detected Domain: component.js.map
extracted_from_files
detected Domain: api.example.com XIOC detected Domain: api.example.com
extracted_from_files
detected Domain: draft.family XIOC detected Domain: draft.family
extracted_from_files
detected Domain: draft.stream XIOC detected Domain: draft.stream
extracted_from_files
detected Domain: m.family XIOC detected Domain: m.family
extracted_from_files
detected Domain: docs.anthropic.com XIOC detected Domain: docs.anthropic.com
extracted_from_files
detected Domain: features.js.map XIOC detected Domain: features.js.map
extracted_from_files
detected Domain: channel.show XIOC detected Domain: channel.show
extracted_from_files
detected Domain: ch.info XIOC detected Domain: ch.info
extracted_from_files
detected Domain: logger.js.map XIOC detected Domain: logger.js.map
extracted_from_files
detected Domain: modelconfig.id XIOC detected Domain: modelconfig.id
extracted_from_files
detected Domain: progress.report XIOC detected Domain: progress.report
extracted_from_files
detected Domain: vscode.configurationtarget.global XIOC detected Domain: vscode.configurationtarget.global
extracted_from_files
detected Domain: store.js.map XIOC detected Domain: store.js.map
extracted_from_files
detected Domain: obj.family XIOC detected Domain: obj.family
extracted_from_files
detected Domain: obj.stream XIOC detected Domain: obj.stream
extracted_from_files
detected Domain: config-store.js.map XIOC detected Domain: config-store.js.map
extracted_from_files
detected Domain: extension.js.map XIOC detected Domain: extension.js.map
extracted_from_files
detected Domain: platform.claude.com XIOC detected Domain: platform.claude.com
extracted_from_files
detected Domain: ui.js.map XIOC detected Domain: ui.js.map
extracted_from_files
detected Domain: data.name XIOC detected Domain: data.name
extracted_from_files
detected Domain: validation.js.map XIOC detected Domain: validation.js.map
extracted_from_files
detected Domain: defaults.js.map XIOC detected Domain: defaults.js.map
extracted_from_files
detected Domain: ondidchange.fire XIOC detected Domain: ondidchange.fire
extracted_from_files
detected Domain: options.existingmodels.map XIOC detected Domain: options.existingmodels.map
extracted_from_files
detected Domain: b.stream XIOC detected Domain: b.stream
extracted_from_files
detected Domain: a.stream XIOC detected Domain: a.stream
extracted_from_files
detected Domain: a.id XIOC detected Domain: a.id
extracted_from_files
detected Domain: b.id XIOC detected Domain: b.id
extracted_from_files
detected Domain: a.name XIOC detected Domain: a.name
extracted_from_files
detected Domain: b.name XIOC detected Domain: b.name
extracted_from_files
detected Domain: state.js.map XIOC detected Domain: state.js.map
extracted_from_files
detected Domain: qp.show XIOC detected Domain: qp.show
extracted_from_files
detected Domain: model.name XIOC detected Domain: model.name
extracted_from_files
detected Domain: draft.id XIOC detected Domain: draft.id
extracted_from_files
detected Domain: provider.models.map XIOC detected Domain: provider.models.map
extracted_from_files
detected Domain: provider.name XIOC detected Domain: provider.name
extracted_from_files
detected Domain: draft.models.map XIOC detected Domain: draft.models.map
extracted_from_files
detected Domain: models.map XIOC detected Domain: models.map
extracted_from_files
detected Domain: original.name XIOC detected Domain: original.name
extracted_from_files
detected Domain: m.name XIOC detected Domain: m.name
extracted_from_files
detected Domain: m.id XIOC detected Domain: m.id
extracted_from_files
detected Domain: existing.name XIOC detected Domain: existing.name
extracted_from_files
detected Domain: options.map XIOC detected Domain: options.map
extracted_from_files
detected Domain: draft.name XIOC detected Domain: draft.name
extracted_from_files
detected Domain: api.anthropic.com XIOC detected Domain: api.anthropic.com
extracted_from_files
detected Domain: selectedmodel.id XIOC detected Domain: selectedmodel.id
extracted_from_files
detected Domain: anthropic.js.map XIOC detected Domain: anthropic.js.map
extracted_from_files
detected Domain: index.js.map XIOC detected Domain: index.js.map
extracted_from_files
detected Domain: interface.js.map XIOC detected Domain: interface.js.map
extracted_from_files
detected Domain: providertypes.js.map XIOC detected Domain: providertypes.js.map
extracted_from_files
detected Domain: registry.js.map XIOC detected Domain: registry.js.map
extracted_from_files
detected Domain: endpoints.map XIOC detected Domain: endpoints.map
extracted_from_files
detected Domain: p.name XIOC detected Domain: p.name
extracted_from_files
detected Domain: currenttoolcall.name XIOC detected Domain: currenttoolcall.name
extracted_from_files
detected Domain: currentservertooluse.id XIOC detected Domain: currentservertooluse.id
extracted_from_files
detected Domain: currentservertooluse.name XIOC detected Domain: currentservertooluse.name
extracted_from_files
detected Domain: original.id XIOC detected Domain: original.id
extracted_from_files
detected Domain: obj.name XIOC detected Domain: obj.name
extracted_from_files
detected Domain: tools.map XIOC detected Domain: tools.map
extracted_from_files
detected Domain: parsed.search XIOC detected Domain: parsed.search
extracted_from_files
detected Domain: toolblock.id XIOC detected Domain: toolblock.id
extracted_from_files
detected Domain: toolblock.name XIOC detected Domain: toolblock.name
extracted_from_files
detected Domain: redactedblock.data XIOC detected Domain: redactedblock.data
extracted_from_files
detected Domain: servertoolblock.id XIOC detected Domain: servertoolblock.id
extracted_from_files
detected Domain: servertoolblock.name XIOC detected Domain: servertoolblock.name
extracted_from_files
detected Domain: currenttoolcall.id XIOC detected Domain: currenttoolcall.id
extracted_from_files
detected Domain: requestbody.tools XIOC detected Domain: requestbody.tools
extracted_from_files
detected Domain: model.stream XIOC detected Domain: model.stream
extracted_from_files
detected Domain: requestbody.stream XIOC detected Domain: requestbody.stream
extracted_from_files
detected Domain: requestbody.top XIOC detected Domain: requestbody.top
extracted_from_files
detected Domain: this.config.name XIOC detected Domain: this.config.name
extracted_from_files
detected Domain: block.id XIOC detected Domain: block.id
extracted_from_files
detected Domain: block.name XIOC detected Domain: block.name
extracted_from_files
detected Domain: part.name XIOC detected Domain: part.name
extracted_from_files
detected Domain: toolresultblock.is XIOC detected Domain: toolresultblock.is
extracted_from_files
detected Domain: blocks.at XIOC detected Domain: blocks.at
extracted_from_files
detected Domain: model.id XIOC detected Domain: model.id
extracted_from_files
detected Domain: model.family XIOC detected Domain: model.family
extracted_from_files
detected Domain: tool.name XIOC detected Domain: tool.name
extracted_from_files
detected Domain: options.tools XIOC detected Domain: options.tools
extracted_from_files
detected Domain: schemas.openxmlformats.org XIOC detected Domain: schemas.openxmlformats.org
extracted_from_files
detected Domain: www.w3.org XIOC detected Domain: www.w3.org
extracted_from_files
detected Domain: ns.adobe.com XIOC detected Domain: ns.adobe.com
extracted_from_files
detected Domain: 8.ht XIOC detected Domain: 8.ht
extracted_from_files
detected Domain: ɔ.sb XIOC detected Domain: ɔ.sb
extracted_from_files
detected Domain: object.prototype.hasownproperty.call XIOC detected Domain: object.prototype.hasownproperty.call
extracted_from_files
detected Domain: part.data XIOC detected Domain: part.data
extracted_from_files
detected Domain: data.data XIOC detected Domain: data.data
extracted_from_files
detected Domain: client.js.map XIOC detected Domain: client.js.map
extracted_from_files
detected URL: http://schemas.microsoft.com/developer/vsx-schema-design/2011 XIOC detected URL: http://schemas.microsoft.com/developer/vsx-schema-design/2011
extracted_from_files
Security Analysis Summary
Security Analysis Overview
Unify Chat Provider is a Visual Studio Code Marketplace extension published by SmallMain. Version 1.0.0 has been analyzed by the Risky Plugins security platform, receiving a risk score of 56.05/100 (MEDIUM risk) based on 168 security findings.
Risk Assessment
This extension presents moderate security risk. Several findings were detected that may warrant attention. Users should carefully review the permissions and findings before installation.
Findings Breakdown
- High: 39 finding(s)
- Medium: 129 finding(s)
What Was Analyzed
The security assessment covers multiple analysis categories:
- Malware Detection: YARA rule matching against 2,400+ malware signatures
- Secret Detection: Scanning for exposed API keys, tokens, and credentials
- Static Analysis: Code-level security analysis for common vulnerability patterns
- Network Analysis: Detection of suspicious network communications and endpoints
- Obfuscation Detection: Identification of code obfuscation techniques
Developer Information
Unify Chat Provider is published by SmallMain on the Visual Studio Code Marketplace marketplace. The extension has approximately 1 users.
Recommendation
Exercise caution with this extension. Review the detailed findings and ensure the requested permissions align with the extension's stated functionality before installation.
Source Code Not Available
Source code is not available for this version of the extension.
Frequently Asked Questions
Similar Extensions
Related extensions from the same publisher or marketplace