No description
  • Go 98.2%
  • Rust 0.6%
  • C 0.6%
  • TypeScript 0.2%
  • Python 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-27 15:40:05 +02:00
backend Big update 2026-08-27 15:02:32 +02:00
frontend Big update 2026-08-27 15:02:32 +02:00
nix Update vibe proxy 2026-08-27 15:40:05 +02:00
.dockerignore Add projects 2026-08-24 00:10:41 +02:00
.envrc Big update 2026-08-27 15:02:32 +02:00
.gitignore Big update 2026-08-27 15:02:32 +02:00
flake.lock Add projects 2026-08-24 00:10:41 +02:00
flake.nix Big update 2026-08-27 15:02:32 +02:00
LICENSE Add projects 2026-08-24 00:10:41 +02:00
package.json Big update 2026-08-27 15:02:32 +02:00
pnpm-lock.yaml Big update 2026-08-27 15:02:32 +02:00
pnpm-workspace.yaml Add projects 2026-08-24 00:10:41 +02:00
README.md Big update 2026-08-27 15:02:32 +02:00

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.