Skip to content

Providers

The provider decides which model answers and how you pay for it. It is a registry entry, so switching is a command.

sh
moxxy plugins defaults           # what is active
moxxy plugins use provider openai

What ships

NameAuthNotes
anthropicAPI keyThe floor.
openaiAPI key
openai-codexOAuthUses a ChatGPT subscription, no API key.
claude-codeOAuthUses a Claude Pro/Max subscription through an authenticated Claude Code install.
googleAPI key
xaiAPI key
zaiAPI keyAlso zai-coding-plan.
localnoneA model on your own hardware. Nothing leaves the machine.

Anything OpenAI-compatible can be registered at runtime without a package:

sh
moxxy login <provider>

The provider-admin plugin contributes provider_add, provider_list, provider_remove and provider_test, so the agent itself can wire up a new endpoint when you ask it to.

Signing in

sh
moxxy login anthropic          # API key → vault
moxxy login openai-codex       # OAuth device flow
moxxy login claude-code        # borrow an authenticated Claude Code install

Credentials land in the AES-256-GCM vault, unlocked through the OS keychain with a passphrase fallback. Config refers to them by reference:

yaml
provider:
  name: anthropic
  model: claude-sonnet-4-6
  config:
    apiKey: ${vault:ANTHROPIC_API_KEY}

${vault:NAME} is resolved at the point of use, so the plaintext never enters the transcript, the event log, or the model's context.

Capable Codex and Claude models use provider-hosted web search first. Their provider packages automatically install the lightweight @moxxy/plugin-browser companion, which supplies a pluggable local fallback and does not download Playwright until interactive browsing is actually requested.

Writing one

ts
import { defineProvider, definePlugin } from '@moxxy/sdk';

export const acme = defineProvider({
  name: 'acme',
  async *stream(req, ctx) {
    // Yield text, reasoning and tool-call chunks.
  },
});

export default definePlugin({
  name: '@acme/plugin-provider-acme',
  version: '1.0.0',
  providers: [acme],
});

The same contract everything built-in uses. See authoring a plugin and @moxxy/sdk.

Next

Open source · self-hosted · MIT