

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1# AGENTS.md23Go 1.26+ proxy server providing OpenAI/Gemini/Claude/Codex compatible APIs with OAuth and round-robin load balancing.45## Repository6- GitHub: https://github.com/router-for-me/CLIProxyAPI78## Commands9```bash10gofmt -w . # Format (required after Go changes)11go build -o cli-proxy-api ./cmd/server # Build12go run ./cmd/server # Run dev server13go test ./... # Run all tests14go test -v -run TestName ./path/to/pkg # Run single test15go build -o test-output ./cmd/server && rm test-output # Verify compile (REQUIRED after changes)16```17- Common flags: `--config <path>`, `--tui`, `--standalone`, `--local-model`, `--no-browser`, `--oauth-callback-port <port>`1819## Config20- Default config: `config.yaml` (template: `config.example.yaml`)21- `.env` is auto-loaded from the working directory22- Auth material defaults under `auths/`23- Storage backends: file-based default; optional Postgres/git/object store (`PGSTORE_*`, `GITSTORE_*`, `OBJECTSTORE_*`)2425## Architecture26- `cmd/server/` — Server entrypoint27- `internal/api/` — Gin HTTP API (routes, middleware, modules)28- `internal/api/modules/amp/` — Amp integration (Amp-style routes + reverse proxy)29- `internal/thinking/` — Main thinking/reasoning pipeline. `ApplyThinking()` (apply.go) parses suffixes (`suffix.go`, suffix overrides body), normalizes config to canonical `ThinkingConfig` (`types.go`), normalizes and validates centrally (`validate.go`/`convert.go`), then applies provider-specific output via `ProviderApplier`. Do not break this "canonical representation → per-provider translation" architecture.30- `internal/runtime/executor/` — Per-provider runtime executors (incl. Codex WebSocket)31- `internal/translator/` — Provider protocol translators (and shared `common`)32- `internal/registry/` — Model registry + remote updater (`StartModelsUpdater`); `--local-model` disables remote updates33- `internal/store/` — Storage implementations and secret resolution34- `internal/managementasset/` — Config snapshots and management assets35- `internal/cache/` — Request signature caching36- `internal/watcher/` — Config hot-reload and watchers37- `internal/wsrelay/` — WebSocket relay sessions38- `internal/usage/` — Usage and token accounting39- `internal/tui/` — Bubbletea terminal UI (`--tui`, `--standalone`)40- `sdk/cliproxy/` — Embeddable SDK entry (service/builder/watchers/pipeline)41- `test/` — Cross-module integration tests4243## Code Conventions44- Keep changes small and simple (KISS)45- Comments in English only46- If editing code that already contains non-English comments, translate them to English (don’t add new non-English comments)47- For user-visible strings, keep the existing language used in that file/area48- New Markdown docs should be in English unless the file is explicitly language-specific (e.g. `README_CN.md`)49- As a rule, do not make standalone changes to `internal/translator/`. You may modify it only as part of broader changes elsewhere.50- If a task requires changing only `internal/translator/`, run `gh repo view --json viewerPermission -q .viewerPermission` to confirm you have `WRITE`, `MAINTAIN`, or `ADMIN`. If you do, you may proceed; otherwise, file a GitHub issue including the goal, rationale, and the intended implementation code, then stop further work.51- `internal/runtime/executor/` should contain executors and their unit tests only. Place any helper/supporting files under `internal/runtime/executor/helps/`.52- Follow `gofmt`; keep imports goimports-style; wrap errors with context where helpful53- Do not use `log.Fatal`/`log.Fatalf` (terminates the process); prefer returning errors and logging via logrus54- Shadowed variables: use method suffix (`errStart := server.Start()`)55- Wrap defer errors: `defer func() { if err := f.Close(); err != nil { log.Errorf(...) } }()`56- Use logrus structured logging; avoid leaking secrets/tokens in logs57- Avoid panics in HTTP handlers; prefer logged errors and meaningful HTTP status codes58- Timeouts are allowed only during credential acquisition; after an upstream connection is established, do not set timeouts for any subsequent network behavior. Intentional exceptions that must remain allowed are the Codex websocket liveness deadlines in `internal/runtime/executor/codex_websockets_executor.go`, the wsrelay session deadlines in `internal/wsrelay/session.go`, the management APICall timeout in `internal/api/handlers/management/api_tools.go`, and the `cmd/fetch_antigravity_models` utility timeouts59
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| vllm-project/vllmAGENTS.md · 89k | AGENTS.md | setuptestlint-formatstyle+5 | 100/100 | 14 days ago | |
| duckduckgo/content-scope-scriptsspecial-pages/AGENTS.md · 70 | AGENTS.md | buildteststylearch+3 | 100/100 | 14 days ago | |
| TryGhost/Ghoste2e/AGENTS.md · 55k | AGENTS.md | setupteststylearch+2 | 100/100 | today | |
| deepseek-ai/deepseek-harnessnative/landlock-run/AGENTS.md · 104k | AGENTS.md | setupteststylearch+3 | 100/100 | today | |
| aaif-goose/gooseAGENTS.md · 53k | AGENTS.md | setupbuildtestlint-format+7 | 100/100 | 8 days ago | |
| n8n-io/n8npackages/@n8n/agents/AGENTS.md · 201k | AGENTS.md | buildteststylearch+3 | 100/100 | 14 days ago | |
| code-yeongyu/oh-my-openagentpackages/web/AGENTS.md · 68k | AGENTS.md | setupbuildtestlint-format+6 | 100/100 | 13 days ago | |
| mui/material-uiAGENTS.md · 99k | AGENTS.md | setupbuildtestlint-format+9 | 100/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/router-for-me-cliproxyapi-agents)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.