Orbit Settings
Define typed settings classes and manage them visually in Orbit panels.
pip install almasix-orbit-settings- Installs—
- Stars1
- Author
- Almasix
- Orbit versions
- 0.5
- Package
- almasix-orbit-settings
- License
- MIT
- Python
- >=3.11
- Listed
- September 28, 2026
What it does
Pair typed almasix.settings.Settings classes with Orbit SettingsPage
forms. The plugin registers those pages on your panel, loads and saves through
Conduit, encrypts sensitive properties with Almasix Crypt, and respects
panel tenancy for tenant-scoped settings.
Install
pip install almasix-settings almasix-orbit-settings
smith migrate
from almasix_orbit_settings import SettingsPlugin
panel.plugin(
SettingsPlugin.make()
.navigation_group("Settings")
.pages([ManageGeneralSettings])
)
Optional Redis repository: pip install almasix-settings[redis].
Full README: almasix-orbit-settings.

Documentation
View sourceOrbit Settings
Manage typed Almasix Settings visually in an Orbit panel.

Install
pip install almasix-settings almasix-orbit-settings
smith migrate
Optional Redis store: pip install almasix-settings[redis].
Requires Orbit with Conduit-backed custom pages (Page.get_conduit_host(), shipped in Orbit ≥ the Conduit host pages release).
Define settings
# app/settings/general_settings.py
from almasix.settings import Settings
class GeneralSettings(Settings):
site_name: str
site_active: bool
@classmethod
def group(cls) -> str:
return "general"
Seed defaults with smith make:settings-migration / smith settings:migrate.
Settings page
# app/orbit/app/pages/manage_general_settings.py
from almasix.orbit.forms import Form, TextInput, Toggle
from almasix_orbit_settings import SettingsPage
from app.settings.general_settings import GeneralSettings
class ManageGeneralSettings(SettingsPage):
settings = GeneralSettings
title = "General"
slug = "general-settings"
@classmethod
def form(cls, form: Form) -> Form:
return form.schema([
TextInput.make("site_name").required(),
Toggle.make("site_active"),
])
smith make:orbit-settings-page ManageGeneral --settings=GeneralSettings --panel=app
Register the plugin
from almasix_orbit_settings import SettingsPlugin
from app.orbit.app.pages.manage_general_settings import ManageGeneralSettings
panel.plugin(
SettingsPlugin.make()
.navigation_group("Settings")
.pages([ManageGeneralSettings])
)
Tenancy
Mark a Settings class tenant_scoped = True. The plugin binds Almasix’s tenant resolver to panel.get_tenant() when panel tenancy is enabled. Global defaults apply until a tenant saves its own values.
class BrandingSettings(Settings):
tenant_scoped = True
brand_name: str
@classmethod
def group(cls) -> str:
return "branding"
License
MIT
This plugin is maintained by the Orbit team.
How to install and wire a plugin: Using a plugin. Report security issues on theadvisory form.