| name | ray |
| description | Generate code screenshots via ray.tinte.dev API. Use when user asks for code screenshots, code images, code snippets as images, or says "ray". Calls POST https://ray.tinte.dev/api/v1/screenshot and saves the PNG result. |
Ray - Code Screenshots
Generate code screenshots by calling the ray.tinte.dev API.
API
POST https://ray.tinte.dev/api/v1/screenshot
Content-Type: application/json
Parameters
| Param | Type | Default | Notes |
|---|
code | string | required | 1-10,000 chars |
language | string | "typescript" | typescript, javascript, python, rust, go, java, cpp, c, html, css, json, bash, sql, markdown, toml |
theme | string or TinteBlock | "one-hunter" | Slug from tinte.dev or inline object |
mode | "dark" | "light" | "dark" | |
padding | number | 32 | 0-256 |
fontSize | number | 14 | 8-32 |
lineNumbers | boolean | true | |
title | string | "" | Window chrome title (max 100) |
background | string | "midnight" | One of: midnight, sunset, ocean, forest, ember, steel, aurora, none. Hex colors are not accepted. |
format | "png" | "png" | PNG only |
scale | number | 2 | 1-4 (retina) |
Notes
background: "none" returns a transparent RGBA PNG. Useful when you want to composite the screenshot onto a custom background.
- Returned PNGs always include some transparent margin around the window for the drop shadow, even with
padding: 0. If you're compositing the result, trim that halo first (e.g. magick input.png -trim +repage output.png).
- Long snippets can take 30-60+ seconds to render. Use a per-request timeout when calling from scripts or agents.
Workflow
- Identify the code to screenshot (from file, clipboard, or user input)
- Detect language from file extension or content
- Call the API via curl
- Save the PNG and open it
Example
curl -s -X POST https://ray.tinte.dev/api/v1/screenshot \
-H 'Content-Type: application/json' \
-d '{
"code": "const greeting = \"Hello, world!\";",
"language": "typescript",
"theme": "one-hunter",
"title": "hello.ts"
}' -o screenshot.png && open screenshot.png
Language Detection
| Extension | Language |
|---|
| .ts, .tsx | typescript |
| .js, .jsx | javascript |
| .py | python |
| .rs | rust |
| .go | go |
| .java | java |
| .cpp, .cc, .cxx | cpp |
| .c, .h | c |
| .html | html |
| .css | css |
| .json | json |
| .sh, .bash | bash |
| .sql | sql |
| .md | markdown |
| .toml | toml |
Themes
- Default:
"one-hunter" (Vercel-inspired dark theme)
- Any slug from tinte.dev:
"github-dark", "dracula", "catppuccin", etc.
- Inline TinteBlock object with 13 semantic colors (bg, tx, tx_2, tx_3, ui, ui_2, ui_3, ac_1, ac_2, ac_3, pr, sc, nt)