尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
Image searches directly in markdown!
翻譯準備中
正在載入完整 README。
檢視完整 README ↗Live images in markdown, powered by search.
Give your AI a system instruction to embed images using direct-img.link and they just work — no uploads, no APIs, no tokens.



That's it. The image is searched, cached, and served.
Use + to separate words, like Google:
https://direct-img.link/orange+cat
https://direct-img.link/new+york+city
| Query | URL |
|---|---|
| orange cat | /orange+cat |
| spider-man | /spider-man |
| u.s. president | /u.s.+president |
| 90's fashion | /90%27s+fashion |
Add ?i= to serve a later search result instead of the first, e.g. when the first image isn't the one you want:
https://direct-img.link/orange+cat?i=2
i is 1–40, default 1. Higher values serve max-i.webp, which lists each site's range, and other invalid values serve bad.webp?i=02 = ?i=2)i is a different image. ?i=2 is the 2nd working imagei values take a little longer the first time, since the working images before it are downloaded to count themi working images, an AI image is served instead (except on free., which serves bad.webp)i above 10 serves an AI image without searchingi is cached separately. A search's results are kept for 1 hour, so other i values of the same query within that hour don't search again and don't count toward the limit. One that was already counted downloads only its own imageAll queries are normalized before caching and searching:
| Rule | Example | Result |
|---|---|---|
+ and %20 are treated as spaces | orange+cat, orange%20cat | orange cat |
| Lowercased | Orange+Cat | orange cat |
| Trimmed | +orange+cat+ | orange cat |
| Multiple spaces collapsed | orange++cat | orange cat |
| Trailing slashes stripped | orange+cat/ | orange cat |
| Control characters removed | orange\x00cat | orangecat |
| Slashes & Dots rejected | info.php, wp-admin/ | bad.webp served |
| Max length: 200 characters | — | 400 error if exceeded |
spider-man), apostrophes (90's) — passed throughcafé, 日本) — supported via URL encodingLiteral slashes (/) and dots (.) in the URL path are rejected to prevent bot abuse (e.g. info.php or wp-admin/ probes). If your query genuinely contains these characters, you must encode them:
| Query | URL |
|---|---|
| AC/DC | /AC%2FDC ✅ |
| node.js | /node%2Ejs ✅ |
| info.php | /info.php ❌ (rejected) |
| AC/DC | /AC/DC ❌ (rejected) |
?...) other than i (and src on free.) serve bad.webp — /orange+cat?size=large ❌#...) are never sent to the server by browsers%2520 becomes %20 (literal), not a spacebad.webp is served (remembered for 24h). If a search finds fewer than i working images, an AI image of the query is served for the missing ones, and cached like any other image. bad.webp is served if the AI image fails too, or on free.donate.webp is served and nothing is cached, so the query works again once either is backNeed images you can publish? free.direct-img.link only serves images marked free of restrictions (public domain or CC0), so no credit is needed. Same URL format, plus an optional src:



| Param | Values | Default |
|---|---|---|
src | openverse, wikimedia (case-insensitive) | Openverse's results, then Wikimedia's |
i | 1–20 — works the same as on the main site | 1 |
?i=2&src=wikimedia = ?src=wikimedia&i=2)i above 20 serves max-i.webp, which lists each site's range. Other invalid values serve bad.webpi working ones), bad.webp is served (remembered for 24h) instead of an AI image. With a src, only that source's images are searchedbad.webp is served but not cached, so the next request searches againsrc + i + query combination is cached separately. Like the main site, other i values within an hour of a search reuse its results and don't count as searchesfree. (its robots.txt allows everything), so free images embedded in your pages can show up in image search and link previews. The main site and ai. allow only the homepageSources:
以上為 README 的開頭部分。其餘內容請閱讀原文。 檢視完整 README ↗