Skip to content

marginalreader/role-focus

Repository files navigation

Role Focus

Manage tasks by life role with an interactive panel docked inside NotePlan.

Role Focus is a NotePlan plugin for productivity systems organized around personal roles rather than projects or areas. It pulls every open task that belongs to a role — whether it lives in that role's folder or just mentions @rolename in a daily note — into a single focused panel for browsing, triaging, and acting on.

Role focus enables you to focus on distinct parts of your life. You choose the folder in your sidebar to determine your roles, and you can focus on projects within the roles on the right. Dates and flags appear in line. Single click goes to the note where the task resides. Double click goes into inline edit mode. Role Focus

Flagged view provides a list of all flagged tasks from the roles. Great if you need a quick hit list. Flagged View

Missing roles lets you assign roles to the tasks that are outside of your folder structure, such as daily notes or other notes. Available roles are pulled from your folder structure. Role Focus


Features

Role Focus tab

  • Auto-detected roles from the subfolders of your configured Roles folder. No hardcoded list — add a folder, it appears.
  • Two task sources, unified: tasks inside the role's folder and any project or daily note containing an @rolename mention. Deduplicated.
  • Role pills with live task-count badges; collapsible to a single label to save space.
  • Resizable project panel on the right (desktop) showing every note in the role's folder with task counts. Click to filter; ⌘-click to multi-select. Collapses to a dropdown on mobile.
  • Live text filter, scoped to the current role.
  • Date sort (none → ascending → descending) using explicit >YYYY-MM-DD markup or the implicit date of the source daily note.
  • Flags-on-top sort toggle — flagged tasks float above the rest while date sort still applies within each group. Persists across sessions.
  • Filters dropdown combining Hide Tags and Hide Future (with an inline day-threshold input).
  • Overdue highlighting with a configurable color; includes tasks due today.
  • Sub-content capture — paragraphs indented under a task are folded behind an expand arrow.
  • Clickable links in sub-content for http(s), noteplan://, omnifocus://, and things:// schemes.

Flagged tab

  • Cross-role hit-list of every task starting with ! across every role.
  • Excludes future-scheduled tasks, includes undated and past-due ones — so it always shows what's actionable today.
  • Shows role and project for each task, not just the source note.
  • One-click unflag — the ⚑ button removes the task from the list and from the source note's flagged state.
  • Lazy-loaded and auto-invalidated when a task is flagged from another tab.

Missing Roles tab

  • Inbox of unassigned tasks — scans your daily/calendar notes for open tasks with no @role mention.
  • 30 Days / All Time lookback toggle.
  • Assign a role inline from a dropdown of all detected roles. The mention is written back to the source note and the row fades out.

Per-task actions

  • Mark complete — sets the source paragraph to done and optionally appends a NotePlan-format @done(YYYY-MM-DD HH:MM AM/PM) timestamp.
  • Open note — single-click the task text to jump to the exact line in the source note.
  • Inline edit — double-click the task text to edit; Enter saves, Escape reverts.
  • Add tag — append a #hashtag without leaving the panel.
  • Assign role — add an @rolename mention without leaving the panel.
  • Flag toggle — prepend/strip ! (NotePlan's standard priority marker).
  • Clear — strip selected @/#/> tokens from the task text; what gets cleared is configurable.

Add Task modal

  • Lists every note in the current role's folder, including notes in nested subfolders (rendered as Subfolder / Note).
  • Single Actions notes pinned to the top.
  • Two-step location picker: section (Top / Bottom / any heading) → position (Top / Bottom of section, when a heading is chosen).
  • Pre-selects the destination when exactly one project is selected in the project panel.

Installation

macOS (manual)

  1. Quit NotePlan.
  2. Clone or download this repository.
  3. Place the folder, named exactly marginalreader.RoleFocus, into your NotePlan plugins directory:
    ~/Library/Containers/co.noteplan.NotePlan3/Data/Library/Application Support/co.noteplan.NotePlan3/Plugins/
    
  4. Reopen NotePlan. The plugin will be discovered automatically.

iOS / iPadOS

NotePlan syncs installed plugins between devices via iCloud. Install on macOS first; the plugin will appear on your iOS / iPadOS devices on the next sync. Direct manual install on iOS is not supported.


Usage

Open the Command Bar (⌘J) and run:

  • /role focus — open the panel on the Role Focus tab.
  • /missing roles — open the panel on the Missing Roles inbox.

Both commands also accept aliases (rf, focus, triage, unassigned).

Setting up roles

Create a top-level Roles folder (default: Roles) and add one subfolder per role. For example:

Roles/
  01 Husband/
  02 Father/
  03 Engineer/
  04 Reader/

The plugin strips leading ^\d+\s+ for display and @mention matching, so 01 Husband shows as Husband and matches @husband.

Notes inside each role folder contribute their open tasks. Outside the role folder, any task containing @husband (in any note, including daily notes) is also pulled in.


Commands

Command Aliases Description
role focus rf, focus Open the Role Focus panel on the Role Focus tab.
missing roles triage, unassigned Open the Role Focus panel on the Missing Roles inbox.
rf debug rfdebug Diagnostic: log paragraph structure of the first Roles note.

roleHTMLMessage is an internal message router used by the panel's webview bridge and is not intended for direct use.


Settings

Setting Default Description
rolesFolder Roles Root folder containing your role subfolders.
defaultLookbackDays 30 How many days back to scan for unassigned tasks in the Missing Roles tab. Set to 0 for all-time.
showSubContentByDefault false If enabled, indented sub-content under each task is expanded by default.
clearRoles true The Clear button removes @role mentions from the task.
clearTags false The Clear button removes #tags from the task.
clearDates false The Clear button removes >date scheduling from the task.
overdueColor #FF3B30 Hex color used to highlight overdue tasks. Default is NotePlan red.
hideTags ["waiting"] Tags to hide when the Hide Tags filter is active. Enter as comma-separated values without #.
appendCompletionDate true Append a @done(date time) timestamp when marking a task complete, matching NotePlan's native behavior.
hideFutureDays 7 Threshold (in days) for the Hide Future filter. Tasks scheduled further out are hidden when the filter is active.

Requirements

  • NotePlan 3.3.2 or later
  • macOS 10.15.7+ / iOS 14+
  • A Roles folder structure as described above

Roadmap & support


License

MIT — see LICENSE.

About

A NotePlan plugin for task management that enables you to focus on your work by the roles in your life.

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors