Skip to content

feat: add poe provider#114

Open
y-cg wants to merge 1 commit into
jnsahaj:mainfrom
y-cg:poe-endpoint
Open

feat: add poe provider#114
y-cg wants to merge 1 commit into
jnsahaj:mainfrom
y-cg:poe-endpoint

Conversation

@y-cg

@y-cg y-cg commented Jan 16, 2026

Copy link
Copy Markdown

This PR add a new provider poe. Btw I am also interested in helping land #58

Summary by CodeRabbit

  • New Features

    • Added Poe as a new AI provider option, enabling users to select and configure Poe alongside existing providers with support for Claude Sonnet 4.5 as the default model.
  • Documentation

    • Updated provider documentation and feature list to include Poe.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitai Bot commented Jan 16, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This pull request adds support for the Poe AI provider to the codebase. The changes introduce Poe as a new provider type across the configuration and provider initialization systems, enabling it to be recognized, registered, and instantiated alongside existing providers.

Changes

Cohort / File(s) Summary
Documentation
README.md
Added Poe to the Features section and AI Providers reference table with its model and API key environment variable.
Provider Type Registration
src/config/cli.rs
Added Poe variant to the ProviderType enum and updated the FromStr implementation to parse the string "poe" as ProviderType::Poe.
Provider Registry
src/config/providers.rs
Registered Poe in the ALL_PROVIDERS array with id "poe", display name "Poe", default model "claude-sonnet-4.5", and env key "POE_API_KEY".
Provider Instantiation
src/provider/mod.rs
Extended the custom endpoint providers logic to handle ProviderType::Poe with endpoint https://api.poe.com/v1/, including corresponding environment key and adapter configuration.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested reviewers

  • jnsahaj

Poem

🐰 A rabbit hops through code so bright,
Adding Poe with all its might!
From config to the provider stack,
Claude models now have a new track!
Type-safe and ready, complete and keen,
Best new provider you've ever seen! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main change—adding Poe as a new provider—which aligns perfectly with the changes across all modified files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing touches
  • 📝 Generate docstrings


📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bd29015 and fb3a77b.

📒 Files selected for processing (4)
  • README.md
  • src/config/cli.rs
  • src/config/providers.rs
  • src/provider/mod.rs
🔇 Additional comments (4)
src/config/cli.rs (1)

49-49: LGTM!

The Poe variant is correctly added to the ProviderType enum and the FromStr implementation properly maps the lowercase string "poe" to the new variant, consistent with the existing provider patterns.

Also applies to: 67-67

README.md (1)

36-36: LGTM!

Documentation updates are consistent with the code changes. The provider is properly documented with a link to the OpenAI-compatible API documentation and the models list.

Also applies to: 291-291

src/config/providers.rs (1)

62-68: The Poe provider entry is correctly configured. The default model "claude-sonnet-4.5" is a valid and documented model in Poe's Anthropic-compatible API. The integration is complete with proper endpoint configuration and environment variable setup.

src/provider/mod.rs (1)

68-72: LGTM. The implementation correctly follows the established pattern for custom endpoint providers. Poe provides an OpenAI-compatible API at https://api.poe.com/v1/, so using AdapterKind::OpenAI is appropriate. The endpoint and env_key configuration are accurate.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


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.

@jnsahaj

jnsahaj commented Jan 19, 2026

Copy link
Copy Markdown
Owner

I think it'll be much easier to support #58 than supporting endless amounts of providers! (I've never heard of poe)

@y-cg

y-cg commented Jan 19, 2026

Copy link
Copy Markdown
Author

I think it'll be much easier to support #58 than supporting endless amounts of providers! (I've never heard of poe)

I agree. Is there anything I can do to help get #58 merged?

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.

2 participants