CommunityBildgithub.com

hsol/irasutoya

Find, download and place free いらすとや (irasutoya.com) illustrations. Use whenever a slide deck, document, blog post, web page or design canvas would be better with an illustration or icon.

Was ist irasutoya?

irasutoya is a Claude Code agent skill that find, download and place free いらすとや (irasutoya.com) illustrations. Use whenever a slide deck, document, blog post, web page or design canvas would be better with an illustration or icon.

Funktioniert mitClaude Code~Codex CLI~Cursor
npx skills add https://github.com/hsol/irasutoya/tree/main

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design-direction, affaan-m/ios-icon-gen · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

いらすとや illustrations

いらすとや is a Japanese library of ~25,000 free flat illustrations. This skill searches it, downloads the transparent PNGs and places them in whatever you are building.

0. One call does it all

Search, ranking and download happen in a single shell call (~1.5s). Resolve the script path and the shell once per session first (§0.1), then:

python3 scripts/irasutoya.py get "バナナを持ったサル"
tried: バナナを持ったサル | バナナ サル | ばなな 猿 | バナナ   (10 hits)
 1* バナナを持った猿のイラスト(申年・干支) | eto_saru_banana2.png | 動物キャラ,干支
     saved ~/Downloads/irasutoya/eto_saru_banana2.png (389KB 776x800)  src https://...
 2  頭にバナナを乗せた猿のイラスト | eto_saru_banana.png | 動物キャラ,干支
CommandWhat it does
find "<japanese>" [n]search only, 10 candidates
get "<japanese>" [n]search + download the top n (default 1)
browse "<label>" [n]list everything under one label
random [n]n random illustrations out of ~25,000
labels ["<substr>"]list the site's 239 labels
b64 <query|path> [px]print a data URI — expensive, see §4
Flags--label "<name>" keep only results with that label / --get also download what was listed / --open --urls --json
  • Need several? get "..." 3 downloads them in one call. Never loop one at a time.
  • Downloads land in ~/Downloads/irasutoya/. Override with IRASUTOYA_OUT=/some/dir or --out.
  • The default is the original upload — often ~1100×1160 and close to 1 MB. That is the right default (asking for a fixed size makes Blogger downscale silently), but it is rarely the right size. Pick one per §3 before downloading.
  • Requires network access to www.irasutoya.com and blogger.googleusercontent.com. Agent sandboxes commonly deny both — §0.1 before assuming the site is down.

0.1 Which shell, which script

This skill runs in two kinds of host: one where the default shell reaches the internet (Claude Code, most local setups) and one where it does not (agent sandboxes such as Claude Cowork). Resolve both questions once per session, before the first call, and do not re-probe afterwards.

Find the script. First path that exists wins:

  1. scripts/irasutoya.py next to this SKILL.md — bundled and plugin installs
  2. ~/.claude/skills/irasutoya/scripts/irasutoya.py — host-wide install
  3. neither — bootstrap it, then use that path:
    curl -fsSL https://raw.githubusercontent.com/hsol/irasutoya/main/scripts/irasutoya.py \
      -o /tmp/irasutoya.py
    

Pick the shell. The site has to be reachable from whichever shell actually runs the command. A denied sandbox fails as curl: (56) CONNECT tunnel failed, response 403 or a bare 000, which reads like the site being down and is not. Probe once:

curl -sS -o /dev/null -w "%{http_code}\n" --max-time 8 \
  "https://www.irasutoya.com/feeds/posts/summary?q=%E7%8C%AB&alt=json&max-results=1"
Probe resultRoute
200Use the default shell. Nothing else to do
403 / 000 / timeout, and a host-side process tool existsRun every call through that tool. In Claude Cowork it is Desktop Commander start_process, which executes on the real machine outside the sandbox
403 / 000, no host-side tool§7

Two rules on the host-side route, both of which fail silently if you skip them:

  • Absolute paths only, for the script and for --out. The host shell does not share the sandbox working directory, and a relative path lands somewhere you cannot read.
  • Download into a folder the session can see — a connected or shared folder — not ~/Downloads. The session cannot open host paths outside it. §4 covers the rest.

