Skip to content

Feature request: user-defined grouping labels per workspace (building on v0.1.3 repo grouping) #7

@JohnnyBonk

Description

@JohnnyBonk

TLDR

v0.1.3's auto-detection of .git ancestors is a great start — for workspaces inside the same repo, they now group under a single header. But a project's content isn't always inside one repo. For the work I actually do, a single "project" pulls from several filesystem locations: the repo itself, agent-generated plans under ~/.claude/, doc drafts in a separate notes dir, ideas in yet another place. Repo detection can't pull those together because they don't share a git ancestor — nothing about the filesystem tells Marky they belong in the same group.

The missing piece is user-defined grouping labels per workspace. When adding a workspace, optionally assign a group label; Marky renders all workspaces sharing a label under one collapsible header, regardless of filesystem location.

The workflow this enables

Every project I work on has content scattered across:

  • The repo itself (~/Projects/coax-climate/drafts/, ~/Projects/coax-climate/docs/)
  • Agent-generated plans and notes (~/.claude/plans-by-repo/(coax-climate)/)
  • Research / ideas elsewhere (e.g. an ~/iCloud/notes/coax-ideas/ or a separate scratch dir)

v0.1.3 groups the first two workspaces under coax-climate automatically (shared .git). The third and fourth are invisible to repo detection and show up as independent top-level entries — disconnected from the rest of the project even though mentally they're part of it.

With user-defined labels, my sidebar becomes:

▾ coax
   docs      (~/Projects/coax-climate/docs)
   drafts    (~/Projects/coax-climate/drafts)
   plans     (~/.claude/plans-by-repo/(coax-climate))
   ideas     (~/iCloud/notes/coax-ideas)

▾ bookie
   notes
   plans

▾ (ungrouped)
   random-scratch

One mental group per project, regardless of where the content lives on disk.

Suggested UX

  • Optional group field on every registered workspace. Stored in the same preferences / settings where workspace paths live.
  • Auto-fill on add. When adding a new workspace, use v0.1.3's repo-root detection to pre-fill the group label with the repo name. Most of the time the user just accepts it and things work the same as v0.1.3 does today. The manual override is what closes the loop for non-repo locations.
  • Rename / regroup from the sidebar. Right-click a workspace → "Set group…" → text input (or existing group picker). Rename a group by clicking its header.
  • Ungrouped bucket. Workspaces with no label fall into a default (ungrouped) section at the bottom of the sidebar, same as today's flat behaviour.

Relationship to v0.1.3

v0.1.3 becomes the sensible default behaviour (auto-fill label from repo root). User-defined labels are the escape hatch that handles everything v0.1.3 can't detect from git alone. Backwards-compatible — existing users who never touch the label just see the same auto-grouping they got today.

Why it matters

Coding-agent workflows are pushing more and more "project content" outside any single repo (agent plans, session notes, scratch files). The repo-walk is a good heuristic but it only captures part of the picture. A tiny manual label bridges the gap and lets the sidebar match how the user actually thinks about their projects.

Happy to spec further or test a prototype.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions