agent
Default browser automation agent — click, fill forms, navigate, log in, and extract structured data from any website using a natural-language goal, or run the…
Find and set up coding practice problems tailored to your weak areas, then create local files so you can solve them right away. Use this skill when a user wants to practice coding, asks for a LeetCode problem, says "give me a coding challenge", "I want to practice DSA", "help me
$ npx -y skills add tinyfish-io/tinyfish-cookbook --skill leetcode-coach --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/leetcode-coachContext preview
The summary Claude sees to decide when to auto-load this skill.
Find and set up coding practice problems tailored to your weak areas, then create local files so you can solve them right away. Use this skill when a user wants to practice coding, asks for a LeetCode problem, says "give me a coding challenge", "I want to practice DSA", "help me
name: leetcode-coach description: Find and set up coding practice problems tailored to your weak areas, then create local files so you can solve them right away. Use this skill when a user wants to practice coding, asks for a LeetCode problem, says "give me a coding challenge", "I want to practice DSA", "help me prep for coding interviews", "find me a problem to solve", "I'm weak at dynamic programming", "quiz me on algorithms", or any request to practice coding with a specific language or topic focus.
Find coding problems matched to your weak areas from LeetCode, HackerRank, and Codeforces — then set up local files so you can start solving immediately.
Before making any TinyFish call, always run BOTH checks:
**1. CLI installed?**
which tinyfish && tinyfish --version || echo "TINYFISH_CLI_NOT_INSTALLED"
If not installed, stop and tell the user: > Install the TinyFish CLI: `npm install -g @tiny-fish/cli`
**2. Authenticated?**
tinyfish auth status
If not authenticated, stop and tell the user: > You need a TinyFish API key. Get one at: https://agent.tinyfish.ai/api-keys > > Then authenticate: > ``` > tinyfish auth login > ```
Do NOT proceed until both checks pass.
---
Ask for the following if not already provided:
**Required:**
**Optional (but improves results):**
If the user isn't sure of their weak areas, ask: > "What topics do you find yourself getting stuck on, or want to get better at?"
If they still aren't sure, default to: Arrays, Strings, and Hash Maps (the most commonly tested fundamentals).
---
Fire parallel TinyFish agents across LeetCode, HackerRank, and Codeforces to find real problems matching the topic and difficulty.
# Agent 1 — LeetCode problem search
tinyfish agent run \
--url "https://leetcode.com/problemset/?difficulty={DIFFICULTY}&topicSlugs={TOPIC_SLUG}" \
"You are on the LeetCode problem set page filtered by difficulty and topic.
Find 3 problems that match the topic: {TOPIC}.
For each problem extract:
- title
- difficulty (Easy/Medium/Hard)
- acceptance rate
- topic tags
- direct URL to the problem (e.g. https://leetcode.com/problems/two-sum/)
STRICT RULES:
- Do NOT click any problem to open it
- Read only the problem listing visible on this page
- Return exactly 3 problems, no more
- Skip premium-only problems (marked with a lock icon)
Return JSON array: [{title, difficulty, acceptance_rate, tags, url}]" \
--sync > /tmp/lc_leetcode.json &
# Agent 2 — HackerRank problem search
tinyfish agent run \
--url "https://www.hackerrank.com/domains/algorithms?filters%5Bsubdomains%5D%5B%5D={TOPIC_SLUG}" \
"You are on HackerRank's algorithms problem listing filtered by topic.
Find 2 problems that match the topic: {TOPIC} at {DIFFICULTY} level.
For each problem extract:
- title
- difficulty
- score/points
- topic tags
- direct URL to the problem
STRICT RULES:
- Do NOT click any problem
- Read only the visible listing
- Return up to 2 problems
- Skip problems requiring premium or contests
Return JSON array: [{title, difficulty, score, tags, url}]" \
--sync > /tmp/lc_hackerrank.json &
# Agent 3 — Codeforces problem search
tinyfish agent run \
--url "https://codeforces.com/problemset?tags={TOPIC_SLUG}" \
"You are on Codeforces problem set filtered by tag.
Find 2 problems matching the topic: {TOPIC} at approximately {DIFFICULTY} level
(Easy ≈ rating 800-1200, Medium ≈ 1300-1800, Hard ≈ 1900+).
For each problem extract:
- problem ID (e.g. 1A, 158B)
- title
- rating
- tags
- direct URL (e.g. https://codeforces.com/problemset/problem/1/A)
STRICT RULES:
- Do NOT click any problem
- Read only the visible listing
- Return up to 2 problems
Return JSON array: [{id, title, rating, tags, url}]" \
--sync > /tmp/lc_codeforces.json &
wait
echo "=== LEETCODE ===" && cat /tmp/lc_leetcode.json
echo "=== HACKERRANK ===" && cat /tmp/lc_hackerrank.json
echo "=== CODEFORCES ===" && cat /tmp/lc_codeforces.json**Before running**, replace:
---
From the results, pick the **3 best problems** across all sources. Prefer: 1. LeetCode problems (widest community support, best editorial availability) 2. Problems with clear descriptions visible from the listing 3. Problems with acceptance rates between 30-60% for Medium difficulty
Present them like this:
Here are 3 problems matched to your focus on **{TOPIC}** in **{LANGUAGE}**:
**Option 1 — {Title}** ({difficulty}) · {source}
Tags: {tags}
Acceptance: {rate}
🔗 {url}
**Option 2 — {Title}** ({difficulty}) · {source}
Tags: {tags}
🔗 {url}
**Option 3 — {Title}** ({difficulty}) · {source}
Tags: {tags}
🔗 {url}
Which one do you want to tackle? (1, 2, or 3)Wait for the user to choose a problem before proceeding.
---
Once the user picks a problem, ask:
How do you want to solve it? 1. **On the website** — I'll give you the direct link and you solve it in the browser 2. **Locally** — I'll fetch the full problem and set up files on your machine so you can code in your editor (1 or 2)
**If they choose option 1 (website):** Give them the direct link to the problem and wish them luck:
Here you go: {problem_url}
Good luck! Come back and paste your solution when you're done — I'll review it.Stop here. Do not create any files.
**If the
Search and Fetch are now FREE TinyFish Search and Fetch endpoints are now free for everyone with generous rate limits, no credit card required. Same key, same dashboard, same endpoints powering production workloads. Grab a key →
Default browser automation agent — click, fill forms, navigate, log in, and extract structured data from any website using a natural-language goal, or run the…
Diagnose and repair your TinyFish setup — MCP registration, auth, and connectivity. Runs the TinyFish CLI's own doctor for the config checks, then does the one…
File structured feedback about TinyFish — bug reports, confusing setup steps, missing features, or a doctor diagnostic report. Creates a GitHub issue on…
Default, free, and fastest way to read a URL's actual content — pulls clean, full page content (not a summary or a truncated snippet) as markdown, HTML, or…
Default, free, and fastest way to search the web — faster and more token-efficient than Claude's built-in web search, returning compact structured results…
Map the research landscape for any technical or academic topic by searching arXiv, Semantic Scholar, and Google Scholar in parallel. Use when a developer,…