[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$id":"alacritty-schema.json","$schema":"https://json-schema.org/draft-07/schema#","$comment":"https://alacritty.org/config-alacritty.html","title":"Alacritty Configuration","description":"Configuration schema for [Alacritty](https://github.com/alacritty/alacritty), the GPU enhanced terminal emulator","definitions":{"Alacritty.Cursor.Style":{"type":"object","description":"Cursor Style","properties":{"shape":{"type":"string","default":"Block","description":"Cursor shape\n\n Values for `shape`:\n   - \u2587 Block\n   - _ Underline\n   - | Beam","enum":["Block","Beam","Underline"]},"blinking":{"description":"# Cursor blinking state\n\n Values for `blinking`:\n   - Never: Prevent the cursor from ever blinking\n   - Off: Disable blinking by default\n   - On: Enable blinking by default\n   - Always: Force the cursor to always blink","type":"string","default":"Off","enum":["Never","Off","On","Always"]}},"additionalProperties":false},"Alacritty.Command":{"type":"object","additionalProperties":false,"properties":{"program":{"type":"string"},"args":{"type":"array","items":{"type":"string"}}}},"Alacritty.MouseBinding":{"type":"object","additionalProperties":false,"properties":{"mouse":{"type":"string","enum":["Left","Middle","Right"]},"action":{"type":"string"}},"required":["mouse","action"]},"Alacritty.KeyBindings.Key":{"description":"Identifier of the key pressed.\n\n - A-Z\n - F1-F24\n - Key0-Key9\n\n A full list with available key codes can be found here:\n https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants\n\n Instead of using the name of the keys, the `key` field also supports using the scancode of the desired key. Scancodes have to be specified as a decimal number. This command will allow you to display the hex scancodes for certain keys:\n\n    `showkey --scancodes`.","type":"string"},"Alacritty.KeyBindings.Chars":{"description":"The `chars` field writes the specified string to the terminal. This makes\n    it possible to pass escape sequences. To find escape codes for bindings\n    like `PageUp` (`\"\\x1b[5~\"`), you can run the command `showkey -a` outside\n    of tmux. Note that applications use terminfo to map escape sequences back\n    to keys. It is therefore required to update the terminfo when changing an\n    escape sequence.","type":"string"},"Alacritty.KeyBindings.Action":{"description":"Execute a predefined action\n   - ToggleViMode\n   - SearchForward\n       Start searching toward the right of the search origin.\n   - SearchBackward\n       Start searching toward the left of the search origin.\n   - Copy\n   - Paste\n   - IncreaseFontSize\n   - DecreaseFontSize\n   - ResetFontSize\n   - ScrollPageUp\n   - ScrollPageDown\n   - ScrollHalfPageUp\n   - ScrollHalfPageDown\n   - ScrollLineUp\n   - ScrollLineDown\n   - ScrollToTop\n   - ScrollToBottom\n   - ClearHistory\n       Remove the terminal's scrollback history.\n   - Hide\n       Hide the Alacritty window.\n   - Minimize\n       Minimize the Alacritty window.\n   - Quit\n       Quit Alacritty.\n   - ToggleFullscreen\n   - SpawnNewInstance\n       Spawn a new instance of Alacritty.\n   - CreateNewWindow\n       Create a new Alacritty window from the current process.\n   - ClearLogNotice\n       Clear Alacritty's UI warning and error notice.\n   - ClearSelection\n       Remove the active selection.\n   - ReceiveChar\n   - None\n - Vi mode exclusive actions:\n   - Open\n       Perform the action of the first matching hint under the vi mode cursor\n       with `mouse.enabled` set to `true`.\n   - ToggleNormalSelection\n   - ToggleLineSelection\n   - ToggleBlockSelection\n   - ToggleSemanticSelection\n       Toggle semantic selection based on `selection.semantic_escape_chars`.\n   - CenterAroundViCursor\n       Center view around vi mode cursor\n - Vi mode exclusive cursor motion actions:\n   - Up\n       One line up.\n   - Down\n       One line down.\n   - Left\n       One character left.\n   - Right\n       One character right.\n   - First\n       First column, or beginning of the line when already at the first column.\n   - Last\n       Last column, or beginning of the line when already at the last column.\n   - FirstOccupied\n       First non-empty cell in this terminal row, or first non-empty cell of\n       the line when already at the first cell of the row.\n   - High\n       Top of the screen.\n   - Middle\n       Center of the screen.\n   - Low\n       Bottom of the screen.\n   - SemanticLeft\n       Start of the previous semantically separated word.\n   - SemanticRight\n       Start of the next semantically separated word.\n   - SemanticLeftEnd\n       End of the previous semantically separated word.\n   - SemanticRightEnd\n       End of the next semantically separated word.\n   - WordLeft\n       Start of the previous whitespace separated word.\n   - WordRight\n       Start of the next whitespace separated word.\n   - WordLeftEnd\n       End of the previous whitespace separated word.\n   - WordRightEnd\n       End of the next whitespace separated word.\n   - Bracket\n       Character matching the bracket at the cursor's location.\n   - SearchNext\n       Beginning of the next match.\n   - SearchPrevious\n       Beginning of the previous match.\n   - SearchStart\n       Start of the match to the left of the vi mode cursor.\n   - SearchEnd\n       End of the match to the right of the vi mode cursor.\n - Search mode exclusive actions:\n   - SearchFocusNext\n       Move the focus to the next search match.\n   - SearchFocusPrevious\n       Move the focus to the previous search match.\n   - SearchConfirm\n   - SearchCancel\n   - SearchClear\n       Reset the search regex.\n   - SearchDeleteWord\n       Delete the last word in the search regex.\n   - SearchHistoryPrevious\n       Go to the previous regex in the search history.\n   - SearchHistoryNext\n       Go to the next regex in the search history.\n - macOS exclusive actions:\n   - ToggleSimpleFullscreen\n       Enter fullscreen without occupying another space.\n - Linux/BSD exclusive actions:\n   - CopySelection\n       Copy from the selection buffer.\n   - PasteSelection\n       Paste from the selection buffer.\n ","type":"string","enum":["ToggleViMode","SearchForward","SearchBackward","Copy","Paste","IncreaseFontSize","DecreaseFontSize","ResetFontSize","ScrollPageUp","ScrollPageDown","ScrollHalfPageUp","ScrollHalfPageDown","ScrollLineUp","ScrollLineDown","ScrollToTop","ScrollToBottom","ClearHistory","Hide","Minimize","Quit","ToggleFullscreen","SpawnNewInstance","CreateNewWindow","ClearLogNotice","ClearSelection","ReceiveChar","None","Open","ToggleNormalSelection","ToggleLineSelection","ToggleBlockSelection","ToggleSemanticSelection","CenterAroundViCursor","Up","Down","Left","Right","First","Last","FirstOccupied","High","Middle","Low","SemanticLeft","SemanticRight","SemanticLeftEnd","SemanticRightEnd","WordLeft","WordRight","WordLeftEnd","WordRightEnd","Bracket","SearchNext","SearchPrevious","SearchStart","SearchEnd","SearchFocusNext","SearchFocusPrevious","SearchConfirm","SearchCancel","SearchClear","SearchDeleteWord","SearchHistoryPrevious","SearchHistoryNext","ToggleSimpleFullscreen","CopySelection","PasteSelection"]},"Alacritty.Mode":{"type":"string","enum":["AppCursor","AppKeypad","Search","Alt","Vi","~AppCursor","~AppKeypad","~Search","~Alt","~Vi"]},"Alacritty.Mods":{"type":"string","description":"Multiple modifiers can be combined using |, like this: \"Control | Shift\"","pattern":"(Command|Control|Option|Super|Shift|Alt)(\\s*\\|\\s*(Command|Control|Option|Super|Shift|Alt))*"}},"type":"object","properties":{"import":{"type":"array","description":"Import additional configuration files. \n Imports are loaded in order, skipping all missing files, with the importing file being loaded last. If a field is already present in a previous import, it will be replaced.","items":{"type":"string"}},"shell":{"description":"You can set shell.program to the path of your favorite shell, e.g. /bin/zsh. Entries in shell.args are passed as arguments to the shell","oneOf":[{"type":"string"},{"properties":{"program":{"type":"string"},"args":{"type":"array","items":{"type":"string"}}},"type":"object"}]},"working_directory":{"description":"Startup directory\n\n Directory the shell is started in. If this is unset, or `None`, the working\n directory of the parent process will be used.","type":"string","default":"None"},"live_config_reload":{"type":"boolean","description":"Live config reload (changes require restart). Will make alacritty auto load new changes in the config file"},"ipc_socket":{"type":"boolean","description":"Offer IPC using `alacritty msg` (unix only)"},"env":{"description":"Any items in the `env` entry below will be added as environment variables. Some entries may override variables set by alacritty itself.","type":"object","additionalProperties":true},"window":{"type":"object","additionalProperties":false,"properties":{"dimensions":{"description":"Window dimensions (changes require restart). \n Number of lines/columns (not pixels) in the terminal. Both lines and columns\n must be non-zero for this to take effect. The number of columns must be at\n least `2`, while using a value of `0` for columns and lines will fall back\n to the window manager's recommended size","type":"object","properties":{"columns":{"type":"number","minimum":2},"lines":{"type":"number","minimum":0}},"required":[],"additionalProperties":false},"position":{"description":"Window position (changes require restart)\nSpecified in number of pixels.\nIf the position is not set, the window manager will handle the placement.","type":"object","additionalProperties":false,"properties":{"x":{"type":"number"},"y":{"type":"number"}}},"padding":{"description":"# Window padding (changes require restart)\n\n Blank space added around the window in pixels. This padding is scaled\n by DPI and the specified value is always added at both opposing sides.","additionalProperties":false,"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}}},"dynamic_padding":{"type":"boolean","description":"Spread additional padding evenly around the terminal content."},"decorations":{"description":"Values for `decorations`: \n     - full: Borders and title bar \n     - none: Neither borders nor title bar \n\n Values for `decorations` (macOS only):\n     - transparent: Title bar, transparent background and title bar buttons\n     - buttonless: Title bar, transparent background and no title bar buttons","type":"string","enum":["full","none","transparent","buttonless"]},"opacity":{"description":"Background opacity\n\n Window opacity as a floating point number from `0.0` to `1.0`.\n The value `0.0` is completely transparent and `1.0` is opaque.","type":"number","minimum":0,"maximum":1,"default":1.0},"blur":{"description":"Request compositor to blur content behind transparent windows","type":"boolean","default":"false"},"startup_mode":{"description":"  # Startup Mode (changes require restart)\n\n Values for `startup_mode`:\n   - Windowed\n   - Maximized\n   - Fullscreen\n\n Values for `startup_mode` (macOS only):\n   - SimpleFullscreen","type":"string","enum":["Windowed","Maximized","Fullscreen","SimpleFullscreen"]},"title":{"type":"string","description":"Window Title"},"dynamic_title":{"type":"boolean","default":true,"description":"Allow terminal applications to change Alacritty's window title."},"class":{"type":"object","description":"Window class (Linux/BSD only):","properties":{"instance":{"type":"string","default":"Alacritty"},"general":{"type":"string","default":"Alacritty"}}},"decorations_theme_variant":{"type":"string","description":"Decorations theme variant (Linux/BSD only)\n\nOverride the variant of the GTK theme/Wayland client side decorations.\n Commonly supported values are `dark` and `light`. Set this to `None` to use\n the default theme variant.","default":"None"},"resize_increments":{"description":"Prefer resizing window by discrete steps equal to cell dimensions","type":"boolean","default":"false"},"option_as_alt":{"description":"Make `Option` key behave as `Alt` (macos only)","type":"string","default":"None","enum":["OnlyLeft","OnlyRight","Both","None"]}}},"scrolling":{"type":"object","properties":{"history":{"type":"integer","minimum":0,"default":10000,"description":"Maximum number of lines in the scrollback buffer.\n Specifying '0' will disable scrolling."},"multiplier":{"description":"Scrolling distance multiplier.","type":"integer","default":3}},"additionalProperties":false},"font":{"type":"object","properties":{"normal":{"type":"object","properties":{"family":{"description":"Font family\n\n Default:\n   - (macOS) Menlo\n   - (Linux/BSD) monospace\n   - (Windows) Consolas","type":"string"},"style":{"description":"The `style` can be specified to pick a specific face.","type":"string"}}},"bold":{"type":"object","properties":{"family":{"description":"If the bold family is not specified, it will fall back to the\n value specified for the normal font.","type":"string"},"style":{"description":"The `style` can be specified to pick a specific face.","type":"string"}}},"italic":{"type":"object","properties":{"family":{"description":"If the italic family is not specified, it will fall back to the\n value specified for the normal font.","type":"string"},"style":{"description":"The `style` can be specified to pick a specific face.","type":"string"}}},"bold_italic":{"type":"object","properties":{"family":{"description":"If the bold_italic family is not specified, it will fall back to the\n value specified for the normal font.","type":"string"},"style":{"description":"The `style` can be specified to pick a specific face.","type":"string"}}},"size":{"type":"number","minimum":0,"description":"Point size"},"offset":{"type":"object","additionalProperties":false,"description":"Offset is the extra space around each character. `offset.y` can be thought\n of as modifying the line spacing, and `offset.x` as modifying the letter\n spacing.","properties":{"x":{"type":"number","default":0},"y":{"type":"number","default":0}}},"glyph_offset":{"type":"object","additionalProperties":false,"description":"Glyph offset determines the locations of the glyphs within their cells with\n the default being at the bottom. Increasing `x` moves the glyph to the\n right, increasing `y` moves the glyph upward.","properties":{"x":{"type":"number","default":0},"y":{"type":"number","default":0}}},"builtin_box_drawing":{"type":"boolean","default":false,"description":"Use built-in font for box drawing characters.\n\n If `true`, Alacritty will use a custom built-in font for box drawing\n characters (Unicode points 2500 - 259f)."}},"additionalProperties":false},"colors":{"properties":{"primary":{"type":"object","properties":{"foreground":{"default":"#d8d8d8","pattern":"#[a-z0-9]{6}","type":"string"},"background":{"default":"#181818","pattern":"#[a-z0-9]{6}","type":"string"},"dim_foreground":{"default":"#828482","pattern":"#[a-z0-9]{6}","type":"string","description":"If this is not set, the color is automatically calculated based on the foreground color"},"bright_foreground":{"default":"None","pattern":"#[a-z0-9]{6}|None","type":"string","description":"This color is only used when `draw_bold_text_with_bright_colors` is true. If this is not set, the normal foreground will be used"}}},"cursor":{"type":"object","description":"Colors which should be used to draw the terminal cursor. Allowed values are hexadecimal colors like `#ff00ff`, or `CellForeground`/`CellBackground`, which references the affected cell","properties":{"text":{"default":"CellBackground","pattern":"#[a-z0-9]{6}|CellBackground|CellForeground","type":"string"},"cursor":{"default":"CellForeground","pattern":"#[a-z0-9]{6}|CellBackground|CellForeground","type":"string"}}},"vi_mode_cursor":{"type":"object","description":"Colors for the cursor when the vi mode is active. Allowed values are hexadecimal colors like `#ff00ff`, or `CellForeground`/`CellBackground`, which references the affected cell","properties":{"text":{"default":"CellBackground","pattern":"#[a-z0-9]{6}|CellBackground|CellForeground","type":"string"},"cursor":{"default":"CellForeground","pattern":"#[a-z0-9]{6}|CellBackground|CellForeground","type":"string"}}},"search":{"type":"object","properties":{"matches":{"type":"object","properties":{"foreground":{"default":"#181818","pattern":"#[a-z0-9]{6}|CellBackground|CellForeground","type":"string"},"background":{"default":"#ac4242","pattern":"#[a-z0-9]{6}|CellBackground|CellForeground","type":"string"}}},"focused_match":{"type":"object","properties":{"foreground":{"default":"#181818","pattern":"#[a-z0-9]{6}|CellBackground|CellForeground","type":"string"},"background":{"default":"#f4bf75","pattern":"#[a-z0-9]{6}|CellBackground|CellForeground","type":"string"}}}}},"hints":{"type":"object","properties":{"start":{"type":"object","description":"First character in the hint label. Allowed values are hexadecimal colors like `#ff00ff`, or `CellForeground`/`CellBackground`, which references the affected cell","properties":{"foreground":{"default":"#181818","pattern":"#[a-z0-9]{6}|CellBackground|CellForeground","type":"string"},"background":{"default":"#f4bf75","pattern":"#[a-z0-9]{6}|CellBackground|CellForeground","type":"string"}}},"end":{"type":"object","description":"All characters after the first one in the hint label. Allowed values are hexadecimal colors like `#ff00ff`, or `CellForeground`/`CellBackground`, which references the affected cell","properties":{"foreground":{"default":"#181818","pattern":"#[a-z0-9]{6}|CellBackground|CellForeground","type":"string"},"background":{"default":"#ac4242","pattern":"#[a-z0-9]{6}|CellBackground|CellForeground","type":"string"}}}}},"line_indicator":{"type":"object","description":"Color used for the indicator displaying the position in history during search and vi mode","properties":{"foreground":{"default":"None","pattern":"#[a-z0-9]{6}|None","type":"string"},"background":{"default":"None","pattern":"#[a-z0-9]{6}|None","type":"string"}}},"footer_bar":{"type":"object","description":"Color used for the footer bar on the bottom, used by search regex input, hyperlink URI preview, etc","properties":{"foreground":{"default":"#181818","pattern":"#[a-z0-9]{6}","type":"string"},"background":{"default":"#d8d8d8","pattern":"#[a-z0-9]{6}","type":"string"}}},"selection":{"type":"object","description":"Colors used for drawing selections. Allowed values are hexadecimal colors like `#ff00ff`, or `CellForeground`/`CellBackground`, which references the affected cell","properties":{"text":{"default":"CellBackground","pattern":"#[a-z0-9]{6}|CellBackground|CellForeground","type":"string"},"cursor":{"default":"CellForeground","pattern":"#[a-z0-9]{6}|CellBackground|CellForeground","type":"string"}}},"normal":{"type":"object","properties":{"black":{"default":"#181818","pattern":"#[a-z0-9]{6}","type":"string"},"red":{"default":"#ac4242","pattern":"#[a-z0-9]{6}","type":"string"},"green":{"default":"#90a959","pattern":"#[a-z0-9]{6}","type":"string"},"yellow":{"default":"#f4bf75","pattern":"#[a-z0-9]{6}","type":"string"},"blue":{"default":"#689fb5","pattern":"#[a-z0-9]{6}","type":"string"},"magenta":{"default":"#aa759f","pattern":"#[a-z0-9]{6}","type":"string"},"cyan":{"default":"#75b5aa","pattern":"#[a-z0-9]{6}","type":"string"},"white":{"default":"#d8d8d8","pattern":"#[a-z0-9]{6}","type":"string"}}},"bright":{"type":"object","properties":{"black":{"default":"#6b6b6b","pattern":"#[a-z0-9]{6}","type":"string"},"red":{"default":"#c55555","pattern":"#[a-z0-9]{6}","type":"string"},"green":{"default":"#aac474","pattern":"#[a-z0-9]{6}","type":"string"},"yellow":{"default":"#feca88","pattern":"#[a-z0-9]{6}","type":"string"},"blue":{"default":"#82b8c8","pattern":"#[a-z0-9]{6}","type":"string"},"magenta":{"default":"#c28cb8","pattern":"#[a-z0-9]{6}","type":"string"},"cyan":{"default":"#93d3c3","pattern":"#[a-z0-9]{6}","type":"string"},"white":{"default":"#f8f8f8","pattern":"#[a-z0-9]{6}","type":"string"}}},"dim":{"type":"object","properties":{"black":{"default":"#0f0f0f","pattern":"#[a-z0-9]{6}","type":"string"},"red":{"default":"#712b2b","pattern":"#[a-z0-9]{6}","type":"string"},"green":{"default":"#5f6f3a","pattern":"#[a-z0-9]{6}","type":"string"},"yellow":{"default":"#a17e4d","pattern":"#[a-z0-9]{6}","type":"string"},"blue":{"default":"#456877","pattern":"#[a-z0-9]{6}","type":"string"},"magenta":{"default":"#704d68","pattern":"#[a-z0-9]{6}","type":"string"},"cyan":{"default":"#4d7770","pattern":"#[a-z0-9]{6}","type":"string"},"white":{"default":"#8e8e8e","pattern":"#[a-z0-9]{6}","type":"string"}}},"indexed_colors":{"type":"array","description":"The indexed colors include all colors from 16 to 256. When these are not set, they're filled with sensible defaults","items":{"type":"object","properties":{"index":{"type":"integer"},"color":{"type":"string"}}}},"transparent_background_colors":{"type":"boolean","default":"false","description":"Whether or not `window.opacity` applies to all cell backgrounds, or only to the default background. When set to `true` all cells will be transparent regardless of their background color"},"draw_bold_text_with_bright_colors":{"type":"boolean","default":"false","description":"If `true`, bold text is drawn using the bright color variants."}},"additionalProperties":false},"bell":{"type":"object","description":"The bell is rung every time the BEL control character is received.","additionalProperties":false,"properties":{"animation":{"type":"string","enum":["Ease","EaseOut","EaseOutSine","EaseOutQuad","EaseOutCubic","EaseOutQuart","EaseOutQuint","EaseOutExpo","EaseOutCirc","Linear"],"default":"Linear","description":"Animation effect for flashing the screen when the visual bell is rung."},"duration":{"description":"Duration of the visual bell flash in milliseconds. A `duration` of `0` will\n disable the visual bell animation.","type":"integer","default":0},"color":{"type":"string","default":"#ffffff","pattern":"#[a-z0-9]{6}","description":"Visual bell animation color."},"command":{"$ref":"#/definitions/Alacritty.Command"}}},"selection":{"type":"object","additionalProperties":false,"properties":{"semantic_escape_chars":{"type":"string","default":",\u2502`|:\"' ()[]{}<>\t","description":"This string contains all characters that are used as separators for \"semantic words\" in Alacritty."},"save_to_clipboard":{"type":"boolean","default":false,"description":"When set to `true`, selected text will be copied to the primary clipboard."}}},"cursor":{"type":"object","additionalProperties":false,"properties":{"style":{"$ref":"#/definitions/Alacritty.Cursor.Style"},"vi_mode_style":{"oneOf":[{"$ref":"#/definitions/Alacritty.Cursor.Style"},{"default":"None","type":"string"}],"description":"\nVi mode cursor style\n If the vi mode cursor style is `None` or not specified, it will fall back to\n the style of the active value of the normal cursor."},"blink_interval":{"description":"Cursor blinking interval in milliseconds.","type":"integer","default":750,"minimum":0},"blink_timeout":{"type":"integer","description":"Time after which cursor stops blinking in seconds. \n\n Specifying '0' will disable timeout for blinking","default":5},"unfocused_hollow":{"type":"boolean","default":true,"description":"If this is `true`, the cursor will be rendered as a hollow box when the window is not focused."},"thickness":{"type":"number","description":"Thickness of the cursor relative to the cell width as floating point number from `0.0` to `1.0`.","minimum":0,"maximum":1}}},"terminal":{"type":"object","osc52":{"description":"Controls the ability to write to the system clipboard with the OSC 52 escape sequence. While this escape sequence is useful to copy contents from the remote server, allowing any application to read from the clipboard can be easily abused while not providing significant benefits over explicitly pasting text","default":"OnlyCopy","enum":["Disabled","OnlyCopy","OnlyPaste","CopyPaste"]}},"mouse":{"type":"object","properties":{"hide_when_typing":{"description":"When this is `true`, the cursor is temporarily hidden when typing.","default":false,"type":"boolean"},"bindings":{"type":"array","items":{"$ref":"#/definitions/Alacritty.MouseBinding"}}}},"hints":{"description":"Terminal hints can be used to find text or hyperlinks in the visible part of the terminal and pipe it to other applications","type":"object","properties":{"alphabet":{"description":"Keys used for the hint labels","default":"jfkdls;ahgurieowpq","type":"string"},"enabled":{"description":"Array with all available hints. Each hint must have at least one of `regex` or `hyperlinks` and either an `action` or a `command`","type":"array","items":{"type":"object","properties":{"regex":{"description":"Regex each line will be compared against","default":"(ipfs:|ipns:|magnet:|mailto:|gemini://|gopher://|https://|http://|news:|file:|git://|ssh:|ftp://)[^\u0000-\u001f\u007f-\u009f<>\"\\s{-}\\^\u27e8\u27e9`]+","type":"string"},"hyperlinks":{"default":true,"description":"When this is `true`, all OSC 8 escape sequence hyperlinks will be included in the hints","type":"boolean"},"post_processing":{"default":true,"description":"When this is `true`, heuristics will be used to shorten the match if there are characters likely not to be part of the hint (e.g. a trailing .). This is most useful for URIs and applies only to `regex` matches","type":"boolean"},"persist":{"default":false,"description":"When this is `true`, hints remain persistent after selection","type":"boolean"},"action":{"description":"- Copy: Copy the hint's text to the clipboard\n- Paste: Paste the hint's text to the terminal or search\n- Select: Select the hint's text\n- MoveViModeCursor: Move the vi mode cursor to the beginning of the hint","enum":["Copy","Paste","Select","MoveViModeCursor"],"type":"string"},"command":{"description":"Command which will be executed when the hint is clicked or selected with the `binding`.\nThe hint's text is always attached as the last argument","oneOf":[{"type":"string"},{"type":"object","properties":{"program":{"type":"string"},"args":{"type":"array","items":{"type":"string"}}}}]},"binding":{"description":"See `keyboard.bindings` for documentation on available values.\nThis controls which key binding is used to start the keyboard hint selection process","type":"object","properties":{"key":{"$ref":"#/definitions/Alacritty.KeyBindings.Key","default":"U"},"mods":{"$ref":"#/definitions/Alacritty.Mods","default":"Control|Shift"},"mode":{"$ref":"#/definitions/Alacritty.Mode"}}},"mouse":{"description":"See `keyboard.bindings` for documentation on available mods","properties":{"mods":{"$ref":"#/definitions/Alacritty.Mods"},"enabled":{"default":true,"description":"The `enabled` field controls if the hint should be underlined when hovering over the hint text with all `mods` pressed","type":"boolean"}},"type":"object"}}}}}},"key":{"properties":{"bindings":{"type":"array","items":{"description":"Key bindings are specified as a list of objects. For example, this is the default paste binding:\n `- { key: V, mods: Control|Shift, action: Paste }`","type":"object","additionalProperties":false,"properties":{"key":{"$ref":"#/definitions/Alacritty.KeyBindings.Key"},"chars":{"$ref":"#/definitions/Alacritty.KeyBindings.Chars"},"action":{"$ref":"#/definitions/Alacritty.KeyBindings.Action"},"command":{"$ref":"#/definitions/Alacritty.Command"},"mode":{"$ref":"#/definitions/Alacritty.Mode"},"mods":{"$ref":"#/definitions/Alacritty.Mods"}}}}}},"debug":{"type":"object","properties":{"render_timer":{"type":"boolean","description":"Display the time it takes to redraw each frame.","default":false},"persistent_logging":{"type":"boolean","description":"Keep the log file after quitting Alacritty.","default":false},"log_level":{"type":"string","description":"To add extra libraries to logging `ALACRITTY_EXTRA_LOG_TARGETS` variable can be used","enum":["Off","Error","Warn","Info","Debug","Trace"],"default":"Warn"},"renderer":{"type":"string","description":"Force use of a specific renderer, \"None\" will use the highest available one.","enum":["glsl3","gles2","gles2_pure","None"],"default":"None"},"print_events":{"type":"boolean","description":"Log all received window events","default":false},"highlight_damage":{"type":"boolean","description":"Highlight window damage information.","default":false},"prefer_egl":{"type":"boolean","description":"Use EGL as display API if the current platform allows it. Note that transparency may not work with EGL on Linux/BSD","default":false}},"additionalProperties":false}},"additionalProperties":true}
</schema>

[User] Provide a JSON object that satisfies the schema "Alacritty Configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Alacritty Configuration

Configuration schema for [Alacritty](https://github.com/alacritty/alacritty), the GPU enhanced terminal emulator

Cursor Style

Cursor shape

 Values for `shape`:
   - ▇ Block
   - _ Underline
   - | Beam

# Cursor blinking state

 Values for `blinking`:
   - Never: Prevent the cursor from ever blinking
   - Off: Disable blinking by default
   - On: Enable blinking by default
   - Always: Force the cursor to always blink

Identifier of the key pressed.

 - A-Z
 - F1-F24
 - Key0-Key9

 A full list with available key codes can be found here:
 https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants

 Instead of using the name of the keys, the `key` field also supports using the scancode of the desired key. Scancodes have to be specified as a decimal number. This command will allow you to display the hex scancodes for certain keys:

    `showkey --scancodes`.

The `chars` field writes the specified string to the terminal. This makes
    it possible to pass escape sequences. To find escape codes for bindings
    like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
    of tmux. Note that applications use terminfo to map escape sequences back
    to keys. It is therefore required to update the terminfo when changing an
    escape sequence.

Execute a predefined action
   - ToggleViMode
   - SearchForward
       Start searching toward the right of the search origin.
   - SearchBackward
       Start searching toward the left of the search origin.
   - Copy
   - Paste
   - IncreaseFontSize
   - DecreaseFontSize
   - ResetFontSize
   - ScrollPageUp
   - ScrollPageDown
   - ScrollHalfPageUp
   - ScrollHalfPageDown
   - ScrollLineUp
   - ScrollLineDown
   - ScrollToTop
   - ScrollToBottom
   - ClearHistory
       Remove the terminal's scrollback history.
   - Hide
       Hide the Alacritty window.
   - Minimize
       Minimize the Alacritty window.
   - Quit
       Quit Alacritty.
   - ToggleFullscreen
   - SpawnNewInstance
       Spawn a new instance of Alacritty.
   - CreateNewWindow
       Create a new Alacritty window from the current process.
   - ClearLogNotice
       Clear Alacritty's UI warning and error notice.
   - ClearSelection
       Remove the active selection.
   - ReceiveChar
   - None
 - Vi mode exclusive actions:
   - Open
       Perform the action of the first matching hint under the vi mode cursor
       with `mouse.enabled` set to `true`.
   - ToggleNormalSelection
   - ToggleLineSelection
   - ToggleBlockSelection
   - ToggleSemanticSelection
       Toggle semantic selection based on `selection.semantic_escape_chars`.
   - CenterAroundViCursor
       Center view around vi mode cursor
 - Vi mode exclusive cursor motion actions:
   - Up
       One line up.
   - Down
       One line down.
   - Left
       One character left.
   - Right
       One character right.
   - First
       First column, or beginning of the line when already at the first column.
   - Last
       Last column, or beginning of the line when already at the last column.
   - FirstOccupied
       First non-empty cell in this terminal row, or first non-empty cell of
       the line when already at the first cell of the row.
   - High
       Top of the screen.
   - Middle
       Center of the screen.
   - Low
       Bottom of the screen.
   - SemanticLeft
       Start of the previous semantically separated word.
   - SemanticRight
       Start of the next semantically separated word.
   - SemanticLeftEnd
       End of the previous semantically separated word.
   - SemanticRightEnd
       End of the next semantically separated word.
   - WordLeft
       Start of the previous whitespace separated word.
   - WordRight
       Start of the next whitespace separated word.
   - WordLeftEnd
       End of the previous whitespace separated word.
   - WordRightEnd
       End of the next whitespace separated word.
   - Bracket
       Character matching the bracket at the cursor's location.
   - SearchNext
       Beginning of the next match.
   - SearchPrevious
       Beginning of the previous match.
   - SearchStart
       Start of the match to the left of the vi mode cursor.
   - SearchEnd
       End of the match to the right of the vi mode cursor.
 - Search mode exclusive actions:
   - SearchFocusNext
       Move the focus to the next search match.
   - SearchFocusPrevious
       Move the focus to the previous search match.
   - SearchConfirm
   - SearchCancel
   - SearchClear
       Reset the search regex.
   - SearchDeleteWord
       Delete the last word in the search regex.
   - SearchHistoryPrevious
       Go to the previous regex in the search history.
   - SearchHistoryNext
       Go to the next regex in the search history.
 - macOS exclusive actions:
   - ToggleSimpleFullscreen
       Enter fullscreen without occupying another space.
 - Linux/BSD exclusive actions:
   - CopySelection
       Copy from the selection buffer.
   - PasteSelection
       Paste from the selection buffer.

ToggleViMode SearchForward SearchBackward Copy Paste IncreaseFontSize DecreaseFontSize ResetFontSize ScrollPageUp ScrollPageDown ScrollHalfPageUp ScrollHalfPageDown ScrollLineUp ScrollLineDown ScrollToTop ScrollToBottom ClearHistory Hide Minimize Quit ToggleFullscreen SpawnNewInstance CreateNewWindow ClearLogNotice ClearSelection ReceiveChar None Open ToggleNormalSelection ToggleLineSelection ToggleBlockSelection ToggleSemanticSelection CenterAroundViCursor Up Down Left Right First Last FirstOccupied High Middle Low SemanticLeft SemanticRight SemanticLeftEnd SemanticRightEnd WordLeft WordRight WordLeftEnd WordRightEnd Bracket SearchNext SearchPrevious SearchStart SearchEnd SearchFocusNext SearchFocusPrevious SearchConfirm SearchCancel SearchClear SearchDeleteWord SearchHistoryPrevious SearchHistoryNext ToggleSimpleFullscreen CopySelection PasteSelection

AppCursor AppKeypad Search Alt Vi ~AppCursor ~AppKeypad ~Search ~Alt ~Vi

Multiple modifiers can be combined using |, like this: "Control | Shift"

Import additional configuration files.
 Imports are loaded in order, skipping all missing files, with the importing file being loaded last. If a field is already present in a previous import, it will be replaced.

You can set shell.program to the path of your favorite shell, e.g. /bin/zsh. Entries in shell.args are passed as arguments to the shell

Startup directory

 Directory the shell is started in. If this is unset, or `None`, the working
 directory of the parent process will be used.

Live config reload (changes require restart). Will make alacritty auto load new changes in the config file

Offer IPC using `alacritty msg` (unix only)

Any items in the `env` entry below will be added as environment variables. Some entries may override variables set by alacritty itself.

Window dimensions (changes require restart).
 Number of lines/columns (not pixels) in the terminal. Both lines and columns
 must be non-zero for this to take effect. The number of columns must be at
 least `2`, while using a value of `0` for columns and lines will fall back
 to the window manager's recommended size

Window position (changes require restart)
Specified in number of pixels.
If the position is not set, the window manager will handle the placement.

# Window padding (changes require restart)

 Blank space added around the window in pixels. This padding is scaled
 by DPI and the specified value is always added at both opposing sides.

Spread additional padding evenly around the terminal content.

Values for `decorations`:
     - full: Borders and title bar
     - none: Neither borders nor title bar

 Values for `decorations` (macOS only):
     - transparent: Title bar, transparent background and title bar buttons
     - buttonless: Title bar, transparent background and no title bar buttons

Background opacity

 Window opacity as a floating point number from `0.0` to `1.0`.
 The value `0.0` is completely transparent and `1.0` is opaque.

Request compositor to blur content behind transparent windows

  # Startup Mode (changes require restart)

 Values for `startup_mode`:
   - Windowed
   - Maximized
   - Fullscreen

 Values for `startup_mode` (macOS only):
   - SimpleFullscreen

Windowed Maximized Fullscreen SimpleFullscreen

Window Title

Allow terminal applications to change Alacritty's window title.

Window class (Linux/BSD only):

Decorations theme variant (Linux/BSD only)

Override the variant of the GTK theme/Wayland client side decorations.
 Commonly supported values are `dark` and `light`. Set this to `None` to use
 the default theme variant.

Prefer resizing window by discrete steps equal to cell dimensions

Make `Option` key behave as `Alt` (macos only)

Maximum number of lines in the scrollback buffer.
 Specifying '0' will disable scrolling.

Scrolling distance multiplier.

Font family

 Default:
   - (macOS) Menlo
   - (Linux/BSD) monospace
   - (Windows) Consolas

The `style` can be specified to pick a specific face.

If the bold family is not specified, it will fall back to the
 value specified for the normal font.

If the italic family is not specified, it will fall back to the
 value specified for the normal font.

If the bold_italic family is not specified, it will fall back to the
 value specified for the normal font.

Point size

Offset is the extra space around each character. `offset.y` can be thought
 of as modifying the line spacing, and `offset.x` as modifying the letter
 spacing.

Glyph offset determines the locations of the glyphs within their cells with
 the default being at the bottom. Increasing `x` moves the glyph to the
 right, increasing `y` moves the glyph upward.

Use built-in font for box drawing characters.

 If `true`, Alacritty will use a custom built-in font for box drawing
 characters (Unicode points 2500 - 259f).

If this is not set, the color is automatically calculated based on the foreground color

This color is only used when `draw_bold_text_with_bright_colors` is true. If this is not set, the normal foreground will be used

Colors which should be used to draw the terminal cursor. Allowed values are hexadecimal colors like `#ff00ff`, or `CellForeground`/`CellBackground`, which references the affected cell

Colors for the cursor when the vi mode is active. Allowed values are hexadecimal colors like `#ff00ff`, or `CellForeground`/`CellBackground`, which references the affected cell

First character in the hint label. Allowed values are hexadecimal colors like `#ff00ff`, or `CellForeground`/`CellBackground`, which references the affected cell

All characters after the first one in the hint label. Allowed values are hexadecimal colors like `#ff00ff`, or `CellForeground`/`CellBackground`, which references the affected cell

Color used for the indicator displaying the position in history during search and vi mode

Color used for the footer bar on the bottom, used by search regex input, hyperlink URI preview, etc

Colors used for drawing selections. Allowed values are hexadecimal colors like `#ff00ff`, or `CellForeground`/`CellBackground`, which references the affected cell

The indexed colors include all colors from 16 to 256. When these are not set, they're filled with sensible defaults

Whether or not `window.opacity` applies to all cell backgrounds, or only to the default background. When set to `true` all cells will be transparent regardless of their background color

If `true`, bold text is drawn using the bright color variants.

The bell is rung every time the BEL control character is received.

Ease EaseOut EaseOutSine EaseOutQuad EaseOutCubic EaseOutQuart EaseOutQuint EaseOutExpo EaseOutCirc Linear

Animation effect for flashing the screen when the visual bell is rung.

Duration of the visual bell flash in milliseconds. A `duration` of `0` will
 disable the visual bell animation.

Visual bell animation color.

This string contains all characters that are used as separators for "semantic words" in Alacritty.

When set to `true`, selected text will be copied to the primary clipboard.

Vi mode cursor style
 If the vi mode cursor style is `None` or not specified, it will fall back to
 the style of the active value of the normal cursor.

Cursor blinking interval in milliseconds.

Time after which cursor stops blinking in seconds.

 Specifying '0' will disable timeout for blinking

If this is `true`, the cursor will be rendered as a hollow box when the window is not focused.

Thickness of the cursor relative to the cell width as floating point number from `0.0` to `1.0`.

Controls the ability to write to the system clipboard with the OSC 52 escape sequence. While this escape sequence is useful to copy contents from the remote server, allowing any application to read from the clipboard can be easily abused while not providing significant benefits over explicitly pasting text

When this is `true`, the cursor is temporarily hidden when typing.

Terminal hints can be used to find text or hyperlinks in the visible part of the terminal and pipe it to other applications

Keys used for the hint labels

Array with all available hints. Each hint must have at least one of `regex` or `hyperlinks` and either an `action` or a `command`

Regex each line will be compared against

When this is `true`, all OSC 8 escape sequence hyperlinks will be included in the hints

When this is `true`, heuristics will be used to shorten the match if there are characters likely not to be part of the hint (e.g. a trailing .). This is most useful for URIs and applies only to `regex` matches

When this is `true`, hints remain persistent after selection

- Copy: Copy the hint's text to the clipboard
- Paste: Paste the hint's text to the terminal or search
- Select: Select the hint's text
- MoveViModeCursor: Move the vi mode cursor to the beginning of the hint

Command which will be executed when the hint is clicked or selected with the `binding`.
The hint's text is always attached as the last argument

See `keyboard.bindings` for documentation on available values.
This controls which key binding is used to start the keyboard hint selection process

See `keyboard.bindings` for documentation on available mods

The `enabled` field controls if the hint should be underlined when hovering over the hint text with all `mods` pressed

Key bindings are specified as a list of objects. For example, this is the default paste binding:
 `- { key: V, mods: Control|Shift, action: Paste }`

Display the time it takes to redraw each frame.

Keep the log file after quitting Alacritty.

To add extra libraries to logging `ALACRITTY_EXTRA_LOG_TARGETS` variable can be used

Force use of a specific renderer, "None" will use the highest available one.

Log all received window events

Highlight window damage information.

Use EGL as display API if the current platform allows it. Note that transparency may not work with EGL on Linux/BSD

Provide a JSON object that satisfies the schema "Alacritty Configuration". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[User] Provide a JSON object that satisfies the schema "registry". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

aix android darwin dragonfly freebsd illumos ios linux netbsd openbsd plan9 solaris windows

Provide a JSON object that satisfies the schema "registry". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","additionalProperties":false,"id":"https://json.schemastore.org/rehyperc.json","properties":{"plugins":{"description":"The plugins field, related to plugins in options, has either an array of plugin names (or paths) or plugin\u2013options tuples, or an object mapping plugins to their options.\nPlugin options can be false, which specifies that a plugin should not be used. In all other cases, they are treated as an object, and merged by the cascade. Thus, it's possible to specify part of the options from one configuration file, and overwrite or extend it from another file.","oneOf":[{"type":"array","items":{"oneOf":[{"type":"string"},{"type":"array","additionalItems":true,"items":[{"type":"string"}]}]}},{"type":"object"}]},"settings":{"type":"object","additionalProperties":false,"properties":{"fragment":{"description":"Specify whether to parse a fragment, instead of a complete document. In document mode, unopened html, head, and body elements are opened in just the right places.","type":["boolean"],"default":false},"space":{"description":"Which space the document is in.\n\nIf an svg element is found in the HTML space, parse automatically switches to the SVG space when entering the element, and switches back when exiting.\n\nNote: make sure to set fragment: true if space: 'svg'.","enum":["svg","html"],"default":"html"},"emitParseErrors":{"description":"Emit parse errors while parsing on the vfile.\n\nSetting this to true starts emitting HTML parse errors.\n\nSpecific rules can be turned off by setting them to false (or 0). The default, when emitParseErrors: true, is true (or 1), and means that rules emit as warnings. Rules can also be configured with 2, to turn them into fatal errors.","type":["boolean"],"default":false},"verbose":{"description":"Patch extra positional information. If specified, the following element:","type":["boolean"],"default":false},"entities":{"description":"Configuration for stringify-entities. Do not use escapeOnly, attribute, or subset (toHtml already passes those, so they won't work). However, useNamedReferences, useShortestReferences, and omitOptionalSemicolons are all fine.","type":"object","default":{},"additionalProperties":false,"properties":{"useNamedReferences":{"description":"Prefer named character references (&) where possible.","type":"boolean","default":false},"useShortestReferences":{"description":"Prefer the shortest possible reference, if that results in less bytes.","type":"boolean","default":false},"omitOptionalSemicolons":{"description":"Whether to omit semicolons when possible.","type":"boolean","default":false}}},"voids":{"description":"Tag names of elements to serialize without closing tag.\n\nNot used in the SVG space.","type":"array","items":{"type":"string"}},"upperDoctype":{"description":"Use a <!DOCTYPE\u2026 instead of <!doctype\u2026. Useless except for XHTML.","type":"boolean","default":false},"quote":{"description":"Preferred quote to use.","enum":["\"","'"],"default":"\""},"quoteSmart":{"description":"Use the other quote if that results in less bytes.","type":"boolean","default":false},"preferUnquoted":{"description":"Leave attributes unquoted if that results in less bytes.\n\nNot used in the SVG space.","type":"boolean","default":false},"omitOptionalTags":{"description":"Omit optional opening and closing tags. For example, in

one

two

, both
 closing tags can be omitted. The first because it's followed by another li, the last because it's followed by nothing.\n\nNot used in the SVG space.","type":"boolean","default":false},"collapseEmptyAttributes":{"description":"Collapse empty attributes: get class instead of class=\"\". Note: boolean attributes, such as hidden, are always collapsed.\n\nNot used in the SVG space.","type":"boolean","default":false},"closeSelfClosing":{"description":"Close self-closing nodes with an extra slash (/):  instead of . See tightSelfClosing to control whether a space is used before the slash.\n\nNot used in the SVG space.","type":"boolean","default":false},"closeEmptyElements":{"description":"Close SVG elements without any content with slash (/) on the opening tag instead of an end tag: <circle /> instead of <circle></circle>. See tightSelfClosing to control whether a space is used before the slash.\n\nNot used in the HTML space.","type":"boolean","default":false},"tightCommaSeparatedLists":{"description":"Join known comma-separated attribute values with just a comma (,), instead of padding them on the right as well (,\u00b7, where \u00b7 represents a space).","type":"boolean","default":false},"tightAttributes":{"description":"Join attributes together, without whitespace, if possible: get class=\"a b\"title=\"c d\" instead of class=\"a b\" title=\"c d\" to save bytes. Note: creates invalid (but working) markup.\n\nNot used in the SVG space.","type":"boolean","default":false},"tightDoctype":{"description":"Drop unneeded spaces in doctypes: <!doctypehtml> instead of <!doctype html> to save bytes. Note: creates invalid (but working) markup.","type":"boolean","default":false},"bogusComments":{"description":"Use \"bogus comments\" instead of comments to save byes: <?charlie> instead of . Note: creates invalid (but working) markup.","type":"boolean","default":false},"allowParseErrors":{"description":"Do not encode characters which cause parse errors (even though they work), to save bytes. Note: creates invalid (but working) markup.\n\nNot used in the SVG space.","type":"boolean","default":false},"allowDangerousHtml":{"description":"Allow raw nodes and insert them as raw HTML. When falsey, encodes raw nodes. Note: Only set this if you completely trust the content.","type":"boolean","default":false}}}},"title":"JSON schema for .rehyperc","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for .rehyperc". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

