Agent skill

Media Search

by taracodlabs in taracodlabs/aiden

Find and play music/videos via youtubesearch + browsernavigate

Apache-2.0Auto-check passed

Install Media Search

skills CLI
$ npx skills add taracodlabs/aiden --skill media-search -a claude-code

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

GitHub CLI
$ gh skill install taracodlabs/aiden media-search --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/taracodlabs/aiden.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/media-search .claude/skills/media-search && 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
media-search
GitHub stars
852
Token cost
~4.4k tokens
SKILL.md length
2,439 words
Files
1
Skills in repo
63
Repo updated
First seen
Licence
Apache-2.0

At a glance

Find and play music/videos via youtubesearch + browsernavigate

  • Works in 2 steps: Navigate, interact and verify → Report the observed result
  • SKILL.md covers REQUIRED tool sequence (read…, When to use, How to use and Examples, plus 2 more sections
  • Reaches youtube.com

What it does

Media Search is an agent skill from taracodlabs/aiden. Find and play music/videos via youtubesearch + browsernavigate

Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with YouTube. The repository describes itself as: Aiden — an autonomous AI agent and work engine built solo. It can operate your browser, terminal, files, apps, APIs, skills and tools, remember context, recover from failures… The licence is Apache-2.0.

Example prompts

  • “/media-search”

Workflow steps

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

  1. Navigate, interact and verify
  2. Report the observed result

What it can do on your machine

Read from SKILL.md and the folder at commit 3704204. 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

    No scripts in the folder and no shell commands in SKILL.md.

    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:

    • youtube.com

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

  • Credentials

    Names no API keys, tokens, secrets or passwords.

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

Context cost

Media Search loads about 4.4k tokens when it runs. Until then it costs about 19 tokens; SKILL.md has 2,439 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~19
When it runs · the whole SKILL.md, loaded when a task matches
~4.4k

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from taracodlabs/aiden at commit 3704204, republished under its Apache-2.0 licence (© taracodlabs). 2,439 words, ~4,383 tokens.

Download SKILL.mdSave it as .claude/skills/media-search/SKILL.md (or your agent's skills folder).
name
media-search
description
Find and play music/videos via youtube_search + browser_navigate
category
media
version
1.3.3
origin
aiden
license
Apache-2.0
tags
music, video, youtube, play, song, listen, media, autoplay
required_tools
youtube_search, browser_navigate

Media Search & Play

Resolve "play X" / "listen to X" / "find me a song" requests by chaining web_search (optional, for fuzzy intent) → youtube_search (REQUIRED, returns real watch URLs) → browser_navigate (REQUIRED, must use a URL that came back from youtube_search). Keep navigation, interaction and Evidence inside the owned Browser Session. Navigation alone does not prove playback.

<execute_action> The user's request authorizes the requested media action, subject to the runtime's approval and browser policy. Use the actual available controlled browser tools. External open_url launching is unavailable inside durable Jobs and is not a recovery path.

After navigation, inspect the player. If playback has not started, use the observed play control through an admitted browser action. Verify observable player state (for example paused=false and advancing currentTime, when supported) before claiming playback. A screenshot or loaded watch URL alone does not establish that audio is playing.

Do not bypass approval, login, CAPTCHA, browser policy, or autoplay restrictions. If a supported action or verification is unavailable, report that exact limitation. Never claim success from an attempted action. </execute_action>

<selection_rule> How strict you should be about picking a candidate from youtube_search depends on how specific the user's query is.

VAGUE query — no specific song or artist named. Examples: "play me a popular song", "play me a hindi song", "play something upbeat", "put on some jazz", "play a sad song".

→ Walk the youtube_search candidates top-down and pick the first one whose title does NOT match any of the anti-patterns below. That is the answer. Do not score candidates further; do not look for "the most official one"; do not compare view counts. The first non-anti-pattern wins.

Anti-pattern keywords (match case-insensitively against title):

  • "reaction", "reacting to", "react to", "first time hearing"
  • "they know every word", "knows every word"
  • "lyric video", "lyrics video"
  • "cover", "covered by", "cover by"
  • "compilation", "best of", "mashup", "mix"
  • "livestream", "live stream", "LIVE", "24/7", "stream"
  • "shorts" (the #shorts format)
  • "fan edit", "fan made", "fanmade", "edit by"
  • "version of", "remake", "tribute"
  • "1 hour", "10 hours", "loop", "extended"

Why this matters: vague queries on YouTube often surface reaction clips or lyric videos near the top because they pull engagement. The user said "play a popular song" — they want to hear the song, not someone reacting to it. The anti-pattern filter is what keeps the vague rule from opening "the way they know every word! 🧡" instead of the actual track.

If every candidate in the top 5 matches at least one anti-pattern, that is a legitimate fallback: take the honest-fallback path (results page).

SPECIFIC query — the user named a song or artist. Examples: "play Bohemian Rhapsody", "play Despacito", "play Tum Hi Ho", "play Sabrina Carpenter".

→ Require a substring match between the candidate's title field and either the song title (preferred) or the artist name (acceptable when artist-only was given). Pick the highest-ranked candidate that matches. Then open. Do not keep looking once a match is found — the top match is the answer.

Honest fallback (youtube.com/results) is for one situation only: youtube_search returned zero candidates, OR every candidate is structurally wrong (channel page only, livestream when the user wanted a song). It is NOT for "results exist but they don't feel polished enough." If youtube_search returned a list and you can't pick one, the rule above failed — re-read it. </selection_rule>

REQUIRED tool sequence (read this first)

Every successful run of this skill calls these tools, in order:

  1. web_search — OPTIONAL pass 1: identify the specific song title + artist. Skip this when the user already named a song.
  2. youtube_search — REQUIRED pass 2: get real /watch?v= URLs for that specific song. Query: <title> <artist> official audio.
  3. browser_navigate — exactly once, with a URL that came back from youtube_search (verbatim — copy the url field from the tool result, do not retype it from memory).

Then inspect playback through supported browser tools and retain action Evidence before reporting. Searches alone do not fulfill a playback request. The required search/navigation sequence does not replace runtime approval or verification. Copy real result URLs; never invent video IDs.

Anti-patterns the planner sometimes drifts into — do NOT do these:

  • ❌ Composing a /watch?v=ID URL from memory or prose. The 11 characters after v= are NEVER something you type — they are always copied verbatim from a youtube_search result. The provenance gate exists precisely because the model has been caught inventing IDs. Don't.
  • ❌ Skipping youtube_search. web_search returns prose snippets and articles ABOUT songs, not autoplay-friendly URLs. youtube_search is the only tool whose results clear the provenance gate.
  • ❌ Re-entering the media-search skill mid-run after the searches returned. The skill is already loaded; re-viewing wastes a turn and signals a hung agent. Run youtube_search, then browser_navigate.
  • ❌ Stopping after the searches and asking the user to confirm. The user's "play me a song" request is the consent — proceed to browser_navigate.
  • ❌ Picking a youtube_search result whose title does not contain the song you committed to. Artist-only match is not enough; "Alex Warren live stream" is not "Alex Warren — Ordinary."
  • ❌ Picking a result whose title says "live stream", "24/7", "lyric", "cover", "reaction", "best of", "compilation", "mashup", "1 hour", or "loop". Those don't match what the user asked for.

When to use

The user's request matches any of these patterns:

  • Direct play: "play Despacito", "play Bohemian Rhapsody"
  • Fuzzy play: "play me a popular song", "play something upbeat", "play a sad song"
  • Listen intent: "I want to listen to jazz", "put on some music"
  • Artist intent: "play kendrick lamar", "play some abba"
  • Video intent: "show me the latest Marvel trailer", "play that cooking video about ramen"

If the user says "open spotify" or "open youtube" without a specific piece, that's an browser_navigate direct call — not this skill.

How to use

Pass 1 — Identify the song

The goal of pass 1 is to commit to a specific <title> and <artist> before you pick any URL. Build the query from what the user actually said:

User saidPass-1 query
"play me a popular song"Billboard Hot 100 #1 this week
"play me something upbeat"top upbeat pop songs 2026
"play me a sad song"top ballads 2026 spotify
"play me kendrick lamar"kendrick lamar most popular song 2025
"play me a hindi song"bollywood top hindi songs this week
"play me jazz"jazz standards essential listening
"play Despacito"(skip pass 1 — title already given)
"play Bohemian Rhapsody"(skip pass 1 — title already given)

After pass 1, announce your commitment in your reasoning (this is NOT yet shown to the user — that comes after browser_navigate):

Picked: <title> by <artist> (reason: e.g. "currently #1 on Billboard Hot 100").

If the user already named a specific song, pass 1 is unnecessary — the title and artist are already given. Skip directly to pass 2.

Call youtube_search with a query of the form:

"<title>" <artist> official audio

Wrap the title in double quotes. youtube_search hits the public YouTube results page, parses real /watch?v= URLs out of the response, and returns a list of { videoId, url, title, channel, durationText? } objects. The URLs in that list are the only URLs you may use for the chosen video. Preserve existing URL provenance checks; do not invent or reconstruct a watch URL.

URL-selection rules (apply in order to the youtube_search results, not to web_search snippets):

  1. The result's title field MUST explicitly contain the song title you committed to in pass 1. Artist-only mention is not enough. If the title doesn't name the song, skip it.
  2. Prefer results whose title contains "Official Audio", "Official Music Video", "Official Video", or "Official Lyric Video". These are usually the artist's verified upload.
  3. Reject results whose title contains any of: "live stream", "LIVE", "24/7", "lyric video" (unless specifically requested), "cover", "covered by", "reaction", "react to", "best of", "compilation", "mashup", "remix" (unless specifically requested), "hour" (e.g. "1 hour version"), "loop". These don't match what the user asked for.
  4. If no result in the top 5 satisfies rules 1–3, fall through to the honest-fallback path (below). Do not loosen the rules to force a pick.
Step 3 — Navigate, interact and verify

Call browser_navigate with the chosen result's URL: copy the url field verbatim. Inspect the resulting page with supported browser tools and operate the actual play control if needed. Reuse the same owned session and tab; do not launch duplicate tabs just because the player is slow.

Observe playback state after the action. If playback cannot be verified, report navigation as navigation and playback as unverified. Do not invent a successful play receipt or assume autoplay.

Step 4 — Report the observed result

Report the chosen title, URL, observed action and any limitation. Say "playing" only when playback was observed; otherwise say "opened" and explain what remains blocked or unverified. Keep Evidence linked to the actual action.

For fuzzy intent, briefly explain the selection. Do not present selection, navigation, or a user-facing browser window as proof that playback succeeded.

Show full SKILL.md (978 more words)Show less
Honest-fallback: no verifying URL found

If pass 2 returns no result that satisfies all the URL-selection rules above, the fallback executes in the same turn — it is not something you offer to the user.

  1. browser_navigate to https://www.youtube.com/results?search_query=<title>+<artist> (URL-encoded). Same turn. No "want me to?" question. No "let me know if".
  2. After browser_navigate fires, report what executed:

    Couldn't find a verified official upload for <title> by <artist>. Opened youtube.com/results?search_query=<title>+<artist> — autoplay doesn't fire on results pages, so pick a tile to start playback.

Do NOT claim "now playing" — that would be the same fabrication Phase 23.1 was built to catch. Do NOT ask "should I open the search page?" — that's the offer-style anti-pattern Phase 23.3 specifically forbids.

Examples

Example 1 — vague query, walk top-down with anti-pattern filter

User prompt: "play me a popular song"

The <selection_rule> block says: vague query → walk youtube_search candidates top-down, skip anti-patterns, take the first clean one. No officialness scoring beyond that.

Expected flow:

  • Aiden may run an optional web_search to commit to a current chart-topper (e.g. "Opalite" by Taylor Swift). This is for query construction, not for filtering YouTube results.

  • Aiden runs: youtube_search("Opalite Taylor Swift") → returns 5 candidates:

    1. { title: "the way they know every word! 🧡 Opalite by Taylor Swift", channel: "Krystal" } — title contains "they know every word" → anti-pattern match, skip.
    2. { title: "Taylor Swift - Opalite (Official Audio)", channel: "Taylor Swift" } — no anti-pattern keyword → first clean candidate, pick.
    3. (rest of list ignored — once a clean candidate is found, stop)
  • Aiden runs: browser_navigate(<candidate 2 .url>) — copy the url field verbatim, then inspect the player and verify the requested action.

  • Aiden reports: "Picked: '<title>' from '<channel>'. Opened <url>."

If every candidate in the top 5 hits an anti-pattern keyword — e.g. all reactions, all lyric videos — that is the legitimate fallback case (Example 5). Do not loosen the anti-pattern filter to force a pick.

Example 2 — specific title, match required

User prompt: "play Tum Hi Ho"

The <selection_rule> block says: specific query → require a title or artist substring match in the candidate before opening.

Expected flow:

  • Title given (Tum Hi Ho). Aiden skips web_search.
  • Aiden runs: youtube_search("Tum Hi Ho") → list of candidates.
  • Aiden walks the candidates top-down looking for the first one whose title field contains "Tum Hi Ho" (case-insensitive substring is fine). The highest-ranked match is the answer — not "the most official-looking one further down the list."
  • Aiden runs: browser_navigate(<that result's url, verbatim>).
  • Aiden reports: "Picked: '<title>' from '<channel>'. Opened <url>."

If the very top result's title contains "Tum Hi Ho", that's the match. Stop looking. Open it.

Example 3 — specific song, top result is the match

User prompt: "play Despacito"

Expected flow:

  • Title and artist already given (Despacito, Luis Fonsi).
  • Aiden skips web_search.
  • Aiden runs: youtube_search("Despacito Luis Fonsi") → top result's title contains "Despacito". Match found at rank 1.
  • Aiden runs: browser_navigate(<top result.url>).
  • Aiden reports: "Picked: '<title>' from '<channel>'. Opened <url>."
Example 4 — artist-only, hybrid

User prompt: "play me kendrick lamar"

This is between vague and specific: the artist is named, so "Not Like Us by random tribute act" is wrong, but the song isn't — so the bar is "any candidate whose channel or title is Kendrick Lamar's actual catalog."

Expected flow:

  • Aiden may run web_search("kendrick lamar most popular song 2025") to commit to a likely song (e.g. "Not Like Us"). This step is optional but useful for query construction.
  • Aiden runs: youtube_search("Kendrick Lamar Not Like Us") → list of candidates.
  • Aiden picks the top candidate whose title or channel names Kendrick Lamar. Top result usually qualifies.
  • Aiden runs: browser_navigate(<that result's url, verbatim>).
  • Aiden reports: "Picked: '<title>' from '<channel>'. Opened <url>."
Example 5 — fallback to results page

User prompt: "play that lo-fi beats stream"

Expected flow:

  • Pass 1: web_search("popular lo-fi beats stream 2026") → top result is "lofi hip hop radio — beats to relax/study to" channel.
  • Aiden commits: title="lofi hip hop radio", artist="Lofi Girl".
  • Pass 2: youtube_search("\"lofi hip hop radio\" Lofi Girl official audio") → top results are channel pages and livestreams. Every watch URL whose title contains "live" or "24/7" fails reject rule
    1. No top-5 result satisfies the rules.
  • Aiden runs: browser_navigate("https://www.youtube.com/results?search_query=lofi+hip+hop+radio+Lofi+Girl") — a search-results page, not proof of playback.
  • Aiden reports honestly: "Couldn't find a single verified upload — Lofi Girl's stream is a 24/7 livestream, not a single video. Opened YouTube search results; click any livestream tile to start playback."

Cautions

  • Never call browser_navigate more than once per request. If the first call succeeded, the URL is open in the user's browser. Re-launching is duplicate noise.
  • A watch URL does not guarantee autoplay. Only claim "now playing" after observing playback; report restrictions or unverified state honestly.
  • youtube_search is required, not optional. Use its real results and preserve URL provenance checks. Never compose a video ID from memory.
  • web_search (pass 1) is optional, but valuable for fuzzy intents. It helps you commit to a specific title before youtube_search. For "play Despacito" you can skip it; for "play me a popular song" you almost certainly need it.
  • Don't search verbatim for fuzzy phrases. "popular song" verbatim returns articles ABOUT popular songs, not the songs themselves. The whole point of pass 1 is to substitute fuzzy → specific BEFORE youtube_search.
  • Title match is non-negotiable. If the youtube_search result's title doesn't literally contain the song title you committed to, that result is not the song you said you'd play. Skip it. If nothing matches, take the honest fallback.
  • No Spotify integration in v4.0. If the user explicitly asks for Spotify ("play X on spotify"), tell them: "Spotify integration ships in v4.1. For now I can open the song on YouTube instead — want me to?"

Requirements

  • web_search tool (always available — registered at boot)
  • youtube_search tool (always available — registered at boot)
  • An available owned Browser Session and permitted browser navigation/interaction tools.
  • Respect current approval requirements. If a browser dependency is unavailable, report it rather than switching to an unowned external launcher.
  • Some sites require user login or consent; never bypass these barriers.

© taracodlabs, 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

Files

Just SKILL.md in skills/media-search of taracodlabs/aiden.

Open the folder on GitHubat commit 3704204

Compare with similar skills

Media Search 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.

Media Search compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Media Search this skilltaracodlabs/aiden852—~4.4kAutomated safety check: PassApache-2.0
MarkitdownImCa0/just-laws78114 repos~3.2kAutomated safety check: NotesMIT
Banner Design Systemnextlevelbuilder/ui-ux-pro-max-skill134k1 repos~1.8kAutomated safety check: PassMIT
Agent ReachPanniantong/Agent-Reach95k—~1.4kAutomated safety check: PassMIT
Last30daysmvanhorn/last30days-skill64k—~7.9kAutomated safety check: NotesMIT
Baoyu URL To Markdownsdyckjq-lab/llm-wiki-skill2.5k2 repos~3.2kAutomated safety check: PassNone

Similar skills

  • Markitdown

    ImCa0/just-laws

    Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.

    781 GitHub starsUsed in 14 repos~3.2k tokens
    Documents & OfficeAuto-check: notes
  • Banner Design System

    nextlevelbuilder/ui-ux-pro-max-skill

    Walks through designing a banner for social media, ads, a website hero or print, from gathering requirements to building 2 or 3 art-direction options in HTML and CSS.

    134k GitHub starsUsed in 1 repo~1.8k tokens
    Frontend & DesignAuto-check passed
  • Agent Reach

    Panniantong/Agent-Reach

    Routes web research and platform lookups across 16 sites, including Twitter, Reddit, YouTube, Bilibili, Xiaohongshu and GitHub, through one command-line tool.

    95k GitHub stars~1.4k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check passed
  • Last30days

    mvanhorn/last30days-skill

    Research what people actually say about any topic in the last 30 days.

    64k GitHub stars~7.9k tokensUpdated yesterday
    Research & ScienceAuto-check: notes
  • Baoyu URL To Markdown

    sdyckjq-lab/llm-wiki-skill

    Fetch any URL and convert to markdown using Chrome CDP. An agent skill from sdyckjq-lab/llm-wiki-skill.

    2.5k GitHub starsUsed in 2 repos~3.2k tokens
    Knowledge ManagementAuto-check passed
  • Google SEO APIs

    AgriciDaniel/claude-seo

    Pulls real Google data for SEO work: Search Console, PageSpeed Insights, CrUX field data, the Indexing API and GA4 organic traffic, through /seo google commands.

    19k GitHub starsUsed in 1 repo~4.2k tokens
    Marketing & SEOAuto-check passed

More from taracodlabs/aiden

All 63 skills in this repo
  • Google Flights Search

    taracodlabs/aiden

    Searches Google Flights for prices, schedules and availability through browser automation with URL-based queries, and stops short of booking.

    852 GitHub stars~1.5k tokensUpdated 27 days ago
    Auto-check passed
  • OpenAI Codex CLI Bridge

    taracodlabs/aiden

    Delegates code generation, editing and explanation tasks to the OpenAI Codex CLI, with commands for interactive, auto-edit, question-only and model-specific runs.

    852 GitHub starsUsed in 1 repo~826 tokens
    Auto-check passed
  • Google Hotels Search

    taracodlabs/aiden

    Searches Google Hotels through the agent-browser tool for prices, ratings, amenities and availability, building a search URL from the location and dates and reporting a results table.

    852 GitHub stars~1.5k tokensUpdated 27 days ago
    Auto-check passed
  • Generates dark-themed architecture, component, data-flow and network diagrams as self-contained HTML and SVG files that open in any browser.

    852 GitHub stars~1.3k tokensUpdated 27 days ago
    Auto-check passed
  • Aggregates holdings across Zerodha, Upstox and Angel One and normalizes order parameters into one format, with confirmation required before any routing.

    852 GitHub stars~1.1k tokensUpdated 27 days ago
    Auto-check passed
  • arXiv Paper Search

    taracodlabs/aiden

    Searches arXiv by keyword, category, author or paper ID through its public API and downloads PDFs, with no API key needed.

    852 GitHub stars~1k tokensUpdated 27 days ago
    Auto-check passed

Works with

Questions about Media Search

What does Media Search do?

Find and play music/videos via youtubesearch + browsernavigate. Media Search is an agent skill from taracodlabs/aiden.

How do I install Media Search in Claude Code?

Run `npx skills add taracodlabs/aiden --skill media-search -a claude-code`. Or copy the skill folder (skills/media-search in taracodlabs/aiden) into .claude/skills/media-search in your project. Claude Code loads it when a task matches its description.

How do I install Media Search in Codex?

Run `npx skills add taracodlabs/aiden --skill media-search -a codex`. Or copy the skill folder (skills/media-search in taracodlabs/aiden) into .agents/skills/media-search in your project. Codex loads it when a task matches its description.

Can I use Media Search 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 taracodlabs/aiden --skill media-search -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/media-search, .gemini/skills/media-search, .github/skills/media-search and .opencode/skills/media-search in your project.

What does Media Search need to run?

SKILL.md names no scripts, command-line tools or credentials: Media Search is instructions for the agent only.

Does Media Search access the network?

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

Is Media Search 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. Review the folder before installing.

What licence does Media Search use?

Media Search is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Media Search use?

About 4.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Media Search?

Skills that share tags, products or a category with Media Search: Markitdown (ImCa0/just-laws, 781 stars), Banner Design System (nextlevelbuilder/ui-ux-pro-max-skill, 134k stars), Agent Reach (Panniantong/Agent-Reach, 95k stars) and Last30days (mvanhorn/last30days-skill, 64k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Media Search?

taracodlabs (a GitHub organization) maintains it in taracodlabs/aiden, which has 852 GitHub stars. The repository holds 63 skills in this directory. The repository was last updated on September 13, 2026.

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