l-blondy/up-fetch/upfetch

Claude Code and agent skill by l-blondy/up-fetch

Trust tier 3
  • community
  • ext:[{"type":"hook","description":"Pre/post lifecycle hooks"}]
Source check pending

Checking that the SKILL.md file is still in the repository.

Load this skill for any up-fetch task: `up(fetch, getDefaultOptions?)`, `upfetch(url, options?)`. Covers dynamic defaults, auth, request shaping, validation, error handling, lifecycle timing, and runtime caveats.

Install

npx vskill@latest install l-blondy/up-fetch/upfetch

Semi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard

SKILL.md

upfetch

Use up-fetch when you need a reusable fetch client with request-scoped defaults, automatic request/response shaping, runtime validation, retries, and lifecycle hooks.

Mental model

  • up(fetchFn, getDefaultOptions?) creates the reusable client.
  • getDefaultOptions(input, options, ctx) runs on every request.
  • upfetch(input, options?, ctx?) performs one request.
  • Keep SKILL.md high-level; load the relevant file under references/ for details.

Minimum pattern

ts
import { up } from 'up-fetch'
import { z } from 'zod'
export const upfetch = up(fetch, () => ({
baseUrl: 'https://api.example.com',
headers: {
Authorization: readToken() ? `Bearer ${readToken()}` : undefined,
},
timeout: 5000,
}))
const user = await upfetch('/users/1', {
schema: z.object({
id: z.number(),
name: z.string(),
}),
})

Workflow

  1. Start with client setup and dynamic defaults.
  2. If the request needs auth, params, body shaping, or merge semantics, read auth and request shaping.
  3. If the response contract matters, read validation, parsing, and errors.
  4. If retries, timeouts, or hook timing matter, read retries, timeouts, and lifecycle.
  5. If streaming or runtime quirks matter, read streaming and runtime caveats.

High-value rules

  • Pass a function as the second argument to up(), not a plain object.
  • Read auth and other mutable defaults inside that function so values stay fresh.
  • Use params and body instead of hand-serializing query strings or JSON.
  • Use schema when you need runtime trust; TypeScript generics alone do not validate payloads.
  • If you want error-as-value behavior, set reject: () => false before relying on parseResponse.
  • Prefer globalThis.fetch over imported undici.fetch.

References

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
1,391
Repository forks
18
Repository npm downloads, 7 days
11,758
7-day trend score
58

Stars and forks are for the whole GitHub repository, not this skill alone. Downloads are for the repository's npm package. Refreshed 18 Mar 2026, 7 months ago.

Extension points

  • hookPre/post lifecycle hooks

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/l-blondy/up-fetch/upfetch/badge)](https://verified-skill.com/skills/l-blondy/up-fetch/upfetch)

Something wrong with this skill or its page? Tell us.