KoboldCpp kcpps files: save, load and share your settings
A .kcpps file is a small JSON file holding your launch settings. Create it with Save Config in the launcher or --exportconfig, then start KoboldCpp with it using Load Config, --config yourfile.kcpps, or by passing the file as the only argument. A .kcppt is the shareable version: GPU, thread and password values are reset, and model fields are usually download links.
Checked against KoboldCpp 1.124.2 · updated 13 Nov 2026
- lab-lnx: Linux test VM · 4 vCPU · 15 GB · no GPU
On this page
What’s inside a KoboldCpp kcpps file
A .kcpps file is plain JSON with one key per setting, named after the flag’s internal name: contextsize, gpulayers, chatcompletionsadapter. Our 1.124.2 export has 160 keys, and most of them are at their default F05. This is a trimmed copy of our own export:
{
"model_param": "qwen2.5-0.5b-instruct-q4_k_m.gguf",
"contextsize": 4096,
"threads": 3,
"gpulayers": 10,
"batchsize": 512,
"quantkv": "f16",
"chatcompletionsadapter": "AutoGuess",
"port": 5001,
"istemplate": false,
…
}Lab export with --model qwen2.5-0.5b --contextsize 4096 --gpulayers 10 --threads 3. The real file has 160 keys; … marks the lines left out.
Save your settings
In the launcher press Save Config. From the command line add Writes the current arguments to a .kcpps file (then exits) for reuse with --config.Default Since v1.85.1All details to your usual flags: it writes the file and exits without loading a model, with exit code 0 F08. Keep the file next to the program so a shortcut can find it. There is no other place where KoboldCpp keeps settings, so to undo, delete the file.
Load a config: four ways
--config file.kcpps | Each key is applied unless you also typed that flag: the typed flag wins and the console prints "Overriding Config Value: name". | Tested on Linux and macOS: 3072 typed beat 2048 in the file <EvidenceBadge id="F81" /> <EvidenceBadge id="F102" /> |
| The file as the only argument, or double-click with the Windows file association | The file is treated as a config, not a model. | Upstream; not run |
| A web link ending in .kcpps or .kcppt | It is downloaded first, then loaded like a file. | Upstream; not run |
| Launcher: Load Config | Fills in the launcher boxes. With <code>--showgui</code> the launcher opens already filled. | Upstream; not run (no display) |
To load your settings every time, put the --config command in a shortcut (Windows) or a service (Linux). Or build and check one in the command builder.
Edit one by hand
Only the keys you want to change are needed. A file with just a model, a context size and a thread count loaded, and every other setting took its default F81. Two traps:
- Use the internal names. A file with
"ctx-size": 3072loaded without any message and the server ran at the default 16384, so the dashed spelling does nothing F81. The key for each flag is on the flag list. - JSON is strict. No trailing commas, double quotes only, and a Windows path needs doubled backslashes (
C:\\models\\x.gguf). The command builder checks a pasted file.
.kcppt templates: settings you can share
A .kcppt is the same file with the settings that belong to one machine reset. We exported the same command both ways and compared them F81:
gpulayers | 10 | -1 (auto) |
threads | 3 | -1 (auto) |
password | the password | null |
istemplate | false | true |
usecpu | false | null (backend picked on load) |
sdmaingpu | null | -1 |
Upstream also resets the Horde key and worker name, SSL, tensor split, memory-mapping and mlock options (read from the code; our command did not set these). To make a template use Writes the current arguments as a shareable .kcppt template with machine-specific settings stripped.Default Since v1.85.1All details or the launcher’s Extra tab. To use one, open it with Load Config or --config; model fields that are links are downloaded at launch to Folder where models given as URLs are downloaded to and looked up in (default: working directory).Default Launcher Loaded Files tab: Download DirSince v1.107.2All details or the working folder. Ready-made templates are on Hugging Face; the launcher’s Get Help menu has Newbie Templates (we did not open them: no display).
Old config files and renamed settings
KoboldCpp translates old key names when it loads a file F81:
usecublas | usecuda | Not run (needs a GPU build) |
blasbatchsize | batchsize | Tested on Linux and Windows: 128 applied, no warning <EvidenceBadge id="F102" /> |
noblas | usecpu | Tested on Linux, Windows and macOS: CPU backend applied, no warning <EvidenceBadge id="F102" /> |
sdconfig, hordeconfig (lists) | one key per value | Not run |
sdt5xxl | sdllm | Not run |
The full list of renamed flags is on the flag list. The same file loaded the same way on a Windows and a macOS machine F102. We could not run a real file written by a 1.95 program, so a file from a very old version may still fail: open it in the command builder to see what it flags.
Safety
A config file cannot run a command by itself. The onready setting, which runs a shell command after start-up, is blanked when it comes from a file unless KoboldCpp was started with Lets configs loaded after launch (admin swaps) set --onready. Only for trusted configs.Default falseSince v1.116All details (upstream; introduced in 1.90 and 1.116). Model fields in a template can point anywhere, so load templates only from sources you trust, and never share a .kcpps that holds a password.
Switching configs while running (admin mode)
With Enables admin mode: models/configs can be unloaded and swapped at runtime from the UI or admin API.Default falseLauncher Admin tab: Enable Model AdministrationSince v1.83All details and Folder of .kcpps/.kcppt/.gguf files that admin mode may switch between.Default Launcher Admin tab: Config Directory (Required)Since v1.83All details a folder of configs can be swapped without restarting, from KoboldAI Lite or the admin API. Settings such as the port, host, passwords and SSL never change on a swap (upstream; not tested). See remote access.
Frequently asked questions
How do I make KoboldCpp load my settings automatically?
Save a .kcpps file and start KoboldCpp with --config yourfile.kcpps, or pass the file as the only argument. Put that command in a desktop shortcut on Windows or a service on Linux. KoboldCpp has no hidden settings store, so nothing loads unless you point it at a file.
What is the difference between .kcpps and .kcppt?
Both are the same JSON format. A .kcppt sets istemplate to true and resets the values that belong to one machine: GPU layers and threads go back to auto, the backend is cleared, and passwords and keys are removed. In our test the two exports of the same command differed in six keys.
Can I edit a .kcpps file by hand?
Yes. A file holding only the keys you changed loads, and every other setting takes its default; we ran this on 1.124.2. Use the internal key names such as contextsize, not the dashed spellings, which are silently ignored.
Will my old .kcpps work after updating?
Usually. KoboldCpp translates old names such as usecublas, blasbatchsize and noblas when it loads the file. We loaded a file with noblas and blasbatchsize on 1.124.2 and both took effect without a warning. We did not test an actual 1.95 file on Windows.
Is it safe to load a .kcppt from the internet?
Treat it like any file that makes your computer download things: its model fields can point to any link. Load only templates from sources you trust. A command to run on start (onready) from a config file is blanked unless you started KoboldCpp with --allow-config-onready.