Summary
The settings panel is getting large and will grow further. Split it into a tabbed layout (single PluginSettingTab class, manual tab bar, per-tab render methods) once there are more settings to organize.
Proposed tab groupings (draft — revisit when more settings exist)
| Tab |
Settings |
| General |
Binary path, send on enter, resume last session, context file setup prompt |
| Context |
@-mention types, context file path, vault tree depth, autonomous memory, inject split-pane/stacked tabs |
| Permissions |
Permission mode, UI bridge toggle, prompt for unlisted commands, denylist, command allowlist |
| Sessions |
Export folder, session storage path |
| Skills |
Skills folder, register skills as Ctrl+P commands |
| Logging |
Enable log, log path, log verbosity |
| Help |
Docs, Discord, GitHub issues, plugin version |
Skills and UI bridge settings may want to live together. Context and Sessions may want to merge. Revisit when the bigger features land.
Help tab
Should mirror the About modal layout and share source with it so there's one place to update links and version display.
Implementation pattern
Folder Notes (github.com/LostPaul/obsidian-folder-notes) uses this pattern:
- Single
addSettingTab() call
- Tab bar built via
containerEl.createDiv() with click handlers
data-tab attribute + is-active class for active state
- Active tab persisted in plugin settings so it restores on reopen
- Per-tab content in private render methods (or separate files)
Why deferring
More settings are coming. Better to do the split once so groupings reflect the final feature set rather than reorganizing twice.
Summary
The settings panel is getting large and will grow further. Split it into a tabbed layout (single
PluginSettingTabclass, manual tab bar, per-tab render methods) once there are more settings to organize.Proposed tab groupings (draft — revisit when more settings exist)
Skills and UI bridge settings may want to live together. Context and Sessions may want to merge. Revisit when the bigger features land.
Help tab
Should mirror the About modal layout and share source with it so there's one place to update links and version display.
Implementation pattern
Folder Notes (
github.com/LostPaul/obsidian-folder-notes) uses this pattern:addSettingTab()callcontainerEl.createDiv()with click handlersdata-tabattribute +is-activeclass for active stateWhy deferring
More settings are coming. Better to do the split once so groupings reflect the final feature set rather than reorganizing twice.