vibe-proxy/README.md
2026-08-27 15:02:32 +02:00

1.6 KiB

Vibe Proxy

Vibe Proxy connects multiple OpenAI Codex OAuth accounts, displays their quotas, and exposes them through an OpenAI-compatible API.

The management UI is available at /management.html. It supports adding and removing Codex accounts and refreshing their quota. Proxy API keys and server settings are deployment configuration, not UI settings.

Endpoints

  • GET /v1/models
  • POST /v1/chat/completions
  • POST /v1/responses
  • GET /v1/responses for WebSocket transport
  • GET /healthz

NixOS

Add the module and package from the flake:

{
  inputs.vibe-proxy.url = "github:methanium/vibe-proxy";

  outputs = { nixpkgs, vibe-proxy, ... }: {
    nixosConfigurations.host = nixpkgs.lib.nixosSystem {
      modules = [
        vibe-proxy.nixosModules.default
        ({ ... }: {
          services.vibe-proxy = {
            enable = true;
            host = "127.0.0.1";
            port = 8317;
            settings.api-keys = [ "replace-with-a-random-api-key" ];
            environmentFiles = [ "/run/secrets/vibe-proxy" ];
          };
        })
      ];
    };
  };
}

The environment file should contain:

MANAGEMENT_PASSWORD=replace-with-a-random-management-key

The module stores OAuth credentials under /var/lib/vibe-proxy/auths by default. Set openFirewall = true only when the service should be reachable directly from other machines.

Build or run the combined package with nix build or nix run.

Other deployments

Copy backend/config.example.yaml to config.yaml, replace the example API key, and set MANAGEMENT_PASSWORD. Docker Compose and the standalone binary both use local JSON credential storage.