Configuration Format
SpaceLauncher configuration exports are JSON files you can read, diff, copy to another Mac, or process with your own scripts.
This page is a trust-oriented reference, not a complete API specification. The format can evolve, so tools should preserve unknown fields when possible.
Export Types
SpaceLauncher writes two JSON package types.
.slbindings exports key bindings only:
format:name.guoc.SpaceLauncher.key-bindingsversion: currently1keyBindings: an array of key binding rules
.slbackup exports a full app backup:
format:name.guoc.SpaceLauncher.backupversion: currently1configuration: the fullAppConfiguration
The package version is different from the app configuration schemaVersion.
The current AppConfiguration schema version is 2.
Full Configuration
A full AppConfiguration contains:
schemaVersioncommandTreesbindingsdisabledApplicationssuggestedDisabledApplicationPaths
commandTrees is the current persisted structure. bindings is also encoded for
compatibility with tools and older import paths.
Key Binding Rule
Each rule is a FlatKeysAndActionRow with these main fields:
id: UUIDenabled: booleanapplicationScope: eitherallBut(paths)oronly(paths)keys: trigger key code sequenceaction: action payload, with optional human description stored asdescriptionleaderKey: hold or tap leader definitionholdContinuationIndexAfterAction: optional continuation setting for hold leaders
applicationScope has two shapes:
{
"allBut": {
"paths": []
}
}
{
"only": {
"paths": [
"/Applications/TextEdit.app"
]
}
}
Example
This .slbindings example contains one binding: hold Space, then press F and D,
to open the Downloads folder.
{
"appVersion": "3.0.0 (300)",
"exportedAt": "2026-06-07T12:00:00Z",
"format": "name.guoc.SpaceLauncher.key-bindings",
"keyBindings": [
{
"action": {
"description": "Open Downloads",
"openFolder": {
"applicationPath": null,
"folderPath": "~/Downloads"
}
},
"applicationScope": {
"allBut": {
"paths": []
}
},
"enabled": true,
"id": "11111111-2222-4333-8444-555555555555",
"keys": [
3,
2
],
"leaderKey": {
"hold": {
"info": {
"keepsTapFunction": true,
"keyCode": 49
}
}
}
}
],
"version": 1
}
Key code 49 is Space on the standard Mac keyboard layout. Key codes 3 and
2 are F and D.
Import Behavior
Key binding imports can merge new rules into your current setup or replace all current key bindings. When merging, SpaceLauncher checks for duplicate binding identity using leader key, trigger keys, and application scope.
Full backup restore is different: restoring a .slbackup replaces the app
configuration. It is meant for backup recovery, not partial merge.
Why This Matters
The format is human-readable and scriptable. You can inspect a binding, compare changes in a diff, migrate a setup between machines, or generate rules with your own tooling. SpaceLauncher also keeps local rolling, timestamped backups of the saved configuration, and warns about shortcut conflicts before saving.