[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81707":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":28,"discoverSource":29},81707,"playful-proxy-api-panel","daishuge\u002Fplayful-proxy-api-panel","daishuge","CLIProxyAPI-compatible fork with restored usage statistics and open-source bundled management panel frontend.",null,"Go",45,5,43,1,0,2,3,4,6,48.23,"MIT License",false,"main",[],"2026-06-12 04:01:35","# Playful Proxy API Panel (PPAP)\n\nEnglish | [中文](README_CN.md) | [日本語](README_JA.md)\n\n**PPAP is a self-hosted, upstream-compatible CLIProxyAPI fork with a built-in management panel, persistent usage analytics, and Codex-focused model ergonomics.**\n\nIt keeps the familiar OpenAI\u002FGemini\u002FClaude\u002FCodex-compatible proxy surface from [`router-for-me\u002FCLIProxyAPI`](https:\u002F\u002Fgithub.com\u002Frouter-for-me\u002FCLIProxyAPI), then adds the pieces that matter when you run it every day: usage snapshots, cost estimates, panel assets released with the backend, and safer thinking-strength aliases.\n\nUse upstream CLIProxyAPI when you want the vanilla project. Use PPAP when you want the same proxy style with more local visibility and a tighter operations loop.\n\n## What Makes PPAP Different\n\n- **Usage analytics built in**: restored `\u002Fv0\u002Fmanagement\u002Fusage`, import\u002Fexport endpoints, persistent local snapshots, cache hit rate, first-byte latency, average latency, TPS, token breakdowns, and per-model\u002Fper-API rollups.\n- **Panel and backend released together**: the management panel source lives in [`web\u002Fmanagement-panel`](web\u002Fmanagement-panel), and each release ships the matching `management.html`.\n- **Opt-in full conversation logs**: operators can enable protected request\u002Fresponse body logs and browse them from the management panel.\n- **Opt-in upstream preset prompt**: deployments can prepend an operator prompt to upstream chat-like requests without returning that prompt to API clients.\n- **Codex is treated as a primary workflow**: OpenAI Codex OAuth, GPT model routing, Spark pricing estimation, and thinking-strength aliases are maintained in this fork.\n- **Thinking aliases are predictable**: both `model(high)` and `model-high` work for `low`, `medium`, `high`, and `xhigh`; explicit aliases and exact model names stay higher priority.\n- **Upstream compatibility is still the baseline**: upstream fixes are merged where they do not conflict with PPAP behavior. Recent Redis usage queue retention support is included.\n\n## Core Features\n\n- OpenAI\u002FGemini\u002FClaude\u002FCodex-compatible API endpoints for CLI models\n- OAuth login for OpenAI Codex and Claude Code\n- Streaming and non-streaming responses\n- Function calling\u002Ftools and multimodal input\n- Multi-account routing and load balancing\n- Gemini CLI, AI Studio Build, Claude Code, OpenAI Codex, and Amp CLI support\n- OpenAI-compatible upstream providers such as OpenRouter through config\n- Protected full conversation log browsing when explicitly enabled\n- Upstream-only preset prompt injection when explicitly enabled\n- Reusable Go SDK for embedding the proxy\n\n## Quick Start\n\nDownload the [latest PPAP release](https:\u002F\u002Fgithub.com\u002Fdaishuge\u002Fplayful-proxy-api-panel\u002Freleases\u002Flatest), extract the archive for your platform, then start with a local config file:\n\n```bash\ncp config.example.yaml config.yaml\n.\u002Fcli-proxy-api -config .\u002Fconfig.yaml\n```\n\nThe default HTTP port is `8317`.\n\nRelease archives cover the same platform families as upstream CPA: Linux, Windows, macOS, and FreeBSD on `amd64` and `aarch64`\u002F`arm64` where Go supports them.\n\n## Docker\n\nThe Docker image is published as `ghcr.io\u002Fdaishuge\u002Fplayful-proxy-api-panel` for `linux\u002Famd64` and `linux\u002Farm64`. The image bundles the PPAP management panel built from the same tag, so `\u002Fmanagement.html` works without downloading a panel asset first.\n\nFrom a release archive or cloned checkout:\n\n```bash\ncp config.docker.example.yaml config.yaml\nmkdir -p auths logs data\n# edit config.yaml: replace change-me-management-key and change-me-api-key\ndocker compose pull\ndocker compose up -d\n```\n\nTo build the image locally instead of pulling GHCR:\n\n```bash\ndocker compose up -d --build\n```\n\nDefault persistent paths in `docker-compose.yml`:\n\n- `.\u002Fconfig.yaml` -> `\u002FCLIProxyAPI\u002Fconfig.yaml`\n- `.\u002Fauths` -> `\u002Froot\u002F.cli-proxy-api`\n- `.\u002Fdata` -> `\u002FCLIProxyAPI\u002Fdata`\n- `.\u002Flogs` -> `\u002FCLIProxyAPI\u002Flogs`\n\nThe Compose file keeps upstream-compatible default host ports, but each host port can be overridden from `.env`. For example, if host port `1455` is already in use and you do not need the Codex OAuth callback on that exact local port:\n\n```env\nCLI_PROXY_CODEX_CALLBACK_PORT=1456\n```\n\nKeep host port `1455` available when you rely on the built-in Codex OAuth callback, because the OAuth redirect URI uses `http:\u002F\u002Flocalhost:1455\u002Fauth\u002Fcallback`.\n\nDocker bridge requests are remote from the container's point of view, so `config.docker.example.yaml` enables `remote-management.allow-remote` and requires a management key. Replace the example keys before exposing the service beyond your own machine.\n\nKeep `config.yaml`, `.env`, OAuth files, API keys, auth directories, logs, data snapshots, and generated stores out of git.\n\n## Configuration Notes\n\nStart from [`config.example.yaml`](config.example.yaml). The most useful PPAP-specific settings are:\n\n- `usage-statistics-enabled`: enable built-in usage snapshots.\n- `usage-statistics-path`: optionally move the usage snapshot away from the config directory.\n- `redis-usage-queue-retention-seconds`: tune Redis usage queue retention when Redis usage queueing is enabled.\n- `\u002Fv0\u002Fmanagement\u002Fusage-queue`: pop queued usage records for integrations that consume the Redis-compatible usage stream.\n- `api-key-controls`: optionally restrict individual client keys by model patterns, per-key preset prompts, and request\u002Ftoken\u002Festimated USD budgets. Enable usage statistics when using budgets.\n- `conversation-log`: disabled by default; enable only when you want protected full request\u002Fresponse body logs.\n- `preset-prompt`: disabled by default; injects an operator prompt only into upstream chat-like requests. Per-key `api-key-controls[].preset-prompt` overrides this global block.\n- `oauth-model-alias`: define friendly model aliases while preserving old config compatibility.\n\nSee [Conversation Logging And Preset Prompt Operations](docs\u002Foperations-conversation-logging-and-preset-prompt.md) before enabling either feature in production.\n\nFor models that declare thinking levels, PPAP can expose automatic aliases such as:\n\n```text\ngpt-5.3-codex-spark-low\ngpt-5.3-codex-spark-medium\ngpt-5.3-codex-spark-high\ngpt-5.3-codex-spark-xhigh\n```\n\nThe older parenthesized style still works:\n\n```text\ngpt-5.3-codex-spark(high)\n```\n\n## Codex Spark Pricing\n\n`gpt-5.3-codex-spark` is included in PPAP pricing data for local usage-cost estimation. Until official preview pricing settles, PPAP temporarily estimates it with the `gpt-5.3-codex` rate.\n\nReferences:\n\n- [Introducing GPT-5.3-Codex-Spark](https:\u002F\u002Fopenai.com\u002Findex\u002Fintroducing-gpt-5-3-codex-spark\u002F)\n- [Codex rate card](https:\u002F\u002Fhelp.openai.com\u002Fen\u002Farticles\u002F11369540-codex-rate-card)\n- [OpenAI API pricing](https:\u002F\u002Fopenai.com\u002Fapi\u002Fpricing\u002F)\n\n## Management\n\n- Management panel source: [`web\u002Fmanagement-panel`](web\u002Fmanagement-panel)\n- Management API docs: [help.router-for.me\u002Fmanagement\u002Fapi](https:\u002F\u002Fhelp.router-for.me\u002Fmanagement\u002Fapi)\n- Usage endpoints: `\u002Fv0\u002Fmanagement\u002Fusage`, `\u002Fv0\u002Fmanagement\u002Fusage\u002Fexport`, `\u002Fv0\u002Fmanagement\u002Fusage\u002Fimport`\n- Usage queue endpoint: `\u002Fv0\u002Fmanagement\u002Fusage-queue?count=100`\n- Conversation log endpoints: `\u002Fv0\u002Fmanagement\u002Fconversation-logs`, `\u002Fv0\u002Fmanagement\u002Fconversation-logs\u002Ftail`, `\u002Fv0\u002Fmanagement\u002Fconversation-logs\u002F{id}`\n- Amp CLI guide: [help.router-for.me\u002Fagent-client\u002Famp-cli.html](https:\u002F\u002Fhelp.router-for.me\u002Fagent-client\u002Famp-cli.html)\n\nThe release asset `management.html` is built from the same tag as the backend binaries, so a running PPAP instance can point its panel updater at this repository.\n\n## Compatible Ecosystem\n\nPPAP keeps built-in usage analytics, but it also stays compatible with upstream-style Management API and usage queue integrations:\n\n- [CPA-Manager](https:\u002F\u002Fgithub.com\u002Fseakee\u002FCPA-Manager): request-level monitoring, cost estimation, SQLite persistence, and Codex account-pool operations.\n- [CLIProxyAPI Usage Dashboard](https:\u002F\u002Fgithub.com\u002Fzhanglunet\u002Fcliproxyapi-usage-dashboard): local usage and quota dashboard that consumes the usage queue.\n- [CLIProxy Pool Watch](https:\u002F\u002Fgithub.com\u002Fmurasame612\u002FCLIProxyPoolWidget): macOS account quota monitor for CLIProxyAPI pools.\n- [Codex Switch](https:\u002F\u002Fgithub.com\u002F9ycrooked\u002FCodexSwitch): desktop account-profile switcher for OpenAI Codex auth files and quota checks.\n\n## SDK And Docs\n\n- SDK usage: [docs\u002Fsdk-usage.md](docs\u002Fsdk-usage.md)\n- Advanced executors and translators: [docs\u002Fsdk-advanced.md](docs\u002Fsdk-advanced.md)\n- Access: [docs\u002Fsdk-access.md](docs\u002Fsdk-access.md)\n- Watcher: [docs\u002Fsdk-watcher.md](docs\u002Fsdk-watcher.md)\n- Operations: [Conversation Logging And Preset Prompt Operations](docs\u002Foperations-conversation-logging-and-preset-prompt.md)\n- Custom provider example: [`examples\u002Fcustom-provider`](examples\u002Fcustom-provider)\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","Playful Proxy API Panel (PPAP) 是一个自托管的CLIProxyAPI兼容分支，内置管理面板和持久使用分析功能。该项目采用Go语言编写，提供了详细的使用统计、成本估算以及针对Codex模型优化的人机工程学设计。核心功能包括OpenAI\u002FGemini\u002FClaude\u002FCodex兼容的API端点、OAuth登录支持、流式与非流式响应处理、多账户路由及负载均衡等。此外，PPAP还提供了一个与后端同步发布的前端管理界面，便于日常运维中的监控与管理。适用于需要在本地环境运行类似CLIProxyAPI服务，并希望获得更丰富监控数据和更紧密操作循环的企业或个人开发者。","2026-06-11 04:06:03","CREATED_QUERY"]