Hierarchical Tags
Organize sessions with parent-child tag trees, auto-rules, and drag-to-reorder.
Tags (also called "labels") let you categorize sessions beyond their project directory. Pi Session Manager supports a hierarchical tag system with parent-child relationships.
Tag Tree
Tags are organized in a tree structure:
đ Status
âââ đĸ Active
âââ đĄ In Progress
âââ đ´ Archived
đ Priority
âââ đĨ High
âââ ⥠Medium
âââ đ¤ Low
Custom Tag A
Custom Tag BCreating Tags
Open Settings â Tags to manage your tag tree. You can:
- Create root-level tags
- Add child tags under any parent
- Rename or delete tags
- Reorder tags via drag-and-drop
Assigning Tags
- Right-click a session â Assign tags
- Use the tag picker in the Kanban context menu
- Drag sessions between Kanban columns
Tag Picker
The TagPicker component renders the full tree with expand/collapse controls. It supports:
- Multi-select (assign multiple tags to one session)
- Search within the picker
- Visual hierarchy with indentation
Label Filter
The LabelFilter dropdown appears in the sidebar and Kanban header. It provides:
- Grouped sections (Status vs. Custom)
- Descendant filtering â selecting a parent tag also includes all its children
- Search within the filter
Auto-Rules
Configure automatic tag assignment based on patterns:
- Project directory patterns (e.g., all sessions in
~/work/get tagged "Work") - Session name patterns
Tags are stored in the SQLite database (~/.pi/agent/session-manager.db), not in the JSONL session files. This means tags are local to your Pi Session Manager instance.
Backend
The tag system uses a parent_id column in the SQLite tags table. The frontend provides utility functions:
getDescendantIds(tagId)â all children recursivelygetRootTags()â top-level tags onlygetChildTags(parentId)â direct children