AI presets let you define named bundles ofDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/jorgeurtubiam-ship-it/Gulin_ia/llms.txt
Use this file to discover all available pages before exploring further.
ai:* settings that can be selected from the model dropdown in any AI block. Instead of re-entering an API key, base URL, or model name every time you switch providers, you save each configuration as a preset and switch between them with a single click.
What Is a Preset?
A preset is a named entry inpresets.json whose key starts with ai@. Each preset carries any combination of ai:* configuration fields along with optional display metadata. When you select a preset from the model dropdown, its fields are merged over the global ai:* defaults defined in settings.json.
The special field "ai:*": true in a preset acts as a reset flag — it clears all inherited ai:* values before applying the preset’s own fields, ensuring a clean slate instead of an unintended merge.
Built-In Presets
GuLiN ships two presets indefaults/presets/ai.json:
ai@global
The Global default preset (order
-1). It uses "ai:*": true to inherit whatever ai:* values are configured in your settings.json. Selecting this preset effectively applies your top-level AI settings with no overrides.ai@gulin
The Gulin Proxy – gpt-5-mini preset (order
0). Uses the GuLiN-hosted proxy with gpt-5-mini, 4 000 max tokens, and a 60-second timeout. No API key is required for this preset.defaults/presets/ai.json:
Preset Fields
Every preset is a JSON object whose keys are drawn from the following set:| Field | Type | Description |
|---|---|---|
display:name | string | Human-readable label shown in the model dropdown. |
display:order | number | Sort position in the dropdown (lower numbers appear first). |
ai:* | boolean | When true, clears all inherited ai:* values before applying this preset. |
ai:apitype | string | API protocol: openai-chat, openai-responses, or google-gemini. |
ai:baseurl | string | Base URL for the provider endpoint. |
ai:apitoken | string | Authentication token for the provider. |
ai:model | string | Model identifier passed in each request. |
ai:name | string | Override the display name inside the AI block header. |
ai:orgid | string | Organization ID (OpenAI and compatible). |
ai:apiversion | string | API version string (Azure and versioned endpoints). |
ai:maxtokens | number | Maximum tokens per response. |
ai:timeoutms | number | Request timeout in milliseconds. |
ai:proxyurl | string | HTTP/HTTPS proxy for AI requests. |
ai:fontsize | number | Proportional font size for the AI chat view. |
ai:fixedfontsize | number | Fixed (monospace) font size in the AI chat view. |
Creating a Custom Preset
Custom presets live inpresets.json inside your GuLiN config directory. Open it with:
Open presets.json
Run
wsh editconfig presets.json in any GuLiN terminal. If the file does not exist yet, GuLiN creates an empty one for you.Add your preset object
Add a top-level key using the
ai@ prefix. Include "ai:*": true to start from a clean slate, then set only the fields you need.Example: Local Ollama Preset
Example: OpenAI GPT-4o Preset
GuLiN supports
$ENV:VARIABLE_NAME syntax in config values. Use it to read API keys from environment variables instead of storing them in plain text. You can also supply a fallback with $ENV:VAR:fallback-value.Setting the Default Preset
Thegulinai:defaultmode setting in settings.json controls which AI mode is active when a new AI block opens. It defaults to gulinai@balanced.
To change the default to your custom preset:
ai:preset to point to your preferred preset as the global default:
Feature Flag: GulinApp Builder
Settingfeature:gulinappbuilder to true in settings.json enables the experimental GulinApp builder UI, which provides a visual interface for scaffolding AI-powered terminal applications.