Skip to main content

Vibing Code

Keq provides a set of Agent Skills that let AI coding assistants such as Claude Code, Codex, and Cursor work with Keq's API, middleware, and CLI workflows when writing HTTP requests. Describe the task, and get Keq code you can run.

Included Skills​

SkillPackagePurpose
keqkeqHTTP request building, middleware, flow control
keq-cli@keq-request/cliOpenAPI/Swagger code generation, mock server
keq-cache@keq-request/cacheRequest caching strategies
keq-exception@keq-request/exceptionStructured HTTP error handling
keq-url@keq-request/urlURL manipulation middleware
keq-headers@keq-request/headersHeader manipulation middleware
keq-nestjs@keq-request/nestjsNestJS dependency injection integration

Installation​

skills CLI​

Run this in your project root:

npx skills add keq-request/skills

The command lists the skills in the repository and lets you choose which skills to install and which AI assistant to target. Skills are installed into the current project.

To install a single skill:

npx skills add keq-request/skills --skill keq-cli -a claude-code

List installed skills:

npx skills list
note

The skills CLI requires Node.js >= 22.20. If the project uses an older Node.js version, use the Claude Code Marketplace below.

Claude Code Marketplace​

Register the marketplace in Claude Code:

/plugin marketplace add keq-request/skills

Then install the skills you need:

/plugin install keq@keq-request-skills
/plugin install keq-cli@keq-request-skills
/plugin install keq-cache@keq-request-skills
/plugin install keq-exception@keq-request-skills
/plugin install keq-url@keq-request-skills
/plugin install keq-headers@keq-request-skills
/plugin install keq-nestjs@keq-request-skills

Hand it to the AI​

Once installed, describe the task to your AI assistant. Here are a few prompts you can copy and the code the assistant writes.

One sentence, one typed request​

Build a cat adoption page with breed filtering for adoptable cats.

The assistant reads .keqrc, finds the catService endpoints, and writes:

import { getBreeds, getCats } from "./apis/cat_service"

async function loadAdoptionPage(breed?: string) {
  const breeds = await getBreeds()
  const cats = await getCats({ breed, status: "adoptable" })
  //                           ^^^^^ Parameter types come from OpenAPI; typos fail at compile time
  return { breeds, cats }
}

Request parameters and return values in the page are typed; a wrong field fails at compile time.

Add auth to a module​

Add an Authorization header to every catService request.
import { request as catServiceRequest } from "./apis/cat_service/request"

catServiceRequest.use(async (context, next) => {
  context.request.headers.set("Authorization", `Bearer ${getToken()}`)
  await next()
})

Every catService request carries the auth header without editing each call site.

Add retry and timeout to a call​

Retry the cat list request 3 times on failure and time out after 5 seconds.
const cats = await getCats({ breed })
  .retry(3, 1000)
  .timeout(5000)

Retries on network flakiness and aborts after 5 seconds.

Regenerate after an API change​

The backend updated GET /cats. Regenerate the catService code.

The assistant runs:

keq build --module catService --pathname /cats --method get

When the generated files update, parameter and return types in the page update with them. If the change is incompatible, every affected call site fails at compile time, and the assistant works through the errors one by one, leaving none behind.