Agent skill

Graphic Gif

by Varnan-Tech in Varnan-Tech/opendirectory

Creates animated looping GIFs from CSS animations (default) or AI image-to-video.

MITAuto-check passedMedia & Creative

Install Graphic Gif

skills CLI
$ npx skills add Varnan-Tech/opendirectory --skill graphic-gif -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Varnan-Tech/opendirectory graphic-gif --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Varnan-Tech/opendirectory.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/graphic-gif .claude/skills/graphic-gif && rm -rf skills-src

Use ~/.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/

Facts

Skill name
graphic-gif
GitHub stars
674
Token cost
~3k tokens
SKILL.md length
1,184 words
Files
7 (incl. scripts, references)
Skills in repo
61
Repo updated
First seen
Licence
MIT

At a glance

Creates animated looping GIFs from CSS animations (default) or AI image-to-video.

  • Works in 6 steps: Intake → Internal Architecture (never shown to… → HTML Generation (css-animated path) → …
  • User says create an animated gif
  • SKILL.md covers Critical Rules (read before…, Step 1: Intake, Step 2: Internal Architecture… and Step 3: HTML Generation…, plus 5 more sections
  • Runs JavaScript and Shell scripts from its folder; calls ffmpeg, bash and node; reaches api.klingai.com; needs KLING_API_KEY

What it does

Graphic Gif is an agent skill from Varnan-Tech/opendirectory. Creates animated looping GIFs from CSS animations (default) or AI image-to-video. 800×800px default, 6 animation types, 4 style presets. Trigger when user says "create an animated gif", "make a looping gif", "animated banner", "CSS animation gif", "social media animation", "make this loop", "animated graphic", or "motion graphic".

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including scripts and reference files (for example `README.md`, `evals/evals.json` and `references/animation-library.md`). Compatibility notes: ["claude-code","gemini-cli","github-copilot"]

It sits in Media & Creative, covering Web animation and motion, Social media graphics and Image generation. The repository describes itself as: AI Agent Skills built for Founders who hate Marketing. The licence is MIT.

When your agent uses it

  • User says create an animated gif
  • Make a looping gif
  • Animated banner
  • CSS animation gif

Example prompts

  • “create an animated gif”
  • “make a looping gif”
  • “animated banner”
  • “/graphic-gif”

Requirements

  • Node.js
  • A Bash shell
  • A credential in KLING_API_KEY
  • Compatibility (from SKILL.md): ["claude-code","gemini-cli","github-copilot"]

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Intake
  2. Internal Architecture (never shown to user)
  3. HTML Generation (css-animated path)
  4. Self-QA (fix every failure before Step 5)
  5. Export
  6. Output Summary

What it can do on your machine

Read from SKILL.md and the folder at commit 62e437a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 2 files in scripts/ (JavaScript and Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • ffmpeg
    • bash
    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.klingai.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • KLING_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    ["claude-code","gemini-cli","github-copilot"]

    From compatibility in the SKILL.md frontmatter.

Context cost

Graphic Gif loads about 3k tokens when it runs, and up to ~7.8k if it reads all its reference files. Until then it costs about 86 tokens; SKILL.md has 1,184 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~86
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.8k

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.

Safety

Auto-check passed

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); the scripts in this folder are not scanned.

SKILL.md

The full file from Varnan-Tech/opendirectory at commit 62e437a, republished under its MIT licence (© Varnan-Tech). 1,184 words, ~3,041 tokens.

Download SKILL.mdSave it as .claude/skills/graphic-gif/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
graphic-gif
description
Creates animated looping GIFs from CSS animations (default) or AI image-to-video. 800×800px default, 6 animation types, 4 style presets. Trigger when user says "create an animated gif", "make a looping gif", "animated banner", "CSS animation gif", "social media animation", "make this loop", "animated graphic", or "motion graphic".
compatibility
["claude-code","gemini-cli","github-copilot"]
author
OpenDirectory
version
1.0.0

graphic-gif

Generates an animated looping GIF from CSS animations or an AI image-to-video API. Output: animation.gif.

Unlike every other graphic- skill that outputs a static PNG or PDF, this skill outputs an animated .gif. Uses CSS @keyframes animations captured frame-by-frame via Playwright and the Web Animations API (Option A, default), or an AI image-to-video pipeline via Kling (Option B).


Critical Rules (read before every generation)

  1. Default is css-animated. Never use ai-generated unless explicitly requested.
  2. Canvas is 800×800px square. All clamp() values computed at 800px (1vw = 8px).
  3. Single self-contained HTML. All CSS inline in <style>. Font CDN <link> only external dependency.
  4. Never dump HTML in chat. Save to file, show summary only.
  5. Frame capture uses Web Animations API seeking. NOT setTimeout loops, NOT animation-delay tricks.
  6. Exact frame count: Math.floor(duration_seconds * fps) frames. The frame at t=duration_ms MUST NOT be captured — it duplicates t=0 and causes a visible stutter at the loop point.
  7. No placeholder boxes. CSS-generated visuals only. No "image goes here" elements.
  8. Simpler palettes = smaller files. Use: clean-slate, terminal, electric-burst, brutalist.
  9. No animation-delay for stagger. Bake stagger into @keyframes percentages — frame seeking handles timing.
  10. Commit to design direction before writing CSS. Tone, signature element, motion style, unforgettable detail — all decided before first line of code.

Step 1: Intake

Required: prompt (content description AND motion brief)

Optional with defaults:

ParameterDefaultOptions
animation_typecss-animatedcss-animated / ai-generated
duration3.0seconds
fps12frames per second
looptruetrue / false
styleclean-slateclean-slate / terminal / electric-burst / brutalist
dimensions800x800WxH in pixels
optimizationbalancedquality / balanced / filesize

If prompt is missing or lacks motion description, ask exactly:

"What should the GIF show? Describe the content AND the motion (e.g., 'Stats count up: 73% of buyers read 3+ pieces of content before purchase. Typewriter effect, one character at a time. Style: terminal. 3 seconds, 12fps.')

Key settings (all optional, defaults shown):

  • animation_type: css-animated (default) or ai-generated
  • duration: 3.0 seconds
  • fps: 12
  • loop: true
  • style: clean-slate (options: clean-slate / terminal / electric-burst / brutalist)
  • dimensions: 800x800
  • optimization: balanced (options: quality / balanced / filesize)"

If all required info is present → skip directly to Step 2.


Step 2: Internal Architecture (never shown to user)

For css-animated:

  1. Choose animation type from: fade-in, slide-in, typewriter, counter, pulse, loop-scroll
  2. Read references/animation-library.md — find the chosen type's full HTML/CSS spec
  3. Read references/style-presets.md — load the chosen style's CSS token block
  4. Calculate frame count: Math.floor(duration_seconds * fps) — write this number down
  5. Commit to design direction:
DecisionDerive from
ToneEmotional register for audience (mechanical / warm / electric / professional)
Signature elementONE visual device used consistently (cursor blink, ghost number, scan-line overlay, accent border)
Motion styleEase curve philosophy for this type (spring / linear / step / ease-in-out)
Unforgettable detailThe ONE thing a viewer will remember about this GIF

For ai-generated:

  1. Generate base still frame HTML (poster-style layout for the canvas)
  2. Export as PNG using screenshot
  3. Call Kling API: POST https://api.klingai.com/v1/videos/image2video with image_url and prompt describing the motion
  4. Poll for job completion
  5. Download video → convert to GIF with ffmpeg:
    bash
    # Two-pass palette for best color quality
    ffmpeg -i input.mp4 -vf "fps=12,scale=800:800:flags=lanczos,palettegen=stats_mode=diff" palette.png
    ffmpeg -i input.mp4 -i palette.png -vf "fps=12,scale=800:800:flags=lanczos,paletteuse=dither=bayer:bayer_scale=5" output.gif

Step 3: HTML Generation (css-animated path)

Read references/animation-library.md and references/style-presets.md before generating.

Canvas base — required on every GIF:

css
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

body {
  width: 800px;
  height: 800px;
  overflow: hidden;
  background: var(--bg);
  font-family: var(--font-body);
}

.canvas {
  width: 800px;
  height: 800px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

Animation rules:

  • animation-fill-mode: forwards (or both) on ALL animated elements
  • Timing functions per type:
    • typewriter → steps(N, end) where N = exact character count
    • counter → linear
    • fade-in → cubic-bezier(0.22, 1, 0.36, 1) (ease-out)
    • slide-in → cubic-bezier(0.34, 1.56, 0.64, 1) (spring overshoot)
    • pulse → ease-in-out with animation-iteration-count: infinite
    • loop-scroll → linear with animation-iteration-count: infinite
  • For one-shot animations (fade-in, slide-in, typewriter, counter): animation-iteration-count: 1 — looping happens at GIF level
  • No animation-delay — stagger is baked into @keyframes percentages

Typewriter N calculation: Count every character including spaces, punctuation, numbers:

  • "73% of buyers" = 14 characters → steps(14, end)
  • "Hello, World!" = 13 characters → steps(13, end)

Counter CSS @property (required for counter type):

css
@property --num {
  syntax: '<integer>';
  inherits: false;
  initial-value: 0;
}
.counter {
  animation: countUp var(--duration) linear forwards;
  counter-reset: num var(--num);
}
.counter::after { content: counter(num); }
@keyframes countUp {
  from { --num: 0; }
  to   { --num: var(--target); }
}

Loop-scroll: content MUST be duplicated:

html
<!-- 4 original items + 4 duplicate items -->
<div class="ticker-track" style="--item-count: 4;">
  [item1][item2][item3][item4][item1][item2][item3][item4]
</div>

translateX(0 → -50%) with linear infinite.

Design quality rules (from commit in Step 2):

  • Named signature element MUST be present in CSS/HTML (not just described)
  • Typography: weight contrast minimum 2:1 (e.g., 700 vs 400) between display and supporting text
  • Background: no pure white #fff for dark styles — use the preset's exact --bg value
  • For terminal style: add scan-line overlay ::after with repeating-linear-gradient at opacity: 0.03
  • For brutalist: thick border 4px solid #000 or 4px solid var(--accent) on key element
  • Unforgettable detail: if it requires an extra element — add it now

Show full SKILL.md (500 more words)Show less

Step 4: Self-QA (fix every failure before Step 5)

Canvas:

  • body and .canvas exactly 800×800px (or specified dimensions)
  • overflow: hidden on both body and .canvas
  • No elements overflowing the canvas boundary

Animations:

  • NO animation-delay anywhere — stagger is in @keyframes percentages
  • All animations start at t=0 (Web Animations API will seek from there)
  • animation-fill-mode: forwards or both on all animated elements
  • One-shot animations: animation-iteration-count: 1
  • Infinite animations (pulse, loop-scroll): animation-iteration-count: infinite

Type-specific checks:

  • Typewriter: N in steps(N, end) = exact character count of text string
  • Counter: @property --num declared with syntax: '<integer>' and initial-value: 0
  • Counter: counter-reset: num var(--num) and ::after { content: counter(num) }
  • Loop-scroll: content duplicated exactly once in HTML

Design:

  • No placeholder boxes
  • Style preset tokens applied from references/style-presets.md — no free-floating hex colors
  • Signature element named in Step 2 is actually present in the HTML/CSS
  • Unforgettable detail from Step 2 is actually implemented
  • Font CDN <link> present for chosen style's font

Step 5: Export

Determine slug from prompt (kebab-case, ≤30 chars). Create output directory:

bash
mkdir -p [slug]

Save HTML:

[slug]/animation.html

Open in browser for quick visual check:

bash
open [slug]/animation.html

Run export script (replace [skill-root] with the actual path to this skill):

bash
bash [skill-root]/scripts/export-gif.sh \
  [slug]/animation.html \
  [slug]/animation.gif \
  --duration [duration] \
  --fps [fps] \
  [--no-loop if loop=false] \
  --optimization [optimization] \
  --width [W] \
  --height [H]

The script:

  1. Installs gifenc, sharp (or jimp), and playwright in a temp directory
  2. Downloads Chromium if not cached
  3. Runs capture-and-encode.mjs — pauses animations, seeks each frame, screenshots, assembles GIF
  4. Runs gifsicle optimization pass if available
  5. Reports file size and opens result

If export script not found at [skill-root]/scripts/export-gif.sh, check that the skill was installed with its scripts/ folder intact.


Step 6: Output Summary

Show after successful export:

## GIF: [1-line description]
Date: [YYYY-MM-DD] | Style: [style] | Animation: [type] | [duration]s @ [fps]fps
Dimensions: [WxH] | Frames: [N] | Loop: [true/false]

Files
  Source:   [slug]/animation.html
  Output:   [slug]/animation.gif
  Size:     [X] KB

Checklist
- [ ] Preview loops cleanly at start/end point (no stutter)
- [ ] Text legible at intended display size
- [ ] File size appropriate: email <500KB / social <3MB

AI-Generated Path (Option B)

Only use when animation_type: ai-generated is explicitly specified.

Requirements:

  • Kling API key in environment: KLING_API_KEY (66 free credits/day, no credit card for free tier)
  • ffmpeg installed locally for video→GIF conversion

Workflow:

  1. Generate a base still frame HTML matching the prompt (poster/graphic style at specified dimensions)
  2. Export still frame as PNG:
    bash
    # Quick screenshot via Playwright
    node -e "
      const { chromium } = require('playwright');
      (async () => {
        const browser = await chromium.launch();
        const page = await browser.newPage({ viewport: { width: W, height: H } });
        await page.goto('file://[slug]/animation.html');
        await page.screenshot({ path: '[slug]/base-frame.png' });
        await browser.close();
      })();
    "
  3. Upload to Kling image-to-video endpoint
  4. Convert result to GIF with ffmpeg two-pass palette
  5. Apply gifsicle optimization

When Kling is unavailable: Fall back to css-animated with a note to the user: "AI generation requires a Kling API key (KLING_API_KEY). Falling back to css-animated. Set the key to enable AI generation."


Prompt Tips (show when user asks for guidance)

"Describe motion, not just content. 'Stats count up one by one' beats 'show stats'."

"Keep it simple for file size. 1–3 animated elements and a solid background."

"Think in loops. The animation should flow invisibly from end back to start."

"Specify the animation type explicitly. typewriter and counter are the most effective for social."

✅ Good: "Create an animated GIF, css-animated, typewriter effect. Text: '73% of B2B buyers read 3+ pieces of content before contacting sales.' Each character types out one at a time. Style: terminal. 3 seconds, 12fps, loop=true."

❌ Bad: "make an animated gif of marketing tips"

© Varnan-Tech, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (scripts, references) in skills/graphic-gif of Varnan-Tech/opendirectory.

  • SKILL.md
  • README.md
  • evals/evals.json
  • references/animation-library.md
  • references/style-presets.md
  • scripts/capture-and-encode.mjs
  • scripts/export-gif.sh

Open the folder on GitHubat commit 62e437a

Compare with similar skills

Graphic Gif 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.

Graphic Gif compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Graphic Gif this skillVarnan-Tech/opendirectory674—~3kAutomated safety check: PassMIT
Yuv Pilothoodini/ai-agents-skills282—~4.7kAutomated safety check: PassNone
HyperFrames Animationheygen-com/hyperframes60k3 repos~2.1kAutomated safety check: PassApache-2.0
Slack GIF Creatoranthropics/skills180k29 repos~2kAutomated safety check: PassApache-2.0
Web Asset Generatoralonw0/web-asset-generator5141 repos~6.6kAutomated safety check: PassMIT
SN Motion HTMLOpenSenseNova/SenseNova-Skills5.7k—~2.2kAutomated safety check: NotesMIT

Similar skills

  • Yuv Pilot

    hoodini/ai-agents-skills

    Top-of-pyramid orchestrator for Yuval Avidani's YUV.AI brand work.

    282 GitHub stars~4.7k tokensUpdated 3 mo ago
    Frontend & DesignAuto-check passed
  • HyperFrames Animation

    heygen-com/hyperframes

    Collects motion rules, scene blueprints, transitions and runtime adapters for HyperFrames video compositions, with GSAP as the default animation runtime.

    60k GitHub starsUsed in 3 repos~2.1k tokens
    Media & CreativeAuto-check passed
  • Slack GIF Creator

    anthropics/skills

    Official

    Provides Slack size and frame limits, Python animation helpers and validators for building animated GIFs sized for emoji and messages.

    180k GitHub starsUsed in 29 repos~2k tokens
    Media & CreativeAuto-check passed
  • Web Asset Generator

    alonw0/web-asset-generator

    Generate web assets including favicons, app icons (PWA), and social media meta images (Open Graph) for Facebook, Twitter, WhatsApp, and LinkedIn.

    514 GitHub starsUsed in 1 repo~6.6k tokens
    Media & CreativeAuto-check passed
  • SN Motion HTML

    OpenSenseNova/SenseNova-Skills

    Builds HTML stories where one continuous camera journey advances with page progress, using researched structure, AI stills, Seedance video clips and browser QA.

    5.7k GitHub stars~2.2k tokensUpdated yesterday
    Media & CreativeAuto-check: notes
  • SEO Image Generator

    AgriciDaniel/claude-seo

    Generates Open Graph previews, blog hero images, product photos and infographics for SEO use through Gemini image tools and the banana extension.

    19k GitHub starsUsed in 2 repos~2.1k tokens
    Media & CreativeAuto-check passed

More from Varnan-Tech/opendirectory

All 61 skills in this repo
  • Graphic Ebook

    Varnan-Tech/opendirectory

    Creates professionally designed B2B SaaS e-books in HTML + CSS, exported as print-ready PDF.

    674 GitHub stars~5k tokensUpdated 1 mo ago
    Auto-check passed
  • Docs From Code

    Varnan-Tech/opendirectory

    Generates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture.

    674 GitHub stars~1.8k tokensUpdated 1 mo ago
    Auto-check passed
  • Graphic Chart

    Varnan-Tech/opendirectory

    Generates data visualization charts (bar, line, area, pie, doughnut, scatter, radar, treemap) as PNG using Apache ECharts v6.

    674 GitHub stars~2.9k tokensUpdated 1 mo ago
    Auto-check passed
  • Map Your Market

    Varnan-Tech/opendirectory

    Given a product description, category keywords, or competitor names (any combination), searches Reddit, Hacker News, GitHub Issues, G2, and Google Trends for the real pains your market experiences…

    674 GitHub stars~4.3k tokensUpdated 1 mo ago
    Auto-check passed
  • Newsletter Digest

    Varnan-Tech/opendirectory

    Aggregates RSS feeds from the past week, synthesizes the top stories using Gemini, and publishes a newsletter digest to Ghost CMS.

    674 GitHub stars~1.9k tokensUpdated 1 mo ago
    Auto-check passed
  • Podcast Transcript Fetcher

    Varnan-Tech/opendirectory

    A skill your agent uses when fetching, searching, or analyzing transcripts from Lenny's Podcast, Dwarkesh Podcast, Cheeky Pint, 20VC, or A16z Podcast.

    674 GitHub stars~1.9k tokensUpdated 1 mo ago
    Auto-check: notes

Questions about Graphic Gif

What does Graphic Gif do?

Creates animated looping GIFs from CSS animations (default) or AI image-to-video. Graphic Gif is an agent skill from Varnan-Tech/opendirectory. Creates animated looping GIFs from CSS animations (default) or AI image-to-video.

When should I use Graphic Gif?

Graphic Gif fits situations like: user says create an animated gif; make a looping gif; animated banner; CSS animation gif.

How do I install Graphic Gif in Claude Code?

Run `npx skills add Varnan-Tech/opendirectory --skill graphic-gif -a claude-code`. Or copy the skill folder (skills/graphic-gif in Varnan-Tech/opendirectory) into .claude/skills/graphic-gif in your project. Claude Code loads it when a task matches its description.

How do I install Graphic Gif in Codex?

Run `npx skills add Varnan-Tech/opendirectory --skill graphic-gif -a codex`. Or copy the skill folder (skills/graphic-gif in Varnan-Tech/opendirectory) into .agents/skills/graphic-gif in your project. Codex loads it when a task matches its description.

Can I use Graphic Gif in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Varnan-Tech/opendirectory --skill graphic-gif -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/graphic-gif, .gemini/skills/graphic-gif, .github/skills/graphic-gif and .opencode/skills/graphic-gif in your project.

What does Graphic Gif need to run?

Going by SKILL.md and its folder, Graphic Gif needs JavaScript and a shell for the scripts in its folder, the command-line tools its instructions call (ffmpeg, bash and node) and credentials named KLING_API_KEY. Our summary lists: Node.js; A Bash shell; A credential in KLING_API_KEY. Compatibility (from SKILL.md): ["claude-code","gemini-cli","github-copilot"].

Does Graphic Gif access the network?

SKILL.md names 1 domain. In commands or code: api.klingai.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Graphic Gif safe to install?

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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Graphic Gif use?

Graphic Gif is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Graphic Gif use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.8k tokens, read only when the agent opens those files.

What are the alternatives to Graphic Gif?

Skills that share tags, products or a category with Graphic Gif: Yuv Pilot (hoodini/ai-agents-skills, 282 stars), HyperFrames Animation (heygen-com/hyperframes, 60k stars), Slack GIF Creator (anthropics/skills, 180k stars) and Web Asset Generator (alonw0/web-asset-generator, 514 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Graphic Gif?

Varnan-Tech (a GitHub organization) maintains it in Varnan-Tech/opendirectory, which has 674 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on August 16, 2026.

Source: Varnan-Tech/opendirectory on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.