<< All versions
Global
Skill v1.0.1
currentAutomated scan100/100andrewchng/herdr-sessionizer/sessionizer-layout-editor
+5 new
──Details
PublishedNovember 9, 2026 at 03:35 AM
Content Hashsha256:c9f9937361db5b05...
Git SHA68ce2e9620be
Bump Typepatch
──Files
Files (1 file, 3.9 KB)
SKILL.md3.9 KBactive
SKILL.md · 84 lines · 3.9 KB
name: sessionizer-layout-editor description: Sessionizer config edits. Use when the user wants project roots, git_only, or depth; global tabs, panes, focus, or split ratios; picker [ui].placement (overlay|split|popup) or size; or a repo-local .sessionizer override. metadata: version: "1.0.1"
Sessionizer Layout Editor
Scope — pick the target before editing:
| Target | Path | |
|---|---|---|
| global | ~/.config/herdr/plugins/config/sessionizer/config.toml | |
| repo-local | <repo>/.sessionizer/config.toml |
Bootstrap — layout changes ([layout].focus, [tabs.*]) apply when Sessionizer or Worktree creates a new workspace, or when it opens an existing worktree checkout (not when an existing Herdr workspace is only focused). Picker UI ([ui]) applies every time a picker opens and is global-only.
Workflow
- Read the existing target file if present.
- Enforce scope:
- repo-local:
[layout].focusand[tabs.*]only — no[projects], no[ui]; tabs fully replace global (no merge) - global:
[projects],[ui],[layout], and tabs/panes
- Build or edit layout:
[layout].focusrequired when tabs exist[tabs.<name>]withlabeland[[tabs.<name>.panes]]- first pane: no
from; later panes:from+split(rightordown); optionalratioin(0, 1)on the split axis - pane ids unique per tab;
focusmust name an existing tab or pane
- Picker UI edits (global only):
[ui].placementisoverlay|split|popup(popup needs Herdr>= 0.7.4)- optional
[ui].width/[ui].heightonly withpopup(cells or"80%") - optional
[ui].preview_window: fzf--preview-windowspec for all pickers (default"right:50%","hidden"turns the preview off) - do not put placement under
[layout] - if the file still has legacy
[layout].placement, move it to `[ui].placement` and remove the old key (no dual-write) - new seeded configs default to
placement = "overlay"; omitted[ui]also falls back tooverlayat runtime
- Discovery edits (global only): follow references/discovery.md
- Minimal diff — change only what the user asked for; stay in the chosen scope. When editing global layout or discovery, preserve existing `[ui]` (and
[projects]for layout edits) unless the user asked to change them. - Done when: TOML is valid, scope rules hold, and you summarized the layout/UI change plus the bootstrap reminder when layout tabs changed
Examples
- "Add
~/Workto my project roots" → global[projects].roots - "Add
~/Projects/github.com/*to my project roots" → global[projects].roots; globs expand at use-time — see reference - "Set
git_only = false" → global discovery; see reference - "Open pickers as a popup" → global
[ui].placement = "popup"(optional width/height; default size is Herdr half-size if omitted) - "Use a large popup" →
placement = "popup",width = "90%",height = "90%" - "Names get cut off" / "no preview" →
[ui].preview_window = "down:40%"or"hidden" - "Add a repo-local override with lazygit + copilot" → repo-local file
- "Make the right pane 30% with
ratio = 0.3" → layout pane edit in the active scope
Global [ui] snippet
toml
[ui]placement = "popup" # overlay | split | popup; seeded default is overlaywidth = "90%"height = "90%"
Repo-local template
toml
[layout]focus = "primary"[tabs.repo]label = "repo"[[tabs.repo.panes]]id = "primary"title = "primary"command = "some command"[[tabs.repo.panes]]id = "agent"from = "primary"title = "agent"split = "right"command = "copilot"
For global layout edits, preserve the existing [projects] and [ui] sections unless those are in scope.