Ag2 Middleware
ag2ai/build-with-ag2
Intercept the AG2 beta agent loop with BaseMiddleware — wrap full turns (onturn), each LLM call (onllmcall), each tool execution (ontoolexecution), or each human-input request (onhumaninput).
Manage FastLLM principals (API clients and users) and their API keys — create or delete principals, issue and revoke keys, attach roles, and set per-principal budgets and rate limits.
$ npx skills add azrtydxb/Fastllm-proxy --skill fastllm-principals -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install azrtydxb/Fastllm-proxy fastllm-principals --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/azrtydxb/Fastllm-proxy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/fastllm-principals .claude/skills/fastllm-principals && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "fastllm-principals" agent skill from https://github.com/azrtydxb/Fastllm-proxy/tree/main/.claude/skills/fastllm-principals into .claude/skills/fastllm-principals/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastllm-principals", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/azrtydxb/Fastllm-proxy/tree/main/.claude/skills/fastllm-principalsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add azrtydxb/Fastllm-proxy --skill fastllm-principals -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install azrtydxb/Fastllm-proxy fastllm-principals --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/azrtydxb/Fastllm-proxy.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/fastllm-principals .agents/skills/fastllm-principals && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fastllm-principals" agent skill from https://github.com/azrtydxb/Fastllm-proxy/tree/main/.claude/skills/fastllm-principals into .agents/skills/fastllm-principals/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastllm-principals", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add azrtydxb/Fastllm-proxy --skill fastllm-principals -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install azrtydxb/Fastllm-proxy fastllm-principals --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/azrtydxb/Fastllm-proxy.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/fastllm-principals .cursor/skills/fastllm-principals && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "fastllm-principals" agent skill from https://github.com/azrtydxb/Fastllm-proxy/tree/main/.claude/skills/fastllm-principals into .cursor/skills/fastllm-principals/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastllm-principals", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/azrtydxb/Fastllm-proxy.git --path .claude/skills/fastllm-principals--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add azrtydxb/Fastllm-proxy --skill fastllm-principals -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install azrtydxb/Fastllm-proxy fastllm-principals --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/azrtydxb/Fastllm-proxy.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/fastllm-principals .gemini/skills/fastllm-principals && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "fastllm-principals" agent skill from https://github.com/azrtydxb/Fastllm-proxy/tree/main/.claude/skills/fastllm-principals into .gemini/skills/fastllm-principals/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastllm-principals", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install azrtydxb/Fastllm-proxy fastllm-principalsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add azrtydxb/Fastllm-proxy --skill fastllm-principals -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/azrtydxb/Fastllm-proxy.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/fastllm-principals .github/skills/fastllm-principals && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "fastllm-principals" agent skill from https://github.com/azrtydxb/Fastllm-proxy/tree/main/.claude/skills/fastllm-principals into .github/skills/fastllm-principals/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastllm-principals", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add azrtydxb/Fastllm-proxy --skill fastllm-principals -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install azrtydxb/Fastllm-proxy fastllm-principals --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/azrtydxb/Fastllm-proxy.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/fastllm-principals .opencode/skills/fastllm-principals && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "fastllm-principals" agent skill from https://github.com/azrtydxb/Fastllm-proxy/tree/main/.claude/skills/fastllm-principals into .opencode/skills/fastllm-principals/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastllm-principals", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
fastllm-principalsManage FastLLM principals (API clients and users) and their API keys — create or delete principals, issue and revoke keys, attach roles, and set per-principal budgets and rate limits.
Fastllm Principals is an agent skill from azrtydxb/Fastllm-proxy. Manage FastLLM principals (API clients and users) and their API keys — create or delete principals, issue and revoke keys, attach roles, and set per-principal budgets and rate limits. Use when adding a new client or teammate, rotating a key, granting someone access to a model, or capping what one caller may spend. Not for role definitions and permissions (fastllm-roles) or global limits (fastllm-limits-budgets).
Its SKILL.md is about 870 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs, covering Rate limiting. The repository describes itself as: The lowest-overhead LLM router. Production-ready, highly available, one OpenAI-compatible endpoint in front of 80 providers and your own vLLM/SGLang — 0.76 µs per request, no I/O… The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 5d53db8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Fastllm Principals loads about 865 tokens when it runs. Until then it costs about 109 tokens; SKILL.md has 346 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from azrtydxb/Fastllm-proxy at commit 5d53db8, republished under its Apache-2.0 licence (© azrtydxb). 346 words, ~865 tokens.
.claude/skills/fastllm-principals/SKILL.md (or your agent's skills folder).Admin endpoints need a session cookie, not a bearer token — the gateway master key is not an admin credential.
curl -sk -c /tmp/ck -X POST https://192.168.10.129:4001/login \
-H 'content-type: application/json' -d '{"name":"<user>","password":"<pw>"}'
curl -sk -b /tmp/ck https://192.168.10.129:4001/admin/...<!-- BEGIN GENERATED: endpoints -->
| Method | Path | Summary | Body fields |
|---|---|---|---|
GET | /admin/keys | Read keys | — |
POST | /admin/keys | Mint a key. The plaintext is returned once and never again | name, principal_id, expires_at* |
DELETE | /admin/keys/{id} | Revoke a key. The row stays for audit | — |
GET | /admin/principals | Read principals | — |
POST | /admin/principals | Create principals | name, kind, email |
PATCH | /admin/principals/{id} | Rename a principal, or correct its email | name, email |
DELETE | /admin/principals/{id} | Delete principals id | — |
PUT | /admin/principals/{id}/budget | Set principals id budget | tokens_total, cost_total_micros, window |
DELETE | /admin/principals/{id}/budget | Delete principals id budget | — |
PUT | /admin/principals/{id}/limits | Set principals id limits | requests_per_min, tokens_per_min |
DELETE | /admin/principals/{id}/limits | Delete principals id limits | — |
PUT | /admin/principals/{id}/password | Set principals id password | password |
POST | /admin/principals/{id}/roles | Create principals id roles | role |
DELETE | /admin/principals/{id}/roles/{role} | Delete principals id roles role | — |
* optional field
<!-- END GENERATED: endpoints -->
API keys hash with SHA-256 and cannot be read back. Capture the key at creation; there is no endpoint that returns it later. If it is lost, issue a new one and delete the old.
last_used_at is stamped at usage ingest, not at authentication. The
request path does no I/O, so the write happens when the proxy flushes its usage
batch — the timestamp lags real use by up to one flush interval. A request
refused by a rate limit or budget still counts as use, because the key did
authenticate.
It is blank for any key whose last use predates this being written at all,
and cannot be backfilled: usage_events records the principal, not the key, so
history cannot say which of a principal's keys served a request. Read "never" on
an old key as "not since this was fixed", and check
GET /admin/usage?group_by=principal before concluding a key is dead.
A principal's budget and limits are separate sub-resources (/budget,
/limits), each with its own PUT and DELETE. Deleting the principal is not
the same as clearing them.
Deleting a principal orphans its usage rows. usage_events is keyed on
principal id, and rows whose principal no longer resolves are dropped at ingest
— historical spend for that caller stops being answerable.
© azrtydxb, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/fastllm-principals of azrtydxb/Fastllm-proxy.
Open the folder on GitHubat commit 5d53db8
Fastllm Principals next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Fastllm Principals this skillazrtydxb/Fastllm-proxy | 108 | — | ~865 | Automated safety check: Pass | Apache-2.0 | |
| Ag2 Middlewareag2ai/build-with-ag2 | 252 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Venice API Overviewveniceai/skills | 144 | — | ~3.5k | Automated safety check: Pass | MIT | |
| LLM Gatewaysickn33/agentic-awesome-skills | 47k | 1 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Langfuse Rate Limitsjeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Clade Common Errorsjeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~1.6k | Automated safety check: Pass | MIT |
ag2ai/build-with-ag2
Intercept the AG2 beta agent loop with BaseMiddleware — wrap full turns (onturn), each LLM call (onllmcall), each tool execution (ontoolexecution), or each human-input request (onhumaninput).
veniceai/skills
High-level map of the Venice.ai API: base URL, auth modes per endpoint, endpoint categories, response headers, pricing model, error shape and versioning.
sickn33/agentic-awesome-skills
Deploy an API gateway for LLM traffic with load balancing, rate limiting, key management, semantic caching, fallback routing, and cost tracking.
jeremylongshore/tons-of-skills-marketplace
Implement Langfuse rate limiting, batching, and backoff patterns.
jeremylongshore/tons-of-skills-marketplace
Diagnose and fix Anthropic API errors — authentication, rate limits, Use when working with common-errors patterns.
jeremylongshore/tons-of-skills-marketplace
Enforce tenant isolation and role-based access across LangChain 1.0 chains and LangGraph 1.0 agents — per-request retriever construction, tenant-scoped rate limits, role-scoped tool allowlists, and…
azrtydxb/Fastllm-proxy
Manage and invoke A2A agents behind FastLLM — register, patch, delete and list agents on the control plane, list them through the gateway, fetch an agent card, and invoke an agent by name.
azrtydxb/Fastllm-proxy
Run and troubleshoot the inference backends on the DGX Spark pair that FastLLM proxies to — starting or stopping models with vLLM, SGLang or sparkrun, choosing memory and speculative-decoding…
azrtydxb/Fastllm-proxy
Manage FastLLM prompt classes for semantic routing — create classes and their example prompts, list or delete them, and evaluate how a given prompt would be classified.
azrtydxb/Fastllm-proxy
Inspect and control the running FastLLM deployment — read effective configuration and deployment settings, force a snapshot rebuild, fetch the snapshot the proxies consume, and check liveness and…
azrtydxb/Fastllm-proxy
Send inference requests through the FastLLM OpenAI-compatible gateway — chat completions, completions, embeddings, rerank, score, responses, moderations, audio speech and transcription, image…
azrtydxb/Fastllm-proxy
Manage and use MCP servers behind FastLLM — register, patch, delete and list MCP servers on the control plane, and list or call their tools through the gateway.
Categories
Manage FastLLM principals (API clients and users) and their API keys — create or delete principals, issue and revoke keys, attach roles, and set per-principal budgets and rate limits. Fastllm Principals is an agent skill from azrtydxb/Fastllm-proxy. Manage FastLLM principals (API clients and users) and their API keys — create or delete principals, issue and revoke keys, attach roles, and set per-principal budgets and rate limits.
Fastllm Principals fits situations like: adding a new client; granting someone access to a model; capping what one caller may spend.
Run `npx skills add azrtydxb/Fastllm-proxy --skill fastllm-principals -a claude-code`. Or copy the skill folder (.claude/skills/fastllm-principals in azrtydxb/Fastllm-proxy) into .claude/skills/fastllm-principals in your project. Claude Code loads it when a task matches its description.
Run `npx skills add azrtydxb/Fastllm-proxy --skill fastllm-principals -a codex`. Or copy the skill folder (.claude/skills/fastllm-principals in azrtydxb/Fastllm-proxy) into .agents/skills/fastllm-principals in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add azrtydxb/Fastllm-proxy --skill fastllm-principals -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fastllm-principals, .gemini/skills/fastllm-principals, .github/skills/fastllm-principals and .opencode/skills/fastllm-principals in your project.
Going by SKILL.md and its folder, Fastllm Principals needs the command-line tools its instructions call (curl).
SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Fastllm Principals is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 865 tokens (SKILL.md is roughly 3.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Fastllm Principals: Ag2 Middleware (ag2ai/build-with-ag2, 252 stars), Venice API Overview (veniceai/skills, 144 stars), LLM Gateway (sickn33/agentic-awesome-skills, 47k stars) and Langfuse Rate Limits (jeremylongshore/tons-of-skills-marketplace, 2.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
azrtydxb (a GitHub organization) maintains it in azrtydxb/Fastllm-proxy, which has 108 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 5, 2026.
Source: azrtydxb/Fastllm-proxy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.