Gilberto Olimpio Jr.76 downloadsCapture, sync and complete Super Productivity tasks without leaving Obsidian.
Capture, synchronize, and complete Super Productivity tasks without leaving Obsidian.
FlowTask connects Obsidian, your place for notes and continuous thinking, to Super Productivity, your place for execution and task state.
FlowTask provides three complementary workflows:
The integration is deliberately local-first. The primary transport is the Super Productivity Local REST API. When the local app is unavailable, optional file-based fallback queues commands in a vault folder that can be synchronized by your preferred sync service.
http://127.0.0.1:3876.FlowTask is desktop-only because it uses the Obsidian desktop request API and a local application endpoint.
After FlowTask is accepted into the Obsidian community plugin directory:
Download main.js, manifest.json, and styles.css from a GitHub release and copy them into:
<vault>/.obsidian/plugins/flowtask-super-productivity/
Then reload Obsidian and enable FlowTask For Super Productivity under Settings > Community plugins.
Clone the repository, build the plugin, and copy the generated files into the vault plugin directory:
git clone https://github.com/giba0/obisidan-flowtask-sp.git
cd obisidan-flowtask-sp
npm install
npm run build
Copy main.js, manifest.json, and styles.css into the plugin directory described above. Rebuild after source changes and reload the plugin in Obsidian.
http://127.0.0.1:3876.Recent Super Productivity versions may not require a token for local loopback requests. Leave the field empty in that case. FlowTask never sends an empty Authorization header. When a token is configured, FlowTask sends Authorization: Bearer <token> on authenticated task, project, tag, and task-control requests. The GET /health check is always sent without an authorization header.
FlowTask connection, fallback, and import settings.
The default import tag is #sp. A checkbox must contain the configured import tag to be sent to Super Productivity:
- [ ] Review the release notes #sp
A normal checkbox without the import tag is left untouched:
- [ ] This remains an Obsidian-only checklist item
The import tag is configurable under Settings > FlowTask For Super Productivity > Import tag. The value may be entered as sp or #sp; FlowTask normalizes both forms.
- [ ] Review the release +Engineering #sp 📅 2026-09-20 30m
Supported metadata includes:
+Project resolves an existing Super Productivity project.#tag resolves an existing Super Productivity tag.@today, @tomorrow, @next monday, and @next week resolve relative dates.@YYYY-MM-DD and @YYYY/MM/DD resolve explicit dates.30m, 1h, and 2d define an estimate.📅 YYYY-MM-DD is the due-date syntax used by the Obsidian Tasks plugin.⏳ YYYY-MM-DD is also accepted as a date marker.Projects and tags are resolved only when they already exist in Super Productivity. FlowTask never creates projects or tags through the API. An unresolved project or tag is preserved as literal task text instead of silently creating the wrong entity.
After successful import, FlowTask appends an inline Obsidian comment:
- [ ] Review the release #sp %%sp-id:task-id%%
The marker is hidden in Live Preview and Reading View and remains visible in Source/Code mode. It makes synchronization idempotent and connects the note checkbox to the remote task. Legacy <!--sp-id:...--> markers are still recognized and migrated automatically during synchronization.
Indented checkboxes under an imported parent are created as Super Productivity subtasks:
- [ ] Release FlowTask #sp 📅 2026-09-25
- [ ] Update the README
- [ ] Publish the release
The parent needs the configured import tag. Its indented children inherit the parent relationship and project. Super Productivity's Local REST API currently supports one subtask level through parentId; deeper indentation is attached to the top-level parent rather than creating unsupported nested API relationships.
Write in Obsidian while monitoring the linked FlowTask panel.
FlowTask is compatible with the common Obsidian Tasks format:
- [ ] Prepare the demo #sp 📅 2026-09-21
The task remains a normal Obsidian Tasks item. FlowTask only adds its hidden identity marker and sends the due date to Super Productivity as dueDay.
See the official Tasks documentation for the full Tasks syntax:
https://publish.obsidian.md/tasks/Introduction
Open FlowTask: Quick capture from the Command Palette or assign your own hotkey under Settings > Hotkeys.
Enter a task using this syntax:
Buy milk +Home #shopping @tomorrow 15m
The modal provides:
+.#.@.obsidian:// link to the current note.+ Add subtask for creating child tasks before the parent is submitted.
Quick Capture with a live project, date, and estimate preview.
Quick capture uses #tag because it is an isolated modal. Note import uses the configured routing tag and remains compatible with normal Obsidian note syntax.
Open the panel with the ribbon icon, the Command Palette, or FlowTask: Open panel.
Search, filter, group, and track tasks from the sidebar.
The Filters menu provides:
The search field uses fuzzy matching across:
Searching rpr can match a task such as Review pull request without requiring an exact phrase.
Use the grouping selector to group tasks by:
Click a group header to collapse or expand it. Use the ⋮⋮ handle to drag project groups into a preferred order. Inbox is always placed first. Custom project order is stored in FlowTask settings and affects only the FlowTask presentation.
Each card can show:
Tasks with subtasks display a ▾ or ▸ control beside the title. The control collapses or expands the child tasks without hiding the parent.
Parent cards and Quick Capture both use a dedicated Subtasks (n) section with an Add subtask action, following the Super Productivity workflow.
The tracking action reflects the actual current task reported by Super Productivity:
Start starts tracking a task with no recorded time.Resume (time) starts tracking a task that already has recorded time.Pause stops the current task through POST /task-control/stop.Time values are read in the millisecond format used by Super Productivity and displayed as seconds, minutes, or hours.
Starting a task does not guarantee starting a Pomodoro or focus session. Super Productivity does not expose a guaranteed external focus-session API; focus behavior depends on the application's own configuration.
The linked task in Super Productivity's Inbox.
Tracking and scheduling the task inside a Super Productivity project.
FlowTask registers independent commands so each can receive its own Obsidian hotkey:
Configure hotkeys under Settings > Hotkeys.
FlowTask commands are independently available in the Obsidian Command Palette.
FlowTask uses Obsidian's requestUrl() API rather than browser fetch(). This avoids sending an Origin header that the Super Productivity local API rejects.
The REST transport uses these endpoints:
GET /healthGET /tasksPOST /tasksPATCH /tasks/:idDELETE /tasks/:idGET /projectsGET /tagsPOST /tasks/:id/startGET /task-control/currentPOST /task-control/stopWhen enabled, offline task operations are written atomically below the configured folder:
FlowTask/
commands/
events/
processed/
state/snapshot.json
The fallback is intended for an optional companion integration or a synchronized vault workflow. It does not pretend that a local REST operation succeeded.
The Super Productivity Local REST API URL. Default: http://127.0.0.1:3876.
Optional. Leave empty when your local SP API does not require authentication. If your SP version displays or requires a token, enter it here. FlowTask sends Authorization: Bearer <token> on authenticated task, project, tag, and task-control requests; GET /health is always unauthenticated.
Polling interval from 2 to 30 seconds. The default is 5 seconds. FlowTask also refreshes when the Obsidian window regains focus.
Enables or disables the JSON command queue used while Super Productivity is unavailable.
Vault-relative folder used by the file transport. The default is FlowTask.
Optional existing Super Productivity project name used when a newly created task does not specify a project.
The routing tag used by the checkbox watcher. Default: #sp.
curl http://127.0.0.1:3876/health.#sp.- [ ].%%sp-id:...%% marker.Use a supported date marker:
- [ ] Task #sp 📅 2026-09-20
Do not use a locale-formatted date such as 20/09/2026 when creating a task from the note.
##spUpdate to the latest plugin build. FlowTask normalizes legacy tag settings and prevents the routing tag from being appended as a second hash-prefixed tag. Existing tasks already containing ##sp must be edited once in Super Productivity.
Open Filters and enable Include completed.
npm install
npm run typecheck
npm test
npm run build
The test suite covers:
npm run build creates the Obsidian distribution bundle at the repository root:
main.js
manifest.json
Do not commit node_modules. The generated main.js is part of a release and should be committed with the release tag.
FlowTask follows Semantic Versioning. Use the version scripts from the repository root:
npm run version:patch # bug fixes and compatible changes
npm run version:minor # backwards-compatible features
npm run version:major # breaking changes
Each script updates the version in package.json, package-lock.json, and manifest.json. Run the validation suite, commit the version change, and create a tag matching the new version. Pushing a major.minor.patch tag triggers the GitHub release workflow.
src/domain/ Pure parsing, dates, search, tags, and presentation logic
src/transport/ REST and file transports
src/ui/ Sidebar and Quick Capture UI
src/watcher.ts Checkbox import and bidirectional synchronization
src/main.ts Obsidian lifecycle, commands, settings, and polling
tests/ Unit and integration-seam tests
Before opening an issue, search existing issues and confirm that you are using the latest release.
Open a bug report with:
Never include an access token, private note contents, or personal task data in an issue.
Describe the user problem before proposing the implementation. Include:
main.npm run typecheck, npm test, and npm run build.Pull requests should not include secrets, vault data, node_modules, or unrelated formatting changes. A maintainer may request changes before merging.
See CONTRIBUTING.md for the full development and review policy.
FlowTask does not use a hosted account or telemetry service. It sends task data to the configured Super Productivity Local REST API and writes fallback commands to the configured vault folder.
Do not publish:
For security reports, see SECURITY.md instead of opening a public issue.
FlowTask For Super Productivity is distributed under the MIT License.
If FlowTask improves your workflow, you can support development: