Skip to content

Add Nscale as a new AI provider#5085

Closed
wombatepiclandingstudio wants to merge 156 commits into
Kilo-Org:mainfrom
wombatepiclandingstudio:add-nscale-provider
Closed

Add Nscale as a new AI provider#5085
wombatepiclandingstudio wants to merge 156 commits into
Kilo-Org:mainfrom
wombatepiclandingstudio:add-nscale-provider

Conversation

@wombatepiclandingstudio
Copy link
Copy Markdown

Nscale is a European headquartered global hyperscaler engineered for sovereign-grade AI infrastructure, delivering compute to the generative AI market at scale. Through its fully vertically integrated suite of AI solutions and GW+ greenfield data centres across Europe and North America, Nscale enables customers to run efficient and scalable AI training, fine-tuning, and inferencing workloads.

  • Added Nscale provider with OpenAI-compatible API
  • Base URL: https://inference.api.nscale.com/v1
  • Default model: meta-llama/Llama-3.3-70B-Instruct
  • Supports dynamic model fetching
  • Full UI integration with settings panel
  • Translations for 22 locales
  • Comprehensive unit tests (10 passing)

Website: https://www.nscale.com/

Context

Although it's OpenAI compatible, I wanted to add it to the list to give the company some visibility. I'm not afiliated in any way to them, but I think it's important to have models running on 100% green energy at hand.

Implementation

Just followed the patterns for similar providers. Kilo Code did all the heavy lifting:

Nscale Provider Implementation Complete ✅
Successfully added Nscale as a new AI provider to the Kilo Code VS Code extension. Three bugs were discovered and fixed during testing.

Files Created
packages/types/src/providers/nscale.ts - Type definitions with model info
src/api/providers/nscale.ts - NscaleHandler implementation
src/api/providers/fetchers/nscale.ts - Model fetcher
src/api/providers/tests/nscale.spec.ts - Unit tests (10 passing)
webview-ui/src/components/settings/providers/Nscale.tsx - Settings UI component
.changeset/add-nscale-provider.md - Changeset for release
Files Modified
packages/types/src/providers/index.ts - Export nscale types
packages/types/src/provider-settings.ts - Add nscale schema and config
src/api/providers/index.ts - Export NscaleHandler
src/api/index.ts - Add nscale case to buildApiHandler()
src/api/providers/fetchers/modelCache.ts - Add nscale model fetching
webview-ui/src/components/settings/providers/index.ts - Export Nscale component
webview-ui/src/components/settings/ApiOptions.tsx - Add Nscale to provider config
webview-ui/src/components/settings/constants.ts - Bug fix #1: Add to PROVIDERS array
src/core/webview/webviewMessageHandler.ts - Bug fix #2: Add to candidates array
22 locale files - Add translation keys
Bugs Fixed During Testing
Provider not appearing in dropdown - Missing from PROVIDERS array
Model selector not appearing - Missing from candidates array for model fetching
Chat not working - Empty nscaleModels object causing token calculation failures
Provider Configuration
Base URL: https://inference.api.nscale.com/v1
Authentication: Bearer token
Default Model: meta-llama/Llama-3.3-70B-Instruct (131K context, 8K max output)
API Type: OpenAI-compatible
Dynamic Models: Yes (fetched from /v1/models)

Screenshots

image

How to Test

Configure it as any other provider 👍 you'll need an API key though

Get in Touch

https://www.linkedin.com/in/javiercollrodriguez/

Nscale is a European headquartered global hyperscaler engineered for sovereign-grade AI infrastructure, delivering compute to the generative AI market at scale. Through its fully vertically integrated suite of AI solutions and GW+ greenfield data centres across Europe and North America, Nscale enables customers to run efficient and scalable AI training, fine-tuning, and inferencing workloads.

- Added Nscale provider with OpenAI-compatible API
- Base URL: https://inference.api.nscale.com/v1
- Default model: meta-llama/Llama-3.3-70B-Instruct
- Supports dynamic model fetching
- Full UI integration with settings panel
- Translations for 22 locales
- Comprehensive unit tests (10 passing)

Website: https://www.nscale.com/
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Jan 15, 2026

🦋 Changeset detected

Latest commit: 0fc86ce

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
kilo-code Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

github-actions Bot and others added 28 commits January 16, 2026 18:03
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
* feat: warn users when too many MCP tools are enabled

- Add WarningRow component for displaying generic warnings with icon, title, message, and optional docs link
- Add TooManyToolsWarning component that shows when users have more than 40 MCP tools enabled
- Add MAX_MCP_TOOLS_THRESHOLD constant (40)
- Add i18n translations for the warning message
- Integrate warning into ChatView to display after task header
- Add comprehensive tests for both components

Closes ROO-542

* Moves constant to the right place

* Move it to the backend

* i18n

* Add actionlink that takes you to MCP settings in this case

* Add to MCP settings too

* Bump max tools up to 60 since github itself has 50+

* DRY

* Fix test

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
…812)

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
* fix: update broken pricing link to /models page

* Update apps/web-roo-code/src/app/pricing/page.tsx

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
copy: update /slack page messaging

- Update trial CTA to 'Start a free 14 day Team trial'
- Replace 'humans' with 'your team' in value props subtitle
- Shorten value prop titles for consistent one-line display
- Improve Thread-aware and Open to all descriptions
hannesrudolph and others added 27 commits January 30, 2026 16:15
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
…(#11131)

Tool IDs from providers like Gemini/OpenRouter contain special characters
(e.g., 'functions.read_file:0') that are sanitized when saving tool_use
blocks to API history. However, tool_result blocks were using the original
unsanitized IDs, causing ToolResultIdMismatchError.

This fix ensures tool_result blocks use sanitizeToolUseId() to match the
sanitized tool_use IDs in conversation history.

Fixes EXT-711
…1102)

Co-authored-by: Sannidhya <sann@Sannidhyas-MacBook-Pro.local>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
…gemini-embedding-001 (#11038)

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
…11168)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
…port (#11157)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.