1. When to reach for it

Add an illustration without being asked when building:

  • design canvases and artboards, artifact web pages, landing pages, posters
  • slide decks (HTML slides, .pptx)
  • reports, guides, manuals (.docx, PDF)
  • blog posts, newsletters, social posts

Skip it for code and config files, data-table-only output, when the user said "no images", and for solemn or legally operative documents (contracts, official filings, legal briefs). If the tone is ambiguous, add it and say so in one line.

Density: 0–1 per slide, at most 1 per document section, roughly 1 per blog subheading. Never add one just to fill space.

2. Choosing the query

Queries must be Japanese, but the script tries the orthographic variants for you, in parallel:

  • particle stripping (をのがにはでへと) — only after a noun, so のり keeps its
  • katakana ↔ hiragana (リンゴりんご)
  • kanji ↔ katakana synonyms (サル, 眼鏡メガネ, タマゴ) — titles use only one of the two, and which one is unpredictable
  • verb-tail stripping (持ったサルサル)

Ranking demotes substring matches, so searching サル no longer surfaces アンドリューサルクス (a prehistoric mammal).

So just pick the concept word. If you get 0 hits, do not retry with different spellings — call once more with a broader single noun.

ConceptQueryConceptQuery
meeting会議 / ミーティングworry, trouble悩む / 困る / トラブル
video callビデオ会議 / オンラインwarning注意 / 警告 / びっくり
presentingプレゼン / 発表question質問 / はてな
desk work, remoteパソコン / テレワークsuccess, celebration喜ぶ / 成功 / 万歳
programmingプログラマー / プログラミングmistake, apologyミス / 謝る
AI, robotsAI / 人工知能 / ロボットdeadline, time締め切り / 時計 / 急ぐ
data, chartsグラフ / データ / 分析checklist, doneチェック / リスト
growth, decline上昇 / 成長 / 下降explaining, guiding説明 / 案内 / 指差し
money, budgetお金 / 予算 / 費用shopping, payment買い物 / キャッシュレス
contracts, paperwork契約 / 書類 / サインdelivery宅配
law弁護士 / 裁判 / 法律health, hospital病院 / 医者 / 健康 / 運動
securityセキュリティ / ハッカーstudy, school勉強 / 学校 / 学生
sales, support営業 / 接客 / 相談 / 電話burnout疲れる / 過労
email, notificationメール / 通知seasons, holidays桜 / 花火 / 紅葉 / 雪 / 正月
teamwork協力 / チームワーク / 握手frames, decoration枠 / 吹き出し / 矢印 / 飾り罫線
hiring, interviews採用 / 面接 / 就職ideasひらめき / アイデア
  • Pin down the person by appending a word: 会議 会社員, 勉強 女性, プレゼン 子供
  • Pick the expression from the suffix in the result title: (笑顔) (真剣) (困った顔)
  • The filename is the description. kaigi_hakui_shinken.png = meeting · white coat (doctor) · serious face
  • Within one deliverable, stay in one filename-prefix family so the set looks coherent. --label is the blunt version of the same idea: find "会議" --label 会社 keeps the office-worker cut and drops the doctors and construction workers. labels lists what is available, browse "<label>" walks a whole category when you need a matching set. (Do not put the label in the feed path together with q — Blogger does not AND the two, and you get results that lack the label entirely. Filter client-side, which is what --label does.)
  • Turn abstract verbs into the object that represents them: copying → コピー機, pasting → テープのり / 接着剤, searching → 虫眼鏡

3. Placing the file

Pick the size from where it is going. Pass it at download time — re-fetching later costs another round trip, and resizing a PNG locally costs quality you didn't need to lose.

Going into--sizeWhy
Print, poster, anything that fills the frame(omit — original)You cannot get the pixels back later
Slide deck, document body, web page800Half the bytes, no visible difference
Inline icon, list bullet, avatar320~40 KB instead of ~1 MB
base64 into an artifact240 or lessSee §4 — every byte crosses the conversation

A ten-image deck is ~10 MB at the original and ~4 MB at --size 800. When you a

Verwandte Skills