Client settings store preferences for web and mobile readers. Settings can be global (admin-managed) or user-specific.
Global settings affect all users. User settings override global defaults when present.
Global settings
List global settings
import { getGlobalSettings } from 'komga-sdk';
const result = await getGlobalSettings({ client });
if (result.data) {
result.data.forEach(setting => {
console.log(`${setting.key} = ${setting.value}`);
});
}
Save a global setting
import { saveGlobalSetting } from 'komga-sdk';
await saveGlobalSetting({
client,
body: {
key: 'webui.theme.mode',
value: 'dark',
},
});
Delete global settings
import { deleteGlobalSettings } from 'komga-sdk';
await deleteGlobalSettings({
client,
body: {
keys: ['webui.theme.mode', 'reader.background'],
},
});
User settings
List user settings
import { getUserSettings } from 'komga-sdk';
const result = await getUserSettings({ client });
if (result.data) {
result.data.forEach(setting => {
console.log(`${setting.key} = ${setting.value}`);
});
}
Save a user setting
import { saveUserSetting } from 'komga-sdk';
await saveUserSetting({
client,
body: {
key: 'reader.pageFit',
value: 'WIDTH',
},
});
Delete user settings
import { deleteUserSettings } from 'komga-sdk';
await deleteUserSettings({
client,
body: {
keys: ['reader.pageFit', 'reader.background'],
},
});
Common workflows
Apply global defaults with user overrides
import { getGlobalSettings, getUserSettings } from 'komga-sdk';
async function getEffectiveSettings() {
const [global, user] = await Promise.all([
getGlobalSettings({ client }),
getUserSettings({ client }),
]);
const effective = new Map<string, string>();
for (const setting of global.data ?? []) {
effective.set(setting.key, setting.value);
}
for (const setting of user.data ?? []) {
effective.set(setting.key, setting.value);
}
return effective;
}
Reset user settings to defaults
import { getUserSettings, deleteUserSettings } from 'komga-sdk';
async function resetUserSettings() {
const result = await getUserSettings({ client });
if (!result.data) return;
await deleteUserSettings({
client,
body: {
keys: result.data.map(s => s.key),
},
});
}
Error handling
import { getGlobalSettings } from 'komga-sdk';
const result = await getGlobalSettings({ client });
if (result.error) {
switch (result.response?.status) {
case 401:
console.error('Not authenticated');
break;
case 403:
console.error('Admin access required');
break;
default:
console.error('Error fetching settings:', result.error);
}
}
Next steps
Users
Manage users and per-user preferences.
Admin
Server settings and administration.