Skip to content

Add Requesty provider#1112

Open
Thibaultjaigu wants to merge 2 commits into
RunMaestro:mainfrom
Thibaultjaigu:add-requesty-provider
Open

Add Requesty provider#1112
Thibaultjaigu wants to merge 2 commits into
RunMaestro:mainfrom
Thibaultjaigu:add-requesty-provider

Conversation

@Thibaultjaigu

@Thibaultjaigu Thibaultjaigu commented Jun 20, 2026

Copy link
Copy Markdown

Add Requesty provider

This adds Requesty as a built-in LLM provider, alongside the existing OpenRouter / Anthropic / Ollama options.

Requesty is an OpenAI-compatible model gateway that uses the same provider/model identifier format as OpenRouter, so it is implemented by mirroring the existing OpenRouter provider (only the base URL and env/key differ).

Changes

  • src/renderer/types/index.ts — extend LLMProvider union with 'requesty'.
  • src/renderer/components/Settings/SettingsModal.tsx — add the Requesty option and a requesty branch in testLLMConnection() that POSTs to https://router.requesty.ai/v1/chat/completions with the user's Requesty key (default model openai/gpt-4o-mini), mirroring the OpenRouter branch.
  • src/shared/settingsMetadata.ts — include requesty in the llmProvider description.
  • docs/configuration.md — document the built-in LLM providers including Requesty (key at https://app.requesty.ai/api-keys, models at https://app.requesty.ai/router/list).

Default provider is left as openrouter (this adds Requesty, doesn't replace anything).

Testing

  • npm run lint (tsc typecheck across the three tsconfigs) clean; defaults + SettingsModal test suites pass (148/148).
  • Live endpoint: POST https://router.requesty.ai/v1/chat/completions with model: openai/gpt-4o-mini -> HTTP 200, real completion.

Disclosure

I work at Requesty. This mirrors the existing OpenRouter provider as closely as possible. Happy to adjust naming/placement or close it if it's not a fit.

Summary by CodeRabbit

  • New Features
    • Added Requesty as an available LLM provider option, including “Test Connection” support.
  • Documentation
    • Expanded the configuration documentation with a Built-in LLM Provider section, setup steps via Settings → LLM, supported provider details, and notes on local API key storage.

Requesty (https://requesty.ai) is an OpenAI-compatible model gateway that uses
the same provider/model identifier format as OpenRouter, so it is added by
mirroring the existing OpenRouter provider (only base URL + key differ).

- LLMProvider union: add 'requesty'
- SettingsModal: requesty option + connection test against
  https://router.requesty.ai/v1 with the user's Requesty key
- settingsMetadata + docs/configuration: document Requesty
@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 4848b87c-1446-4dc6-9490-98369c64f41d

📥 Commits

Reviewing files that changed from the base of the PR and between adb6225 and 998d9c8.

📒 Files selected for processing (1)
  • src/shared/settingsMetadata.ts

📝 Walkthrough

Walkthrough

Adds Requesty as a supported LLM provider by extending the LLMProvider union type, adding a test-connection branch in SettingsModal that POSTs to the Requesty chat completions endpoint, inserting a dropdown option, and adding a new documentation section covering all built-in LLM providers.

Changes

Requesty LLM Provider Support

Layer / File(s) Summary
Type extension, test-connection logic, and dropdown option
src/renderer/types/index.ts, src/shared/settingsMetadata.ts, src/renderer/components/Settings/SettingsModal.tsx
LLMProvider union gains 'requesty'; settingsMetadata description string is reflowed; testLLMConnection adds a Requesty branch that validates the API key, POSTs to https://router.requesty.ai/v1/chat/completions with modelSlug (defaulting to openai/gpt-4o-mini), checks choices[0].message.content, and sets provider-specific UI text; the provider <select> gains a Requesty option.
Built-in LLM Provider documentation
docs/configuration.md
New "Built-in LLM Provider" section documents the Settings → LLM fields (provider, model slug, API key, Test Connection), a comparison table for OpenRouter, Requesty, Anthropic, and Ollama, slug/Bearer-key details, and local storage of API keys.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐇 A new provider hops into the mix,
Requesty joins the LLM tricks!
A Bearer key, a slug, a POST away,
choices[0] proves the connection's okay.
The docs now gleam with a fresh new row —
One more provider, ready to go! 🌟

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title 'Add Requesty provider' is directly related to the main objective of adding Requesty as a new LLM provider, which is the primary change across all modified files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@greptile-apps

greptile-apps Bot commented Jun 20, 2026

Copy link
Copy Markdown

Greptile Summary

This PR adds Requesty as a fourth built-in LLM provider by mirroring the existing OpenRouter implementation (same OpenAI-compatible API, different base URL and key). The changes are minimal and self-contained: a new union member in LLMProvider, a new branch in testLLMConnection, a dropdown option, and documentation.

  • SettingsModal.tsx: New requesty branch in testLLMConnection POSTs to https://router.requesty.ai/v1/chat/completions with the user's API key; a new <option> is added to the provider dropdown.
  • types/index.ts + settingsMetadata.ts: LLMProvider union and the description string are extended to include 'requesty'.
  • docs/configuration.md: A new "Built-in LLM Provider" section documents all four providers in a comparison table.

Confidence Score: 4/5

Safe to merge; changes are additive and isolated to the Settings UI and documentation.

The Requesty integration closely follows the existing OpenRouter pattern and only affects the settings test-connection flow. The one rough edge is the model slug placeholder showing anthropic/claude-3.5-sonnet instead of openai/gpt-4o-mini when Requesty is selected, which could confuse users about the correct model format.

src/renderer/components/Settings/SettingsModal.tsx — the model slug placeholder branch should be updated for the Requesty provider.

Important Files Changed

Filename Overview
src/renderer/components/Settings/SettingsModal.tsx Adds Requesty branch in testLLMConnection mirroring OpenRouter. Model slug placeholder not updated for Requesty (still shows anthropic/claude-3.5-sonnet instead of openai/gpt-4o-mini).
src/renderer/types/index.ts Extends LLMProvider union type with 'requesty'. Straightforward, correct change.
src/shared/settingsMetadata.ts Adds 'requesty' to llmProvider description string. No logic change.
docs/configuration.md Documents the built-in LLM providers table including Requesty with correct base URL, API style, and example slug.

Sequence Diagram

%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
    participant User
    participant SettingsModal
    participant RequestyAPI as Requesty API (router.requesty.ai)

    User->>SettingsModal: Select Requesty provider
    User->>SettingsModal: Enter API key + model slug
    User->>SettingsModal: Click Test Connection
    SettingsModal->>RequestyAPI: POST /v1/chat/completions (Bearer token, model, testPrompt)
    RequestyAPI-->>SettingsModal: 200 OK choices[0].message.content
    SettingsModal-->>User: Successfully connected to Requesty!
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
    participant User
    participant SettingsModal
    participant RequestyAPI as Requesty API (router.requesty.ai)

    User->>SettingsModal: Select Requesty provider
    User->>SettingsModal: Enter API key + model slug
    User->>SettingsModal: Click Test Connection
    SettingsModal->>RequestyAPI: POST /v1/chat/completions (Bearer token, model, testPrompt)
    RequestyAPI-->>SettingsModal: 200 OK choices[0].message.content
    SettingsModal-->>User: Successfully connected to Requesty!
Loading

Comments Outside Diff (1)

  1. src/renderer/components/Settings/SettingsModal.tsx, line 605-613 (link)

    P2 The model slug placeholder is anthropic/claude-3.5-sonnet for all non-Ollama providers, but the Requesty branch falls back to openai/gpt-4o-mini when no slug is entered. A user who leaves the field blank while on Requesty will see the placeholder hint anthropic/claude-3.5-sonnet, potentially try that model on Requesty, and get an unexpected error. The placeholder should reflect the correct default for each provider.

Reviews (1): Last reviewed commit: "feat: add Requesty LLM provider" | Re-trigger Greptile

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/shared/settingsMetadata.ts`:
- Around line 518-519: The description field in the settingsMetadata.ts file
lists outdated example LLM providers that don't match the actual allowed values
in the LLMProvider type. Update the description text to remove "openai" from the
example list and add "ollama" instead, ensuring the examples accurately reflect
the current allowed values of openrouter, requesty, anthropic, and ollama. This
will prevent users from being misled when configuring settings.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: a30c4fa8-97ae-445b-ae2e-17bbac272c8a

📥 Commits

Reviewing files that changed from the base of the PR and between 53a3fbc and adb6225.

📒 Files selected for processing (4)
  • docs/configuration.md
  • src/renderer/components/Settings/SettingsModal.tsx
  • src/renderer/types/index.ts
  • src/shared/settingsMetadata.ts

Comment thread src/shared/settingsMetadata.ts Outdated
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.

1 participant