Supabase Development and Debugging
supabase/agent-skills
General Supabase skill for database, auth, Edge Functions, Realtime and storage work, plus client libraries, migrations, security audits, debugging and reading logs.
Define routes, path parameters, validators, and nested routers with the @axiosleo/koapp Router class.
$ npx skills add AxiosLeo/node-koapp --skill koapp-router -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AxiosLeo/node-koapp koapp-router --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/AxiosLeo/node-koapp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/assets/skills/koapp-router .claude/skills/koapp-router && 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 "koapp-router" agent skill from https://github.com/AxiosLeo/node-koapp/tree/main/assets/skills/koapp-router into .claude/skills/koapp-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "koapp-router", 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/AxiosLeo/node-koapp/tree/main/assets/skills/koapp-routerType 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 AxiosLeo/node-koapp --skill koapp-router -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AxiosLeo/node-koapp koapp-router --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AxiosLeo/node-koapp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/assets/skills/koapp-router .agents/skills/koapp-router && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "koapp-router" agent skill from https://github.com/AxiosLeo/node-koapp/tree/main/assets/skills/koapp-router into .agents/skills/koapp-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "koapp-router", 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 AxiosLeo/node-koapp --skill koapp-router -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AxiosLeo/node-koapp koapp-router --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AxiosLeo/node-koapp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/assets/skills/koapp-router .cursor/skills/koapp-router && 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 "koapp-router" agent skill from https://github.com/AxiosLeo/node-koapp/tree/main/assets/skills/koapp-router into .cursor/skills/koapp-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "koapp-router", 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/AxiosLeo/node-koapp.git --path assets/skills/koapp-router--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 AxiosLeo/node-koapp --skill koapp-router -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AxiosLeo/node-koapp koapp-router --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AxiosLeo/node-koapp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/assets/skills/koapp-router .gemini/skills/koapp-router && 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 "koapp-router" agent skill from https://github.com/AxiosLeo/node-koapp/tree/main/assets/skills/koapp-router into .gemini/skills/koapp-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "koapp-router", 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 AxiosLeo/node-koapp koapp-routerInstalls 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 AxiosLeo/node-koapp --skill koapp-router -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AxiosLeo/node-koapp.git skills-src && mkdir -p .github/skills && cp -r skills-src/assets/skills/koapp-router .github/skills/koapp-router && 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 "koapp-router" agent skill from https://github.com/AxiosLeo/node-koapp/tree/main/assets/skills/koapp-router into .github/skills/koapp-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "koapp-router", 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 AxiosLeo/node-koapp --skill koapp-router -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AxiosLeo/node-koapp koapp-router --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AxiosLeo/node-koapp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/assets/skills/koapp-router .opencode/skills/koapp-router && 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 "koapp-router" agent skill from https://github.com/AxiosLeo/node-koapp/tree/main/assets/skills/koapp-router into .opencode/skills/koapp-router/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "koapp-router", 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.
koapp-routerDefine routes, path parameters, validators, and nested routers with the @axiosleo/koapp Router class.
Koapp Router is an agent skill from AxiosLeo/node-koapp. Define routes, path parameters, validators, and nested routers with the @axiosleo/koapp Router class. Use when declaring HTTP/WebSocket/TCP routes in koapp, adding path params like /users/{:id}, composing nested routers, attaching per-route middlewares or after-handlers, validating params/query/body with validatorjs rules, or using shortcut helpers (get/post/put/patch/delete/any).
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `examples.md`).
It sits in Backend & APIs, covering Realtime and WebSockets. The repository describes itself as: About Design for quickly developing OpenAPI applications using Node.js. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 102955d. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom 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.
Koapp Router loads about 1.6k tokens when it runs. Until then it costs about 99 tokens; SKILL.md has 484 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 AxiosLeo/node-koapp at commit 102955d, republished under its MIT licence (© AxiosLeo). 484 words, ~1,610 tokens.
.claude/skills/koapp-router/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Source: src/router.js.
Router is the single route-definition primitive for all three application
types (KoaApplication, SocketApplication, WebSocketApplication). A
router can be flat or a tree of sub-routers, and it carries middlewares,
handlers, after-handlers, and validators.
const { Router } = require('@axiosleo/koapp');
const router = new Router(prefix, options);| Arg | Type | Default | Notes |
|---|---|---|---|
prefix | string | '' | Path prefix like /api/v1 or /users/{:id} |
options.method | string | '' | HTTP method. Use 'any' for all methods. Empty string disables the route |
options.handlers | Function[] | [] | Async handler functions async (context) => { ... } |
options.middlewares | Function[] | [] | Run before handlers |
options.afters | Function[] | [] | Run after handlers (even on thrown response) |
options.validators | object | {} | { params, query, body } - each { rules, messages? } |
Any unknown keys on options are kept on the router instance as-is.
Use {:name} for path parameters. Legacy :name also works but {:name}
is preferred:
new Router('/users/{:id}/posts/{:postId}', {
method: 'GET',
handlers: [async (context) => {
const { id, postId } = context.params;
}]
});Wildcards:
/* - matches one segment (captured as params.<next> if named)/** - matches one segment without capture/*** - matches any remaining path, ideal for fallback handlersEach method shortcut creates a nested sub-router:
const root = new Router('/api');
root.get('/users', listUsers);
root.post('/users', createUser, {
body: { rules: { name: 'required|string', email: 'required|email' } }
});
root.put('/users/{:id}', updateUser);
root.patch('/users/{:id}', patchUser);
root.delete('/users/{:id}', deleteUser);
root.any('/health', healthcheck);Under the hood every shortcut delegates to router.push(method, prefix, handler, validator).
root.push('copy', '/resources/{:id}', async (context) => { ... });The framework uppercases and stores the method; match it by sending the same method string.
root.push('get|post', '/multi', async (context) => {
// handles both GET and POST
});const api = new Router('/api');
const v1 = new Router('/v1');
const users = new Router('/users');
users.get('/{:id}', async (context) => { ... });
v1.add(users); // /api/v1/users/{:id}
api.add(v1);router.add(...subrouters) attaches other Router instances. If the first
argument is a string prefix, sub-routers are added under it:
api.add('/admin', adminUserRouter, adminRoleRouter);The helper router.new(prefix, options) creates and mounts a sub-router
in one call:
api.new('/internal', { middlewares: [authMiddleware] });const root = new Router(null, {
middlewares: [
async (context) => {
console.log(`[${context.method}] ${context.pathinfo}`);
}
],
afters: [
async (context) => {
console.log('response:', context.response);
}
]
});Validation uses validatorjs rules.
root.new('/items/{:id}', {
method: 'PUT',
handlers: [updateItem],
validators: {
params: {
rules: { id: 'required|integer' }
},
query: {
rules: { include: 'in:profile,settings' }
},
body: {
rules: {
name: 'required|string',
price: 'required|numeric|min:0'
},
messages: {
required: 'The :attribute field is required.'
}
}
}
});On failure the framework throws HttpError(400, <first-error-message>)
which the workflow converts into a 400 response.
Common validatorjs rules: required, string, integer, numeric, email,
url, min:N, max:N, in:a,b,c, regex:/pattern/, boolean, array.
To handle anything that did not match:
root.any('/***', async (context) => {
result('Not Found', 404, { 'Content-Type': 'text/plain' });
});'/***' matches any remaining path. The framework falls back to the
deepest matching /*** route when no exact match is found.
For a request PUT /users/42:
* / ** / ***method list includes the request method (or ANY)/*** fallbackmethod: '' (or unset) on a router.push creates a route that
matches no HTTP method - requests fall through to fallback handlers.
Always use 'any' or a concrete method unless you know you want this.new Router('/') and new Router('') behave differently; prefer null
or '' for the root.{:name} inside route segments - {:name} must
be the entire segment, not a substring (/a-{:x} does not work).© AxiosLeo, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in assets/skills/koapp-router of AxiosLeo/node-koapp.
Open the folder on GitHubat commit 102955d
Koapp Router 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 |
|---|---|---|---|---|---|---|
| Koapp Router this skillAxiosLeo/node-koapp | 145 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Supabase Development and Debuggingsupabase/agent-skills | 2.7k | 3 repos | ~3.6k | Automated safety check: Pass | MIT | |
| Use Yaakmountain-loop/yaak | 19k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Gemini Live API Devgoogle-gemini/gemini-skills | 4.3k | — | ~4.6k | Automated safety check: Pass | Apache-2.0 | |
| Broker Integrationmarketcalls/openalgo | 2.8k | — | ~4.7k | Automated safety check: Notes | AGPL-3.0 | |
| Trigger.dev Realtimepapermark/papermark | 9.2k | — | ~1.7k | Automated safety check: Pass | Custom licence |
supabase/agent-skills
General Supabase skill for database, auth, Edge Functions, Realtime and storage work, plus client libraries, migrations, security audits, debugging and reading logs.
mountain-loop/yaak
A skill your agent uses when the user mentions Yaak, a Yaak workspace, or the yaak command, or asks to call, hit, or smoke test HTTP/REST endpoints, save or organize API requests for reuse or manual…
google-gemini/gemini-skills
A skill your agent uses when building real-time, bidirectional streaming applications with the Gemini Live API, or migrating legacy Live models (2.0/2.5/3.1) to Gemini 3.8 Live.
marketcalls/openalgo
Integrate a new Indian broker into OpenAlgo, or modify an existing broker plugin.
papermark/papermark
Shows how to subscribe to Trigger.dev task runs from the backend and from React for progress indicators, live dashboards, AI response streams and approval waits.
aoyunyang/spider-king-skill
Pure-web protocol reverse skill: turn hostile browser clients into browser-free Python collectors.
AxiosLeo/node-koapp
Overview of the @axiosleo/koapp framework - a Koa-based web, TCP socket, and WebSocket framework for Node.js.
AxiosLeo/node-koapp
Choose and configure the right @axiosleo/koapp Application class - KoaApplication for HTTP, SocketApplication for TCP sockets, WebSocketApplication for WebSocket.
AxiosLeo/node-koapp
Organize route handlers into reusable classes by extending the @axiosleo/koapp Controller base class.
AxiosLeo/node-koapp
Validate and serialize structured data with the @axiosleo/koapp Model class powered by validatorjs.
AxiosLeo/node-koapp
Send structured responses from @axiosleo/koapp handlers using success/failed/result/response/error helpers and HttpError/HttpResponse classes.
AxiosLeo/node-koapp
Stream Server-Sent Events (SSE) from a @axiosleo/koapp Koa route using the KoaSSEMiddleware.
Categories
Define routes, path parameters, validators, and nested routers with the @axiosleo/koapp Router class. Koapp Router is an agent skill from AxiosLeo/node-koapp. Define routes, path parameters, validators, and nested routers with the @axiosleo/koapp Router class.
Koapp Router fits situations like: declaring HTTP/WebSocket/TCP routes in koapp; adding path params like /users/{:id}; composing nested routers; attaching per-route middlewares.
Run `npx skills add AxiosLeo/node-koapp --skill koapp-router -a claude-code`. Or copy the skill folder (assets/skills/koapp-router in AxiosLeo/node-koapp) into .claude/skills/koapp-router in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AxiosLeo/node-koapp --skill koapp-router -a codex`. Or copy the skill folder (assets/skills/koapp-router in AxiosLeo/node-koapp) into .agents/skills/koapp-router 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 AxiosLeo/node-koapp --skill koapp-router -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/koapp-router, .gemini/skills/koapp-router, .github/skills/koapp-router and .opencode/skills/koapp-router in your project.
SKILL.md names no scripts, command-line tools or credentials: Koapp Router is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: github.com. 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.
Koapp Router is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.4k 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 Koapp Router: Supabase Development and Debugging (supabase/agent-skills, 2.7k stars), Use Yaak (mountain-loop/yaak, 19k stars), Gemini Live API Dev (google-gemini/gemini-skills, 4.3k stars) and Broker Integration (marketcalls/openalgo, 2.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AxiosLeo (a GitHub user) maintains it in AxiosLeo/node-koapp, which has 145 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on September 16, 2026.
Source: AxiosLeo/node-koapp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.