Offset Fill Doodle We draw your subject as a cute sticker doodle with a thick black outline that sits slightly off its flat color fill, like a misprinted label, on clean white; you choose the subject.
AI image styles
No style matches yet — try other words.
Lime Monochrome Wardrobe We dress your person head to toe in a vivid lime green tailored suit with black leather shoes, shot full body in a pale studio with a long hard shadow; you choose who wears it.
Sunburst Flyer Backdrop We set your subject low on one side of a glowing pink-to-teal sky with a blazing sun flare and soft bokeh, leaving open space for your flyer text; you choose the hero.
Gouache Garden Folk We paint your subject as a naive gouache folk piece, covered in small dash brush strokes and wrapped in an oversized garden of flowers and patterned leaves on flat pastel pink; you choose what sits in the middle.
Silver Grill Caricature 3D Your character as a bold 3D caricature with a huge square jaw, silver wraparound shades, a shiny diamond grill and a neon green tee on plain white; just name the character.
Blank Paper Mascot Photo A chubby, big-eyed mascot of your choice stands upright on clean white and holds up a blank sheet, ready for your own message; just name the mascot.
Pastel Cloud Storybook A soft children's book scene with your subject resting on peach and purple clouds, under a blue-to-pink sky with tiny stars and a gentle paper grain; just tell us what sits on the clouds.
Salt Desert Cobalt Colossus A surreal fashion still: your object rises colossal from a white salt flat, carved in glossy cobalt mineral, with a woman in matching blue beside a red horse; just name the object.
Red Haze Club Film A grainy 35mm club photo where your subject looms in pale stage smoke above a blurred, red-lit crowd with raised hands; just name what appears in the haze.
Cobalt Dash Crayon Print Your subject as a bold grainy crayon print in cobalt, coral, forest green and yellow, filled with rows of little hand-drawn dashes on warm cream paper; just name the subject.
Skyward Lemon Perspective Look straight up as your subject rises from every edge of the frame toward an open pale sky, in bright white with vivid lemon accents; just name what towers above.
Misty Paper Cut Layers Any place as flat paper-cut layers in a single green tone, with dark edges framing a pale glowing sky and soft fog between the planes; just describe the scene.
Stock & fund logos
Circle logos for stock tickers, ETFs, and funds — ideal for watchlists, portfolio dashboards, and price tickers. Served from edge servers close to your visitors.
/stock/{symbol}.svg/stock/apple.svg
/stock/nvidia.svg
/stock/tesla.svg
/stock/microsoft.svg
/stock/amazon.svg
/stock/alphabet.svg
/stock/meta-platforms.svg
/stock/netflix.svg
/stock/berkshire-hathaway.svg
/stock/jpmorgan-chase.svg
/stock/visa.svg
/stock/mastercard.svg
/stock/walmart.svg
/stock/coca-cola.svg
/stock/walt-disney.svg
/stock/advanced-micro-devices.svg
/stock/taiwan-semiconductor.svg
/stock/samsung.svg
/stock/toyota.svg
/stock/fpt-corporation.svg
/stock/vietnam-dairy-products.svg
/stock/hoa-phat-group.svg
/stock/joint-stock-commercial-bank-for-foreign-trade-of-vietnam.svg
/stock/vingroup-joint-stock-company.svg
/stock/dragon-capital.svg
/stock/vinacapital-vietnam.svg
/stock/vanguard.svg
/stock/blackrock.svg
Notes
- Company slugs follow TradingView naming, like
appleordragon-capital. - Missing symbols fall back to a custom uploaded icon, then a labeled placeholder — never a broken image.
- Served as SVG (a few as PNG), cached at the edge for one year.
Crypto logos
Circle logos for cryptocurrencies, addressed by ticker — ideal for wallets, exchange dashboards, and price tickers. Served from edge servers close to your visitors.
/crypto/{symbol}.svgNotes
- Crypto uses plain lowercase ticker symbols like
btc,eth,sol— the top ~500 coins by market cap are preloaded. - Missing symbols fall back to a custom uploaded icon, then a labeled placeholder — never a broken image.
- Served as SVG (a few as PNG), cached at the edge for one year.
Brand logos
SVG logos for thousands of tech and consumer brands, addressed by plain brand name — for integration pages, tech-stack lists, payment badges, and dashboards.
/brand-logo/{name}.svgNotes
- Names are lowercase brand slugs like
google,nike,openai— uppercase requests are normalized automatically. - Full-color logos where available, official brand-color icons otherwise.
- Includes 160+ Vietnamese brands — banks, e-wallets, telcos, media, retail — like
vietcombank,momo,viettel,vinfast. - Missing names fall back to a custom uploaded icon, then a labeled placeholder — never a broken image.
- Served as
image/svg+xml, cached at the edge for one year.
Website favicons
The favicon of any website, addressed by hostname — for link previews, bookmark lists, referrer tables, and "connected apps" screens.
Example: /favicon/google_com.svg — hostname with dots replaced by underscores.
/favicon/{host_slug}.svgNotes
- Slug is the hostname with
.replaced by_:google_com,vietcombank_com_vn. Any extension in the URL works; the response is the format on file (PNG, ICO, SVG…). - Resolved from our own store first, then fetched once from favicon.im and cached permanently — the first request for a new host is slower.
- Hosts with no favicon return a labeled placeholder — never a broken image. Upload a better version via the Contribute form.
- Served with the file's real
Content-Type, cached at the edge for one day.
Country flags
SVG flags for every country, addressed by ISO code — rectangular by default, or circular with the -circle suffix to match the stock & crypto logos.
Example: /flags/vn.svg — lowercase ISO 3166-1 alpha-2 code; add -circle for the round version.
/flags/{code}.svg/flags/{code}-circle.svgNotes
- Codes are lowercase ISO 3166-1 alpha-2 like
vn,us,jp— regional flags (gb-eng,es-ct) andeu/unwork too. - Rectangular (4:3) by default;
/flags/{code}-circle.svgserves the circular version. - Unknown codes return a labeled placeholder — never a broken image.
- Served as
image/svg+xml, cached at the edge for one year.
Stock image thumbnails
Preview images for stock-media assets, keyed by source site and asset id. The optional -{size} suffix resizes to that width.
Example: /shutterstock/2148156765-600.jpg — Shutterstock asset 2148156765 at width 600.
/{site}/{id}.jpg/{site}/{id}-{size}.jpg
Shutterstock/shutterstock/1232588239.jpg
Freepik/freepik/3064875.jpg
Adobe Stock/adobestock/1585015388.jpg
Envato Elements/envato/SSNP7B2.jpg
iStock/istockphoto/2196019693.jpg
123RF/123rf/323617074.jpg
/iconscout/13487097.jpg
Designi/designi/20cbadb2c811e565.jpg
Supported sites
shutterstockvshutterfreepikvfreepik
adobestockistockphotodepositphotosdreamstime
123rfalamyrawpixelenvato
vecteezyflaticoniconscoutpngtree
lovepikmotionarraystoryblockscreativefabrica
artgridartlist_footageepidemicsounddesigni
designbrbaixardesigncraftworkmockupcloud
mrmockupyellowimagesfootagecrateui8
pixedenuplabspixelbuddha
Notes
- Audio sources return a waveform placeholder image.
- Unknown or unavailable assets return a labeled placeholder — never a broken image.
- Successful renders are cached at the edge for one year, keyed by full URL.
Text to image
Renders an SVG image from arbitrary text — handy for placeholders, Open Graph fallbacks, and quick banners.
Try it
Usage
/bytext?text=<your text>&w=600&h=400&bg=cccccc&fg=333333&size=48Parameters
| Parameter | Default | Description |
|---|---|---|
text | (required) | Text content. URL-encoded. Use %0A for line breaks. |
w | 600 | Width in pixels (1–4000). |
h | 400 | Height in pixels (1–4000). |
bg | cccccc | Background color — hex 3/6/8 chars, with or without #. |
fg | 333333 | Text color — hex. |
size | auto | Font size in px. Leave blank to auto-fit to the canvas. |
Examples
/bytext?text=Hello%20World
?text=Custom%20size&w=400&h=200&bg=222&fg=fff&size=56
?text=Line%201%0ALine%202%0ALine%203&bg=2a6df4&fg=fff
Notes
- Returns
image/svg+xml— works with<img>,background-image, etc. - Cached at the edge for one year, keyed by full URL.
- Font is
system-ui— rendered with the viewer's system font.
MCP server
gimgs speaks the Model Context Protocol, so Claude, Cursor or any MCP client can use it as a tool. One endpoint hosts several servers — the credentials you send pick which one you get:
| Server | For | Credentials | What the agent can do |
|---|---|---|---|
Publicgimgs-cc0-images | Anyone | None | Search the CC0 image library and get hotlinkable URLs. Read-only. |
Designgimgs-design | Signed-in users | API key gk_… | Edit the Photosoft project you have open — live, together with you — plus everything the public server does. |
Public server: CC0 images
Read-only and free, no key needed. Every result carries ready-to-hotlink CDN URLs, so an agent can search images and drop them straight into whatever it is building.
/mcpTools
search_cc0_images— keyword search over the CC0 library, 24 results per page, withsort(curated / recent / popular) and an optionalcategoryfilter.get_cc0_image— one image by id, with every size variant (widths 100–1024) and its detail-page URL.
Connect
Claude Code:
claude mcp add --transport http gimgs https://gimgs.net/mcp
Or any client that speaks Streamable HTTP, via JSON config:
{
"mcpServers": {
"gimgs": { "type": "http", "url": "https://gimgs.net/mcp" }
}
}
- Every result ships ready-to-hotlink JPG URLs:
image_url(width 1024),thumb_url(350) and asizesmap. - Images are CC0 — personal or commercial use, no attribution required.
Design server: edit Photosoft together with an agent
Open a project in Photosoft, open Agents in the right dock and press Enable agents. From then on an agent connected with your API key sees that project and edits it with you: every change it makes lands as one History step, labelled with the agent's name, that you undo like your own.
/mcp/mcp/gk_YOUR_KEYThe first form takes the key in a header (Authorization: Bearer gk_…); the second puts it in the URL, for clients that cannot send custom headers. Treat that URL like a password.
Get a key
Create one under Profile → API. Any key opens the design server — there are no scopes yet, so a key you hand to an agent can edit every project you enable Agents on. Revoke it there to cut the agent off.
Tools
design_sessions— the projects you have open with Agents enabled: id, name, canvas size, rev, and which agents are listening.design_get— the document as structure: every layer with id, type, box, visibility, text and colours, plus the selection and the current rev. No pixels.design_preview— a JPEG or PNG render of the canvas or of one layer, so the agent can look at its own work.design_apply— a batch of ops (add_text,add_image,add_shape,add_path,add_gradient,add_svg,add_texture,brush_path,path_boolean,offset_path,stroke_to_path,transform,rasterize,flip,measure_text,find_fonts,update_layer,delete_layer,reorder,select,mask,filter,resize_canvas,style,group,ungroup) applied as one undo step; takeslabel,agent_nameandbase_rev.design_events— long-poll of what happened since a sequence number: your edits, undo / redo, selection, Agents-chat messages, other agents' changes, pause / resume.design_say— a line into the Agents chat of your editor.design_upload_url— a presigned upload URL for an image on the agent's own machine; the agent PUTs the file, then places it withadd_image.design_schema— the exact fields and limits of every op.- Plus the public tools, so the agent can search CC0 images and place them with
add_image.
Connect
Claude Code (key in a header):
claude mcp add --transport http gimgs-design https://gimgs.net/mcp --header "Authorization: Bearer gk_YOUR_KEY"
claude.ai on the web or phone, and other clients without custom headers: add a custom connector with the key in the URL.
https://gimgs.net/mcp/gk_YOUR_KEY
JSON config:
{
"mcpServers": {
"gimgs-design": {
"type": "http",
"url": "https://gimgs.net/mcp",
"headers": { "Authorization": "Bearer gk_YOUR_KEY" }
}
}
}
Then just ask — “make the headline bigger”, “add the Stripe logo top left” — the agent finds the open project itself.
Working together
- One
design_applyis one History step named “[agent] label”; Ctrl+Z undoes the whole batch. - Layers you locked, or are dragging or typing in, are refused (
locked/busy) — the agent retries later. - With
base_rev, layers you changed in the meantime come back asstaleinstead of being overwritten. - Pause stops writes while the agent can still read; Set checkpoint / Revert undo everything since the mark.
- The Agents chat reaches an agent only while it is polling
design_events— the panel says “listening” when one is. Otherwise tell the agent, in its own chat, to listen. - Close the tab and the session is kept for 60 minutes; reopening the project reconnects it.
Protocol notes
- Streamable HTTP, stateless JSON-RPC 2.0 — each POST is an independent request; no session id, no SSE stream.
- Wrong or revoked credentials return 401 and never fall back to the public server.
- Tool failures come back as a tool result with
isErrorand{ error, message }. Design codes:no_session,browser_offline,paused,locked,busy,stale,tab_not_active,timeout.
Contribute an icon
Found a symbol that only shows a placeholder? Submit the missing icon here — contributions are reviewed before going live, usually within a day.
Guidelines
- Only submit images that are publicly available and appropriate to represent the symbol — official logos, identification use only.
- Square aspect ratio works best; SVG keeps it crisp at every size.
- Submissions are moderated — approved icons replace the placeholder at the matching URL.







































