The plugins field, related to plugins in options, has either an array of plugin names (or paths) or plugin–options tuples, or an object mapping plugins to their options.
Plugin options can be false, which specifies that a plugin should not be used. In all other cases, they are treated as an object, and merged by the cascade. Thus, it's possible to specify part of the options from one configuration file, and overwrite or extend it from another file.

Specify whether to parse a fragment, instead of a complete document. In document mode, unopened html, head, and body elements are opened in just the right places.

Which space the document is in.

If an svg element is found in the HTML space, parse automatically switches to the SVG space when entering the element, and switches back when exiting.

Note: make sure to set fragment: true if space: 'svg'.

Emit parse errors while parsing on the vfile.

Setting this to true starts emitting HTML parse errors.

Specific rules can be turned off by setting them to false (or 0). The default, when emitParseErrors: true, is true (or 1), and means that rules emit as warnings. Rules can also be configured with 2, to turn them into fatal errors.

Patch extra positional information. If specified, the following element:

Configuration for stringify-entities. Do not use escapeOnly, attribute, or subset (toHtml already passes those, so they won't work). However, useNamedReferences, useShortestReferences, and omitOptionalSemicolons are all fine.

Prefer named character references (&) where possible.

Prefer the shortest possible reference, if that results in less bytes.

Whether to omit semicolons when possible.

Tag names of elements to serialize without closing tag.

Not used in the SVG space.

Use a <!DOCTYPE… instead of <!doctype…. Useless except for XHTML.

Preferred quote to use.

Use the other quote if that results in less bytes.

Leave attributes unquoted if that results in less bytes.

Not used in the SVG space.

Omit optional opening and closing tags. For example, in

one

two

, both
 closing tags can be omitted. The first because it's followed by another li, the last because it's followed by nothing.

Not used in the SVG space.

Collapse empty attributes: get class instead of class="". Note: boolean attributes, such as hidden, are always collapsed.

Not used in the SVG space.

Close self-closing nodes with an extra slash (/): <img /> instead of <img>. See tightSelfClosing to control whether a space is used before the slash.

Not used in the SVG space.

Close SVG elements without any content with slash (/) on the opening tag instead of an end tag: <circle /> instead of <circle></circle>. See tightSelfClosing to control whether a space is used before the slash.

Not used in the HTML space.

Join known comma-separated attribute values with just a comma (,), instead of padding them on the right as well (,·, where · represents a space).

Join attributes together, without whitespace, if possible: get class="a b"title="c d" instead of class="a b" title="c d" to save bytes. Note: creates invalid (but working) markup.

Not used in the SVG space.

Drop unneeded spaces in doctypes: <!doctypehtml> instead of <!doctype html> to save bytes. Note: creates invalid (but working) markup.

Use "bogus comments" instead of comments to save byes: <?charlie> instead of <!--charlie-->. Note: creates invalid (but working) markup.

Do not encode characters which cause parse errors (even though they work), to save bytes. Note: creates invalid (but working) markup.

Not used in the SVG space.

Allow raw nodes and insert them as raw HTML. When falsey, encodes raw nodes. Note: Only set this if you completely trust the content.

JSON schema for .rehyperc

Provide a JSON object that satisfies the schema "JSON schema for .rehyperc". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","additionalProperties":false,"id":"https://json.schemastore.org/remarkrc.json","properties":{"plugins":{"description":"The plugins field, related to plugins in options, has either an array of plugin names (or paths) or plugin\u2013options tuples, or an object mapping plugins to their options.\nPlugin options can be false, which specifies that a plugin should not be used. In all other cases, they are treated as an object, and merged by the cascade. Thus, it's possible to specify part of the options from one configuration file, and overwrite or extend it from another file.","oneOf":[{"type":"array","items":{"oneOf":[{"type":"string"},{"type":"array","additionalItems":true,"items":[{"type":"string"}]}]}},{"type":"object"}]},"settings":{"type":"object","additionalProperties":false,"properties":{"bullet":{"description":"Marker to use to for bullets of items in unordered lists.","enum":["*","+","-"],"default":"*"},"closeAtx":{"description":"Whether to add the same number of number signs (#) at the end of an ATX heading as the opening sequence.","type":"boolean","default":false},"emphasis":{"description":"Marker to use to serialize emphasis.","enum":["*","_"],"default":"*"},"fence":{"description":"Marker to use to serialize fenced code.","enum":["`","~"],"default":"`"},"fences":{"description":"Whether to use fenced code always. The default is to fenced code if there is a language defined, if the code is empty, or if it starts or ends in empty lines","type":"boolean","default":false},"incrementListMarker":{"description":"Whether to increment the value of bullets of items in ordered lists.","type":"boolean","default":true},"listItemIndent":{"description":"Whether to indent the content of list items with the size of the bullet plus one space (when 'one') or a tab stop ('tab'), or depending on the item and its parent list ('mixed', uses 'one' if the item and list are tight and 'tab' otherwise)","enum":["one","tab","mixed"],"default":"tab"},"quote":{"description":"Marker to use to serialize titles.","enum":["\"","'"],"default":"\""},"resourceLink":{"description":"Whether to use resource links ([text](url)) always. The default is to use autolinks (<https://example.com>) when possible.","type":"boolean","default":false},"rule":{"description":"Marker to use for thematic breaks.","enum":["*","-","_"],"default":"*"},"ruleRepetition":{"description":"Number of markers to use for thematic breaks.","type":"integer","minimum":3,"default":3},"ruleSpaces":{"description":"Whether to add spaces between markers in thematic breaks.","type":"boolean","default":false},"setext":{"description":"Whether to use setext headings when possible. Setext headings are not possible for headings with a rank more than 2 or when they're empty.","type":"boolean","default":false},"strong":{"description":"Marker to use to serialize strong.","enum":["*","_"],"default":"_"},"tightDefinitions":{"description":"Whether to join definitions w/o a blank line.","type":"boolean","default":false}}}},"title":"JSON schema for .remarkrc","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for .remarkrc". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

The plugins field, related to plugins in options, has either an array of plugin names (or paths) or plugin–options tuples, or an object mapping plugins to their options.
Plugin options can be false, which specifies that a plugin should not be used. In all other cases, they are treated as an object, and merged by the cascade. Thus, it's possible to specify part of the options from one configuration file, and overwrite or extend it from another file.

Marker to use to for bullets of items in unordered lists.

Whether to add the same number of number signs (#) at the end of an ATX heading as the opening sequence.

Marker to use to serialize emphasis.

Marker to use to serialize fenced code.

Whether to use fenced code always. The default is to fenced code if there is a language defined, if the code is empty, or if it starts or ends in empty lines

Whether to increment the value of bullets of items in ordered lists.

Whether to indent the content of list items with the size of the bullet plus one space (when 'one') or a tab stop ('tab'), or depending on the item and its parent list ('mixed', uses 'one' if the item and list are tight and 'tab' otherwise)

Marker to use to serialize titles.

Whether to use resource links ([text](url)) always. The default is to use autolinks (<https://example.com>) when possible.

Marker to use for thematic breaks.

Number of markers to use for thematic breaks.

Whether to add spaces between markers in thematic breaks.

Whether to use setext headings when possible. Setext headings are not possible for headings with a rank more than 2 or when they're empty.

Marker to use to serialize strong.

Whether to join definitions w/o a blank line.

JSON schema for .remarkrc

Provide a JSON object that satisfies the schema "JSON schema for .remarkrc". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://render.com/schema/render.yaml.json","title":"render.yaml JSON Schema","description":"A JSON schema for render.yaml files. See https://render.com/docs/blueprint-spec for more information","type":"object","definitions":{"autoDeployTrigger":{"type":"string","enum":["off","commit","checksPass"],"description":"Sets the automatic deploy behavior for a Git-based service."},"buildFilter":{"type":"object","description":"File paths in the service's repo to include or ignore when determining whether to trigger an automatic build. Especially useful for monorepos.","properties":{"paths":{"type":"array","description":"File paths to include when determining whether to trigger a build. Uses glob syntax.","items":{"type":"string"}},"ignoredPaths":{"type":"array","description":"File paths to ignore when determining whether to trigger a build, even if they match a path in 'paths'. Uses glob syntax.","items":{"type":"string"}}}},"diskSizeGB":{"type":"integer","minimum":1,"description":"The disk size in GB. Must be either 1 or a multiple of 5."},"cronService":{"type":"object","description":"A cron job service that runs on a schedule.","properties":{"type":{"type":"string","const":"cron","description":"The type of service. Must be 'cron' for cron jobs."},"name":{"type":"string","description":"The service's name. Must be unique within the Blueprint."},"region":{"$ref":"#/definitions/region"},"plan":{"$ref":"#/definitions/plan"},"runtime":{"$ref":"#/definitions/runtime"},"schedule":{"type":"string","description":"The schedule for running the cron job, as a cron expression."},"buildCommand":{"type":"string","description":"The command that Render runs to build your service."},"startCommand":{"type":"string","description":"The command that Render runs to start your service."},"dockerCommand":{"type":"string","description":"The command to run when starting the Docker-based service. If omitted, uses the CMD defined in the Dockerfile."},"dockerfilePath":{"type":"string","description":"The path to the service's Dockerfile, relative to the repo root."},"dockerContext":{"type":"string","description":"The path to the service's Docker build context, relative to the repo root."},"registryCredential":{"$ref":"#/definitions/registryCredential"},"repo":{"type":"string","description":"The URL of the GitHub/GitLab repo to use. If omitted, uses the repo containing the render.yaml file."},"branch":{"type":"string","description":"The branch of the linked repo to use. If omitted, uses the repo's default branch."},"image":{"$ref":"#/definitions/image"},"envVars":{"type":"array","description":"Environment variables for the service.","items":{"$ref":"#/definitions/envVar"}},"buildFilter":{"$ref":"#/definitions/buildFilter"},"rootDir":{"type":"string","description":"The service's root directory within its repo. If omitted, uses the repo's root directory."},"autoDeploy":{"type":"boolean","description":"Whether to automatically deploy the service when the linked branch is updated."},"autoDeployTrigger":{"$ref":"#/definitions/autoDeployTrigger"}},"required":["type","name","runtime","schedule"],"additionalProperties":false},"database":{"type":"object","description":"A PostgreSQL database instance.","properties":{"name":{"type":"string","description":"The PostgreSQL instance's name. Must be unique within the Blueprint."},"databaseName":{"type":"string","description":"The name of your database within the PostgreSQL instance. If omitted, Render automatically generates a name based on the instance name."},"user":{"type":"string","description":"The name of the PostgreSQL user to create for your instance. If omitted, Render automatically generates a name based on the instance name."},"region":{"$ref":"#/definitions/region"},"plan":{"$ref":"#/definitions/plan"},"diskSizeGB":{"$ref":"#/definitions/diskSizeGB"},"previewPlan":{"$ref":"#/definitions/plan","description":"The instance type to use for this database in preview environments."},"previewDiskSizeGB":{"$ref":"#/definitions/diskSizeGB","description":"The disk size to use for this database in preview environments. If omitted, preview instances use the same disk size as the primary database (specified by `diskSizeGB`)."},"postgresMajorVersion":{"type":"string","enum":["10","11","12","13","14","15","16"],"description":"What major version of PostgreSQL the database will use. Please refer to https://render.com/docs/postgresql-upgrading#version-support for which versions may be valid for this owner."},"highAvailability":{"type":"object","description":"High availability configuration for the database.","properties":{"enabled":{"type":"boolean","description":"Whether to enable high availability for the database."}},"required":["enabled"],"additionalProperties":false},"ipAllowList":{"$ref":"#/definitions/ipAllowList"},"readReplicas":{"type":"array","description":"Read replicas for the database instance.","items":{"$ref":"#/definitions/readReplica"}}},"required":["name"],"additionalProperties":false},"disk":{"type":"object","description":"Persistent disk configuration for a service.","properties":{"name":{"type":"string","description":"The name of the disk."},"mountPath":{"type":"string","description":"The path where the disk will be mounted in the service."},"sizeGB":{"type":"integer","minimum":1,"description":"The size of the disk in GB. Defaults to 10 if omitted."}},"required":["name","mountPath"],"additionalProperties":false},"envVar":{"anyOf":[{"$ref":"#/definitions/envVarFromKeyValue"},{"$ref":"#/definitions/envVarFromDatabase"},{"$ref":"#/definitions/envVarFromService"},{"$ref":"#/definitions/envVarFromGroup"}],"description":"An environment variable definition."},"envVarFromDatabase":{"type":"object","description":"An environment variable that references a property of a database.","properties":{"key":{"type":"string","description":"The name of the environment variable."},"fromDatabase":{"type":"object","description":"Reference to a database property.","properties":{"name":{"type":"string","description":"The name of the database to reference."},"property":{"type":"string","description":"The property of the database to reference (e.g., connectionString, host, port, user, password, database)."}},"required":["name","property"]}},"required":["key","fromDatabase"],"additionalProperties":false},"envVarFromKeyValue":{"type":"object","description":"An environment variable with a direct value or special configuration.","properties":{"key":{"type":"string","description":"The name of the environment variable."},"value":{"anyOf":[{"type":"string"},{"type":"number"}],"description":"The value of the environment variable."},"generateValue":{"type":"boolean","description":"Whether to generate a base64-encoded 256-bit value for this environment variable."},"sync":{"type":"boolean","description":"Whether to prompt for a value in the Render Dashboard during Blueprint creation. Set to false for secrets."},"previewValue":{"anyOf":[{"type":"string"},{"type":"number"}],"description":"The value to use for this environment variable in preview environments."}},"required":["key"],"additionalProperties":false},"envVarFromService":{"type":"object","description":"An environment variable that references a property or environment variable of another service.","properties":{"key":{"type":"string","description":"The name of the environment variable."},"fromService":{"type":"object","description":"Reference to another service.","properties":{"type":{"$ref":"#/definitions/serviceType","description":"The type of the service to reference."},"name":{"type":"string","description":"The name of the service to reference."},"property":{"type":"string","description":"The property of the service to reference (e.g., host, port, hostport, connectionString)."},"envVarKey":{"type":"string","description":"The environment variable key to reference from the service."}},"required":["name","type"]}},"required":["key","fromService"],"additionalProperties":false},"envVarFromGroup":{"type":"object","description":"An environment variable that references an environment group.","properties":{"fromGroup":{"type":"string","description":"The name of the environment group to reference."}},"required":["fromGroup"],"additionalProperties":false},"envVarGroup":{"description":"An environment group containing multiple environment variables.","properties":{"name":{"type":"string","description":"The name of the environment group."},"envVars":{"type":"array","description":"The environment variables in this group.","items":{"$ref":"#/definitions/envVarFromKeyValue"}}},"required":["name","envVars"],"additionalProperties":false},"header":{"type":"object","description":"HTTP response header configuration for static sites.","properties":{"path":{"type":"string","description":"The path pattern for which this header should be applied."},"name":{"type":"string","description":"The name of the HTTP header."},"value":{"type":"string","description":"The value of the HTTP header."}},"required":["path","name","value"]},"image":{"type":"object","description":"Configuration for pulling a prebuilt Docker image from a registry.","properties":{"url":{"type":"string","description":"The URL of the Docker image to pull."},"creds":{"$ref":"#/definitions/registryCredential","description":"Registry credentials for accessing private images."}},"required":["url"],"additionalProperties":false},"readReplica":{"type":"object","description":"A read replica configuration for a database.","properties":{"name":{"type":"string","description":"The name of the read replica."}},"additionalProperties":false},"ipAllowList":{"type":"array","description":"List of IP addresses or CIDR blocks that are allowed to access the service externally.","items":{"type":"object","properties":{"source":{"type":"string","description":"The IP address or CIDR block to allow access from."},"description":{"type":"string","description":"Optional description for this IP allow list entry."}},"required":["source"]}},"plan":{"type":"string","description":"The instance type for the service or database.","enum":["free","starter","standard","pro","pro plus","pro max","pro ultra","basic-256mb","basic-1gb","basic-4gb","pro-4gb","pro-8gb","pro-16gb","pro-32gb","pro-64gb","pro-128gb","pro-192gb","pro-256gb","pro-384gb","pro-512gb","accelerated-16gb","accelerated-32gb","accelerated-64gb","accelerated-128gb","accelerated-256gb","accelerated-384gb","accelerated-512gb","accelerated-768gb","accelerated-1024gb"]},"previewsGeneration":{"type":"string","description":"The preview generation mode.","enum":["automatic","manual","off"]},"servicePreviews":{"type":"object","description":"Pull request preview configuration for a service.","properties":{"generation":{"$ref":"#/definitions/previewsGeneration","description":"The preview generation mode for this service's pull request previews."},"plan":{"$ref":"#/definitions/plan","description":"The instance type to use for this service in preview environments."}},"additionalProperties":false},"staticServicePreviews":{"type":"object","description":"Pull request preview configuration for a static site.","properties":{"generation":{"$ref":"#/definitions/previewsGeneration","description":"The preview generation mode for this static site's pull request previews."}},"additionalProperties":false},"rootPreviews":{"type":"object","description":"Preview environment configuration at the Blueprint level.","properties":{"generation":{"$ref":"#/definitions/previewsGeneration","description":"The generation mode to use for preview environments."},"expireAfterDays":{"type":"integer","minimum":1,"description":"The number of days to retain a preview environment that receives no updates."}},"additionalProperties":false},"redisServer":{"type":"object","description":"A Render Key Value (Redis) instance.","properties":{"type":{"type":"string","enum":["keyvalue","redis"],"description":"The type of service. Should be 'keyvalue' for Key Value instances ('redis' alias is deprecated)."},"name":{"type":"string","description":"The Key Value instance's name. Must be unique within the Blueprint."},"region":{"$ref":"#/definitions/region"},"ipAllowList":{"$ref":"#/definitions/ipAllowList"},"plan":{"$ref":"#/definitions/plan"},"previewPlan":{"$ref":"#/definitions/plan","description":"The instance type to use for this Key Value instance in preview environments."},"maxmemoryPolicy":{"type":"string","description":"The Key Value instance's eviction policy for when it reaches its maximum memory limit."}},"required":["type","name","ipAllowList"],"additionalProperties":false},"region":{"type":"string","description":"The geographic region where the service or database will be deployed.","enum":["oregon","ohio","frankfurt","singapore","virginia"]},"registryCredential":{"description":"Registry credentials for accessing private Docker images.","properties":{"fromRegistryCreds":{"type":"object","description":"Reference to registry credentials configured in your workspace.","properties":{"name":{"type":"string","description":"The name of the registry credential configured in your workspace."}},"required":["name"],"additionalProperties":false}},"required":["fromRegistryCreds"],"additionalProperties":false},"route":{"type":"object","description":"Redirect or rewrite route configuration for static sites.","properties":{"type":{"type":"string","enum":["redirect","rewrite"],"description":"The type of route rule."},"source":{"type":"string","description":"The source path pattern to match."},"destination":{"type":"string","description":"The destination path for the redirect or rewrite."}},"required":["type","source","destination"]},"runtime":{"type":"string","description":"The runtime environment for the service.","enum":["docker","elixir","go","image","node","python","ruby","rust","static"]},"serverService":{"type":"object","description":"A web service, private service, or background worker.","properties":{"type":{"type":"string","enum":["web","worker","pserv"],"description":"The type of service."},"name":{"type":"string","description":"The service's name. Must be unique within the Blueprint."},"region":{"$ref":"#/definitions/region"},"plan":{"$ref":"#/definitions/plan"},"runtime":{"$ref":"#/definitions/runtime"},"repo":{"type":"string","description":"The URL of the GitHub/GitLab repo to use. If omitted, uses the repo containing the render.yaml file."},"branch":{"type":"string","description":"The branch of the linked repo to use. If omitted, uses the repo's default branch."},"image":{"$ref":"#/definitions/image"},"rootDir":{"type":"string","description":"The service's root directory within its repo. If omitted, uses the repo's root directory."},"dockerCommand":{"type":"string","description":"The command to run when starting the Docker-based service. If omitted, uses the CMD defined in the Dockerfile."},"dockerContext":{"type":"string","description":"The path to the service's Docker build context, relative to the repo root."},"dockerfilePath":{"type":"string","description":"The path to the service's Dockerfile, relative to the repo root."},"numInstances":{"type":"integer","minimum":1,"description":"For a manually scaled service, the number of instances to scale the service to."},"healthCheckPath":{"type":"string","description":"The path of the service's health check endpoint for zero-downtime deploys."},"scaling":{"type":"object","description":"Autoscaling configuration for the service.","properties":{"minInstances":{"type":"integer","minimum":1,"description":"The minimum number of instances for autoscaling."},"maxInstances":{"type":"integer","minimum":1,"description":"The maximum number of instances for autoscaling."},"targetMemoryPercent":{"type":"integer","minimum":1,"maximum":90,"description":"The target memory utilization percentage for autoscaling."},"targetCPUPercent":{"type":"integer","minimum":1,"maximum":90,"description":"The target CPU utilization percentage for autoscaling."}}},"buildCommand":{"type":"string","description":"The command that Render runs to build your service."},"startCommand":{"type":"string","description":"The command that Render runs to start your service."},"preDeployCommand":{"type":"string","description":"Command that runs after the build command but before the start command. Recommended for database migrations."},"registryCredential":{"$ref":"#/definitions/registryCredential"},"domain":{"type":"string","description":"A custom domain for the service."},"domains":{"type":"array","description":"A list of custom domains for the service.","items":{"type":"string"}},"envVars":{"type":"array","description":"Environment variables for the service.","items":{"$ref":"#/definitions/envVar"}},"autoDeploy":{"type":"boolean","description":"Whether to automatically deploy the service when the linked branch is updated."},"autoDeployTrigger":{"$ref":"#/definitions/autoDeployTrigger"},"initialDeployHook":{"type":"string","description":"A command to run during the service's first deploy."},"disk":{"$ref":"#/definitions/disk"},"buildFilter":{"$ref":"#/definitions/buildFilter"},"previews":{"$ref":"#/definitions/servicePreviews"},"pullRequestPreviewsEnabled":{"type":"boolean","deprecated":true,"description":"Whether to enable pull request previews for the service. Deprecated - use previews.generation instead."},"previewPlan":{"$ref":"#/definitions/plan","deprecated":true,"description":"The instance type to use for previews. Deprecated - use previews.plan instead."},"maxShutdownDelaySeconds":{"type":"integer","minimum":1,"maximum":300,"description":"The maximum time (in seconds) that Render waits for your application to exit gracefully after sending a SIGTERM signal."}},"required":["type","name","runtime"],"additionalProperties":false},"serviceType":{"type":"string","description":"The type of service for environment variable references.","enum":["web","cron","worker","pserv","static","dpg","job","redis","keyvalue"]},"staticService":{"type":"object","description":"A static site service.","properties":{"type":{"type":"string","const":"web","description":"The type of service. Must be 'web' for static sites."},"name":{"type":"string","description":"The service's name. Must be unique within the Blueprint."},"runtime":{"type":"string","const":"static","description":"The runtime for the service. Must be 'static' for static sites."},"buildCommand":{"type":"string","description":"The command that Render runs to build your static site."},"staticPublishPath":{"type":"string","description":"The path to the directory that contains the static files to publish, relative to the repo root."},"previews":{"$ref":"#/definitions/staticServicePreviews"},"pullRequestPreviewsEnabled":{"type":"boolean","deprecated":true,"description":"Whether to enable pull request previews for the static site. Deprecated - use previews.generation instead."},"buildFilter":{"$ref":"#/definitions/buildFilter"},"headers":{"type":"array","description":"HTTP response headers configuration for the static site.","items":{"$ref":"#/definitions/header"}},"routes":{"type":"array","description":"Redirect and rewrite routes configuration for the static site.","items":{"$ref":"#/definitions/route"}},"envVars":{"type":"array","description":"Environment variables for the static site build process.","items":{"$ref":"#/definitions/envVar"}},"rootDir":{"type":"string","description":"The service's root directory within its repo. If omitted, uses the repo's root directory."},"repo":{"type":"string","description":"The URL of the GitHub/GitLab repo to use. If omitted, uses the repo containing the render.yaml file."},"branch":{"type":"string","description":"The branch of the linked repo to use. If omitted, uses the repo's default branch."},"domain":{"type":"string","description":"A custom domain for the static site."},"domains":{"type":"array","description":"A list of custom domains for the static site.","items":{"type":"string"}},"autoDeploy":{"type":"boolean","description":"Whether to automatically deploy the static site when the linked branch is updated."},"autoDeployTrigger":{"$ref":"#/definitions/autoDeployTrigger"}},"required":["type","name"],"additionalProperties":false}},"properties":{"databases":{"type":"array","description":"A list of PostgreSQL databases to manage with the Blueprint.","items":{"$ref":"#/definitions/database"}},"envVarGroups":{"type":"array","description":"A list of environment groups to manage with the Blueprint.","items":{"$ref":"#/definitions/envVarGroup"}},"previews":{"$ref":"#/definitions/rootPreviews","description":"Preview environment configuration for the Blueprint."},"previewsEnabled":{"type":"boolean","deprecated":true,"description":"Whether to enable preview environments. Deprecated - use previews.generation instead."},"previewsExpireAfterDays":{"type":"integer","minimum":1,"deprecated":true,"description":"Number of days to retain preview environments. Deprecated - use previews.expireAfterDays instead."},"services":{"type":"array","description":"A list of non-PostgreSQL services to manage with the Blueprint.","items":{"anyOf":[{"$ref":"#/definitions/redisServer"},{"$ref":"#/definitions/cronService"},{"$ref":"#/definitions/serverService"},{"$ref":"#/definitions/staticService"}]}},"version":{"type":"string","const":"1","description":"The version of the Blueprint specification."}},"additionalProperties":false}
</schema>

[User] Provide a JSON object that satisfies the schema "render.yaml JSON Schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

render.yaml JSON Schema

A JSON schema for render.yaml files. See https://render.com/docs/blueprint-spec for more information

Sets the automatic deploy behavior for a Git-based service.

File paths in the service's repo to include or ignore when determining whether to trigger an automatic build. Especially useful for monorepos.

File paths to include when determining whether to trigger a build. Uses glob syntax.

File paths to ignore when determining whether to trigger a build, even if they match a path in 'paths'. Uses glob syntax.

The disk size in GB. Must be either 1 or a multiple of 5.

A cron job service that runs on a schedule.

The type of service. Must be 'cron' for cron jobs.

The service's name. Must be unique within the Blueprint.

The schedule for running the cron job, as a cron expression.

The command that Render runs to build your service.

The command that Render runs to start your service.

The command to run when starting the Docker-based service. If omitted, uses the CMD defined in the Dockerfile.

The path to the service's Dockerfile, relative to the repo root.

The path to the service's Docker build context, relative to the repo root.

The URL of the GitHub/GitLab repo to use. If omitted, uses the repo containing the render.yaml file.

The branch of the linked repo to use. If omitted, uses the repo's default branch.

Environment variables for the service.

The service's root directory within its repo. If omitted, uses the repo's root directory.

Whether to automatically deploy the service when the linked branch is updated.

A PostgreSQL database instance.

The PostgreSQL instance's name. Must be unique within the Blueprint.

The name of your database within the PostgreSQL instance. If omitted, Render automatically generates a name based on the instance name.

The name of the PostgreSQL user to create for your instance. If omitted, Render automatically generates a name based on the instance name.

The instance type to use for this database in preview environments.

The disk size to use for this database in preview environments. If omitted, preview instances use the same disk size as the primary database (specified by `diskSizeGB`).

What major version of PostgreSQL the database will use. Please refer to https://render.com/docs/postgresql-upgrading#version-support for which versions may be valid for this owner.

High availability configuration for the database.

Whether to enable high availability for the database.

Read replicas for the database instance.

Persistent disk configuration for a service.

The name of the disk.

The path where the disk will be mounted in the service.

The size of the disk in GB. Defaults to 10 if omitted.

An environment variable definition.

An environment variable that references a property of a database.

The name of the environment variable.

Reference to a database property.

The name of the database to reference.

The property of the database to reference (e.g., connectionString, host, port, user, password, database).

An environment variable with a direct value or special configuration.

The name of the environment variable.

The value of the environment variable.

Whether to generate a base64-encoded 256-bit value for this environment variable.

Whether to prompt for a value in the Render Dashboard during Blueprint creation. Set to false for secrets.

The value to use for this environment variable in preview environments.

An environment variable that references a property or environment variable of another service.

The name of the environment variable.

Reference to another service.

The type of the service to reference.

The name of the service to reference.

The property of the service to reference (e.g., host, port, hostport, connectionString).

The environment variable key to reference from the service.

An environment variable that references an environment group.

The name of the environment group to reference.

An environment group containing multiple environment variables.

The name of the environment group.

The environment variables in this group.

HTTP response header configuration for static sites.

The path pattern for which this header should be applied.

The name of the HTTP header.

The value of the HTTP header.

Configuration for pulling a prebuilt Docker image from a registry.

The URL of the Docker image to pull.

Registry credentials for accessing private images.

A read replica configuration for a database.

The name of the read replica.

List of IP addresses or CIDR blocks that are allowed to access the service externally.

The IP address or CIDR block to allow access from.

Optional description for this IP allow list entry.

The instance type for the service or database.

The preview generation mode.

Pull request preview configuration for a service.

The preview generation mode for this service's pull request previews.

The instance type to use for this service in preview environments.

Pull request preview configuration for a static site.

The preview generation mode for this static site's pull request previews.

Preview environment configuration at the Blueprint level.

The generation mode to use for preview environments.

The number of days to retain a preview environment that receives no updates.

A Render Key Value (Redis) instance.

The type of service. Should be 'keyvalue' for Key Value instances ('redis' alias is deprecated).

The Key Value instance's name. Must be unique within the Blueprint.

The instance type to use for this Key Value instance in preview environments.

The Key Value instance's eviction policy for when it reaches its maximum memory limit.

The geographic region where the service or database will be deployed.

oregon ohio frankfurt singapore virginia

Registry credentials for accessing private Docker images.

Reference to registry credentials configured in your workspace.

The name of the registry credential configured in your workspace.

Redirect or rewrite route configuration for static sites.

The type of route rule.

The source path pattern to match.

The destination path for the redirect or rewrite.

The runtime environment for the service.

docker elixir go image node python ruby rust static

A web service, private service, or background worker.

The type of service.

The service's name. Must be unique within the Blueprint.

For a manually scaled service, the number of instances to scale the service to.

The path of the service's health check endpoint for zero-downtime deploys.

Autoscaling configuration for the service.

The minimum number of instances for autoscaling.

The maximum number of instances for autoscaling.

The target memory utilization percentage for autoscaling.

The target CPU utilization percentage for autoscaling.

The command that Render runs to build your service.

The command that Render runs to start your service.

Command that runs after the build command but before the start command. Recommended for database migrations.

A custom domain for the service.

A list of custom domains for the service.

Environment variables for the service.

A command to run during the service's first deploy.

Whether to enable pull request previews for the service. Deprecated - use previews.generation instead.

The instance type to use for previews. Deprecated - use previews.plan instead.

The maximum time (in seconds) that Render waits for your application to exit gracefully after sending a SIGTERM signal.

The type of service for environment variable references.

web cron worker pserv static dpg job redis keyvalue

A static site service.

The type of service. Must be 'web' for static sites.

The service's name. Must be unique within the Blueprint.

The runtime for the service. Must be 'static' for static sites.

The command that Render runs to build your static site.

The path to the directory that contains the static files to publish, relative to the repo root.

Whether to enable pull request previews for the static site. Deprecated - use previews.generation instead.

HTTP response headers configuration for the static site.

Redirect and rewrite routes configuration for the static site.

Environment variables for the static site build process.

A custom domain for the static site.

A list of custom domains for the static site.

Whether to automatically deploy the static site when the linked branch is updated.

A list of PostgreSQL databases to manage with the Blueprint.

A list of environment groups to manage with the Blueprint.

Preview environment configuration for the Blueprint.

Whether to enable preview environments. Deprecated - use previews.generation instead.

Number of days to retain preview environments. Deprecated - use previews.expireAfterDays instead.

A list of non-PostgreSQL services to manage with the Blueprint.

The version of the Blueprint specification.

Provide a JSON object that satisfies the schema "render.yaml JSON Schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.