Auth Architecture
majiayu000/litellm-rs
LiteLLM-RS Authentication Architecture. An agent skill from majiayu000/litellm-rs.
Navigate agdb API structure, endpoints, authentication, and client libraries.
$ npx skills add agnesoft/agdb --skill agdb-api -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install agnesoft/agdb agdb-api --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/agnesoft/agdb.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/agdb-api .claude/skills/agdb-api && 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 "agdb-api" agent skill from https://github.com/agnesoft/agdb/tree/main/.github/skills/agdb-api into .claude/skills/agdb-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agdb-api", 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/agnesoft/agdb/tree/main/.github/skills/agdb-apiType 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 agnesoft/agdb --skill agdb-api -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install agnesoft/agdb agdb-api --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agnesoft/agdb.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/agdb-api .agents/skills/agdb-api && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "agdb-api" agent skill from https://github.com/agnesoft/agdb/tree/main/.github/skills/agdb-api into .agents/skills/agdb-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agdb-api", 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 agnesoft/agdb --skill agdb-api -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install agnesoft/agdb agdb-api --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agnesoft/agdb.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/agdb-api .cursor/skills/agdb-api && 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 "agdb-api" agent skill from https://github.com/agnesoft/agdb/tree/main/.github/skills/agdb-api into .cursor/skills/agdb-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agdb-api", 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/agnesoft/agdb.git --path .github/skills/agdb-api--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 agnesoft/agdb --skill agdb-api -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install agnesoft/agdb agdb-api --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agnesoft/agdb.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/agdb-api .gemini/skills/agdb-api && 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 "agdb-api" agent skill from https://github.com/agnesoft/agdb/tree/main/.github/skills/agdb-api into .gemini/skills/agdb-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agdb-api", 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 agnesoft/agdb agdb-apiInstalls 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 agnesoft/agdb --skill agdb-api -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/agnesoft/agdb.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/agdb-api .github/skills/agdb-api && 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 "agdb-api" agent skill from https://github.com/agnesoft/agdb/tree/main/.github/skills/agdb-api into .github/skills/agdb-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agdb-api", 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 agnesoft/agdb --skill agdb-api -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install agnesoft/agdb agdb-api --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agnesoft/agdb.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/agdb-api .opencode/skills/agdb-api && 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 "agdb-api" agent skill from https://github.com/agnesoft/agdb/tree/main/.github/skills/agdb-api into .opencode/skills/agdb-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agdb-api", 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.
agdb-apiNavigate agdb API structure, endpoints, authentication, and client libraries.
Agdb API is an agent skill from agnesoft/agdb. Navigate agdb API structure, endpoints, authentication, and client libraries. Use this skill when building API clients, writing server tests, understanding endpoint behavior, or working with API transpilations to other languages.
Its SKILL.md is about 6k 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 Authentication. It works with Rust. The repository describes itself as: Agnesoft Graph Database. The licence is Apache-2.0.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0d70098. 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:
cargoFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
packagist.orgFrom 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.
Agdb API loads about 6k tokens when it runs. Until then it costs about 60 tokens; SKILL.md has 1,596 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 agnesoft/agdb at commit 0d70098, republished under its Apache-2.0 licence (© agnesoft). 1,596 words, ~5,986 tokens.
.claude/skills/agdb-api/SKILL.md (or your agent's skills folder).Use this skill when:
Primary sources in this repository:
agdb_api/src/client.rs — Rust API client (all endpoint methods)agdb_server/openapi.json — OpenAPI 3.1.0 specification (complete contract)agdb_server/src/routes/ — Route implementations (auth, validation, errors)agdb_server/tests/ — Integration testsagdb_api/src/ — Rust client source packageagdb_api/typescript/ — TypeScript client packageagdb_api/php/ — PHP client packageThe agdb server exposes a REST API at /api/v1 (or {basepath}/api/v1 when basepath is configured) organized into four endpoint families:
/api/v1/admin/...)Require admin authentication. Manage all databases, users, and server state.
Database management: /admin/db/{owner}/{db}/...
POST /add — Create database (body: DbKind — Memory, Mapped, File)GET /audit — View database audit log → DbAuditPOST /backup — Create backup snapshotPOST /clear — Clear resources (body: ClearAudit | ClearBackup | ClearAll)POST /convert — Change storage type (body: DbKind)POST /copy — Copy database (body: {new_name})DELETE /delete — Permanently delete database and filesPOST /optimize — Defragment storage, returns ServerDatabase with new sizePOST /optimize_shrink_to_fit — Defragment and shrink file on diskDELETE /remove — Disassociate from server (keep data files)POST /rename — Rename/move database (body: {new_name})POST /restore — Restore from backupPOST /rollback — Rollback to previous WAL checkpointPOST /exec — Execute immutable queries → Vec<QueryResult>POST /exec_mut — Execute mutable queries → Vec<QueryResult>GET /user/list — List database users → Vec<DbUser>PUT /user/{username}/add — Add database user (body: DbUserRole)DELETE /user/{username}/remove — Remove database userUser management: /admin/user/...
POST /{username}/add — Create user (body: {password})PUT /{username}/change_password — Change password (body: {password})GET /list — List all users and sessions → Vec<UserStatus>POST /{username}/logout — Logout user (all sessions on this node)POST /{username}/logout?session={session} — Logout specific sessionPOST /logout_all — Logout all users on this nodeDELETE /{username}/delete — Delete user and all owned databasesServer management: /admin/...
POST /shutdown — Graceful server shutdownPOST /set_log_level?new_level={level} — Set log level (trace, debug, info, warn, error, off)GET /status — Server status and metrics → AdminStatus/api/v1/user/...)Require user authentication. User manages own account.
POST /login — Authenticate → token string (body: {username, password})POST /logout — Logout current sessionPOST /logout?session=others — Logout all other sessionsPOST /logout?session=all — Logout all sessionsPOST /logout?session={session} — Logout specific session by idPUT /change_password — Change own password (body: {password})GET /status — Own status and sessions → UserStatus/api/v1/db/{owner}/{db}/...)Require user authentication and appropriate role.
Same structure as admin database routes but scoped to owner/accessible databases:
| Role | Allowed operations |
|---|---|
| Read | exec, audit |
| Write | Everything Read + exec_mut |
| Admin | Everything Write + backup, restore, rollback, convert, optimize, clear, user/add, user/remove |
Additionally:
POST /add — Create database (owner must be self)DELETE /delete — Delete (owner only)DELETE /remove — Remove (owner only)POST /rename — Rename (owner only)POST /copy — Copy (owner scope)GET /list — List accessible databases → Vec<ServerDatabase> (no {owner}/{db} path params)/api/v1/cluster/...)Propagate operations across all cluster nodes. These endpoints replicate the action to every node via the Raft log.
POST /user/login — Authenticate cluster-wide → token valid on all nodesPOST /user/logout — Logout cluster-widePOST /user/logout?session=others|all|{id} — Logout variants across clusterPOST /admin/user/{username}/logout — Admin logout user across clusterPOST /admin/user/{username}/logout?session={session} — Admin logout specific session across clusterPOST /admin/user/logout_all — Logout all users across clusterGET /status — Cluster node statuses → Vec<ClusterStatus>GET /api/v1/status — Server health (no auth required), returns HTTP 200POST /user/login or POST /cluster/user/login with {username, password}.Authorization: Bearer <token> header for subsequent requests.token_expiry_seconds (configurable, default 3600, range 60–86400).401 Unauthorized.Users can have roles on databases:
Admin users have server-wide admin access and are required for user and server operations.
| Code | Meaning |
|---|---|
200 | Success with a response body (GET, exec, exec_mut) |
201 | Created (create-like POST/PUT operations) |
204 | No content (DELETE and other successful no-body operations) |
400 | Bad request (malformed input) |
401 | Unauthorized (missing/expired token, invalid credentials) |
403 | Forbidden (insufficient permissions / wrong role) |
404 | Not found (user, database, or resource does not exist) |
461 | Password too short (<8 chars) |
462 | User name too short (<3 chars) |
463 | User already exists |
464 | User not found |
465 | Database already exists |
467 | Invalid database name |
agdb_api::AgdbApi)Hand-written, fully typed. Methods map directly to endpoints. This is the recommended way to interact with the server programmatically.
use agdb_api::{AgdbApi, ReqwestClient, DbKind};
use agdb::QueryBuilder;
let mut client = AgdbApi::new(ReqwestClient::new(), "localhost:3000");
// Authenticate
client.user_login("admin", "password").await?;
// Create database
client.db_add("owner", "my_db", DbKind::Mapped).await?;
// Execute queries
let queries = vec![
QueryBuilder::insert().nodes().aliases(["root"]).query().into(),
QueryBuilder::insert().nodes().count(5).query().into(),
];
let (status, results) = client.db_exec_mut("owner", "my_db", &queries).await?;
// results[0].result == 1, results[1].result == 5
// Read back
let (status, results) = client.db_exec("owner", "my_db", &[
QueryBuilder::select().search().from("root").where_().node().query().into(),
]).await?;Location: agdb_api/src/client.rs
Package name: agdb_api
Cargo features:
api (default) — enables derive macros, tokio, and the full clientderive — agdb derive macros re-exportedMethod naming convention: {family}_{resource}_{action}
admin_db_add, admin_db_exec_mut, admin_user_adddb_add, db_exec, db_exec_mut, db_backup, db_restorecluster_user_login, cluster_statususer_login, user_logout, user_statusCustom HTTP client: Implement the HttpClient trait to replace ReqwestClient with any HTTP library. The trait defines delete, get, post, put methods.
Generated from OpenAPI. Includes models and request types.
import { client } from "@agnesoft/agdb_api";
const api = client("http://localhost:3000");
await api.user_login({ username: "admin", password: "password" });
const dbs = await api.db_list();Location: agdb_api/typescript/src/
Package name: @agnesoft/agdb_api
Generated from OpenAPI using openapi-generator.
$api = new \Agnesoft\AgdbApi\Api\AgdbApi(
new \GuzzleHttp\Client(),
$config
);
$api->userLogin(['userLogin' => new UserLogin(['username' => 'admin', 'password' => 'password'])]);Location: agdb_api/php/lib/
Package name: agnesoft/agdb-api
URL: https://packagist.org/packages/agnesoft/agdb_api
The server reads a YAML-like config file (default: agdb_server.yaml). First run creates a default config.
| Key | Default | Description |
|---|---|---|
bind | :::3000 | Socket bind address |
address | http://localhost:3000 | Public address for cluster discovery |
basepath | (empty) | URL path prefix (e.g. /api); auto-prepended / if missing |
static_roots | [] | Directories to serve as static files |
admin | admin | Admin username (created on first run with password = username) |
log_level | info | trace, debug, info, warn, error, off |
log_body_limit | 10240 | Max bytes of request/response body to log |
request_body_limit | 10485760 | Max request body size (10 MiB) |
data_dir | agdb_server_data | Directory for databases and server state |
pepper_path | (empty) | Path to 16-byte pepper file for password hashing |
tls_certificate | (empty) | Path to TLS certificate (enables HTTPS) |
tls_key | (empty) | TLS private key |
tls_root | (empty) | TLS root CA (for cluster mutual TLS) |
cluster_token | cluster | Shared secret for cluster inter-node auth |
cluster | [] | List of cluster node URLs |
cluster_heartbeat_timeout_ms | 1000 | Raft heartbeat interval |
cluster_term_timeout_ms | 3000 | Raft term/election timeout |
cluster_election_factor_ms | 1000 | Per-node election delay (node_id × factor) |
cluster_max_log_entries | 1000 | Max Raft log entries before pruning |
cluster_max_chunk_size | 65536 | Max bytes per resync chunk |
token_expiry_seconds | 3600 | Auth token TTL (range: 60–86400) |
sync_mode | none | none (OS-managed flush) or commit (fsync every commit) |
The server supports Raft-based clustering for high availability:
node_id × cluster_election_factor_ms) to reduce split votes.ClusterAction entries (all mutating API operations) to followers.cluster: ["http://localhost:3000"] runs Raft but auto-commits immediately./cluster/user/login and /cluster/user/logout propagate sessions across all nodes; regular /user/login is node-local.Each node needs its own config file. All nodes list the same cluster array. A node identifies itself by finding its address (+ basepath) in the list.
Node 1:
bind: :::3001
address: http://node1:3001
admin: admin
cluster_token: my_secret
cluster: ["http://node1:3001", "http://node2:3002", "http://node3:3003"]Node 2:
bind: :::3002
address: http://node2:3002
admin: admin
cluster_token: my_secret
cluster: ["http://node1:3001", "http://node2:3002", "http://node3:3003"]The query serialization format uses deeply nested Rust enums (QueryType, QueryCondition, Comparison, CountComparison, etc.) that are practically impossible to construct correctly as raw JSON. Always use agdb_api::AgdbApi with QueryBuilder.
use agdb::{DbType, QueryBuilder};
use agdb_api::{AgdbApi, ReqwestClient, DbKind};
#[derive(Debug, DbType)]
struct Evidence {
identity: String,
control_id: String,
status: String,
}
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// 1. Connect and authenticate
let mut client = AgdbApi::new(ReqwestClient::new(), "localhost:3000");
client.user_login("admin", "admin").await?;
// 2. Create (or verify) database exists
match client.db_add("admin", "evidence_db", DbKind::Mapped).await {
Ok(_) => println!("Database created"),
Err(e) if e.status == 465 => println!("Database already exists"),
Err(e) => return Err(e.into()),
}
// 3. Set up schema: root node + index
client.db_exec_mut("admin", "evidence_db", &[
QueryBuilder::insert().nodes().aliases(["evidence_root"]).query().into(),
QueryBuilder::insert().index("identity").query().into(),
QueryBuilder::insert().index("control_id").query().into(),
]).await?;
// 4. Insert data
let records = vec![
Evidence { identity: "app-1".into(), control_id: "SOX-001".into(), status: "pass".into() },
Evidence { identity: "app-1".into(), control_id: "SOX-002".into(), status: "fail".into() },
Evidence { identity: "app-2".into(), control_id: "SOX-001".into(), status: "pass".into() },
];
let results = client.db_exec_mut("admin", "evidence_db", &[
QueryBuilder::insert().nodes().values(&records).query().into(),
]).await?.1;
// Link to root
client.db_exec_mut("admin", "evidence_db", &[
QueryBuilder::insert().edges().from("evidence_root").to(results[0].ids()).query().into(),
]).await?;
// 5. Query: find all evidence for identity "app-1"
let (_, results) = client.db_exec("admin", "evidence_db", &[
QueryBuilder::select()
.elements::<Evidence>()
.search()
.index("identity")
.value("app-1")
.query()
.into(),
]).await?;
let evidence: Vec<Evidence> = results[0].clone().try_into()?;
for e in &evidence {
println!("{}: {} = {}", e.identity, e.control_id, e.status);
}
// 6. Update: set status to "remediated" for SOX-002
let (_, to_update) = client.db_exec("admin", "evidence_db", &[
QueryBuilder::search()
.from("evidence_root")
.where_()
.key("control_id").value("SOX-002")
.and()
.key("identity").value("app-1")
.query()
.into(),
]).await?;
client.db_exec_mut("admin", "evidence_db", &[
QueryBuilder::insert()
.values_uniform([("status", "remediated").into()])
.ids(to_update[0].ids())
.query()
.into(),
]).await?;
// 7. Backup
client.db_backup("admin", "evidence_db").await?;
Ok(())
}match client.db_exec_mut("owner", "db", &queries).await {
Ok((status, results)) => {
// status is the HTTP status code (200)
// results is Vec<QueryResult>
}
Err(e) => {
// e.status: HTTP status code (401, 403, 404, etc.)
// e.description: error message from server
eprintln!("API error {}: {}", e.status, e.description);
}
}All queries in a single exec_mut call execute atomically. Use this to ensure consistency:
// These three operations are atomic
let results = client.db_exec_mut("owner", "db", &[
QueryBuilder::insert().nodes().aliases(["container"]).query().into(),
QueryBuilder::insert().nodes().values(&items).query().into(),
// If any query fails, all are rolled back
]).await?.1;
// Chain results: use ids from first query in second
client.db_exec_mut("owner", "db", &[
QueryBuilder::insert().edges().from("container").to(results[1].ids()).query().into(),
]).await?;Located in agdb_server/tests/ and route modules.
Example pattern:
#[tokio::test]
async fn test_endpoint_success() {
let api = setup_test_api().await;
let result = api.some_endpoint(...).await;
assert_eq!(result.status(), 200);
}
#[tokio::test]
async fn test_endpoint_unauthorized() {
let api = setup_test_api_without_token().await;
let result = api.some_endpoint(...).await;
assert_eq!(result.status(), 401);
}Test end-to-end workflows:
The agdb_server/openapi.json is the single source of truth for the API contract.
http://localhost:3000)Token bearer authenticationThe spec is regenerated when API routes, response types, or error codes change.
Command: cargo run -r -p agdb_ci
When adding support for new languages:
cargo run -r -p agdb_ciopenapi-generator-cli generate \
-i agdb_server/openapi.json \
-g <language> \
-o agdb_api/<language>/ \
--additional-properties packageName=agdb_apiexec vs exec_mut provides compile-time safety/cluster/... propagates operations; /user/... and /db/... are node-local (writes auto-replicated by Raft)exec_mut call run in a single transactionagdb_api/
src/
client.rs ← Hand-written Rust client (all methods)
api_types.rs ← Shared types (UserStatus, DbUser, ServerDatabase, etc.)
api_types/
config_impl.rs ← Server config struct and serialization
api_error.rs ← AgdbApiError struct
api_result.rs ← AgdbApiResult type alias
http_client.rs ← HttpClient trait + ReqwestClient implementation
lib.rs ← Crate root, re-exports
typescript/
src/ ← Generated TypeScript client
php/
lib/ ← Generated PHP client
lib/Model/ ← Schema models
agdb_server/
src/
api.rs ← utoipa OpenAPI schema registration
config.rs ← Config parsing
cluster.rs ← Cluster coordination (Raft integration)
cluster_log.rs ← Raft log persistence
raft.rs ← Generic Raft implementation
routes/
admin/
db.rs ← Admin database routes
user.rs ← Admin user routes
cluster.rs ← Cluster routes
db/ ← User database routes
user.rs ← User auth routes
openapi.json ← OpenAPI specification
tests/ ← Integration testsBefore adding new endpoints:
{braces} are documented?key=value are clearly namedToken auth) is specifiedcargo run -r -p agdb_ciagdb_api/src/client.rs© agnesoft, 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 .github/skills/agdb-api of agnesoft/agdb.
Open the folder on GitHubat commit 0d70098
Agdb API 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 |
|---|---|---|---|---|---|---|
| Agdb API this skillagnesoft/agdb | 143 | — | ~6k | Automated safety check: Pass | Apache-2.0 | |
| Auth Architecturemajiayu000/litellm-rs | 117 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Cdesktopcdesktop-ai/cdesktop | 157 | — | ~697 | Automated safety check: Pass | Apache-2.0 | |
| Golem Add HTTP Auth Rustgolemcloud/golem | 1.5k | — | ~565 | Automated safety check: Pass | Custom licence | |
| Rust Service Securityhashgraph-online/awesome-codex-plugins | 1.2k | — | ~921 | Automated safety check: Pass | MIT | |
| Azure Identity Rustaiskillstore/marketplace | 430 | 5 repos | ~952 | Automated safety check: Pass | None |
majiayu000/litellm-rs
LiteLLM-RS Authentication Architecture. An agent skill from majiayu000/litellm-rs.
cdesktop-ai/cdesktop
Operate the cdesktop coding-session environment — agent teams, session management, file conventions.
golemcloud/golem
Enabling authentication on Rust HTTP endpoints. An agent skill from golemcloud/golem.
hashgraph-online/awesome-codex-plugins
A skill your agent uses when adding, changing, testing, or reviewing security-sensitive Rust web service behavior, especially login flows, password hashing, credential checks, session cookies, flash…
aiskillstore/marketplace
Azure Identity SDK for Rust authentication. An agent skill from aiskillstore/marketplace.
microsoft/skills
Azure Identity library for Rust. An agent skill from microsoft/skills.
agnesoft/agdb
Build, review, and explain agdb queries accurately. An agent skill from agnesoft/agdb.
agnesoft/agdb
Install PHP and Composer, verify they are available in PATH, and confirm the PHP tooling required by this repository works.
Works with
Categories
Navigate agdb API structure, endpoints, authentication, and client libraries. Agdb API is an agent skill from agnesoft/agdb. Navigate agdb API structure, endpoints, authentication, and client libraries.
Agdb API fits situations like: building API clients; writing server tests; understanding endpoint behavior; working with API transpilations to other languages.
Run `npx skills add agnesoft/agdb --skill agdb-api -a claude-code`. Or copy the skill folder (.github/skills/agdb-api in agnesoft/agdb) into .claude/skills/agdb-api in your project. Claude Code loads it when a task matches its description.
Run `npx skills add agnesoft/agdb --skill agdb-api -a codex`. Or copy the skill folder (.github/skills/agdb-api in agnesoft/agdb) into .agents/skills/agdb-api 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 agnesoft/agdb --skill agdb-api -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/agdb-api, .gemini/skills/agdb-api, .github/skills/agdb-api and .opencode/skills/agdb-api in your project.
Going by SKILL.md and its folder, Agdb API needs the command-line tools its instructions call (cargo).
SKILL.md names 1 domain. As links in the text: packagist.org. 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.
Agdb API 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 6k tokens (SKILL.md is roughly 24k 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 Agdb API: Auth Architecture (majiayu000/litellm-rs, 117 stars), Cdesktop (cdesktop-ai/cdesktop, 157 stars), Golem Add HTTP Auth Rust (golemcloud/golem, 1.5k stars) and Rust Service Security (hashgraph-online/awesome-codex-plugins, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
agnesoft (a GitHub user) maintains it in agnesoft/agdb, which has 143 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 6, 2026.
Source: agnesoft/agdb on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.