Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NoteTaskBot

Capture handwritten task lists from Supernote notes and send them to Todoist.

This is a standalone Supernote plugin repo. The plugin package identity is NoteTaskBot (Android package, .snplg name). Offline Supernote SDK docs and extracted TypeScript live under sdk-reference/ — reference only, not a runtime dependency.

Origins

This standalone repo was developed from scratch, using scaffolding and extracted SDK/plugin tools from apclark31.

Flow

  1. Write a list in a note (one task per line)
  2. Lasso the handwriting
  3. Tap -> Todoist in the lasso menu
  4. The plugin OCRs your writing and always creates a new parent task named: <YYYY-MM-DD> | <file name> | <page> | <lasso location>
    • Example: 2026-08-11 | Meeting Notes | 3 | Top
    • Lasso location is an estimated vertical quarter of the page: Top, Upper, Lower, or Bottom
  5. Each recognized line becomes its own subtask under that parent
  6. If the parent was deleted before subtasks finish syncing, the plugin creates a new parent and places the subtasks there
  7. A review screen shows the recognized text, project, parent task, and subtasks created

Requirements

  • Supernote with plugin support
  • Wi-Fi for Todoist API
  • A Todoist project where captured tasks should be created
  • Todoist API token

Token and project setup

NoteTaskBot uses its own config file (separate from SuperTask):

/MyStyle/NoteTaskBot/notetaskbot-config.json

On first run, the plugin creates a template with YOUR_TOKEN_HERE. Edit via USB:

{
  "apiToken": "your_todoist_token_here",
  "targetProjectId": "your_todoist_project_id"
}

Set targetProjectId to the Todoist project where tasks should be generated. In Todoist, pick the project by its title, then use that project's project_id (from the project URL or the Todoist API). Example URL form: https://app.todoist.com/app/project/<project-name>-<project_id> — the trailing id segment is what goes in targetProjectId.

If SuperTask is already configured on the same device, newer builds can reuse that token automatically (fallback reads MyStyle/SuperTask/supertask-config.json). You still need to set targetProjectId for NoteTaskBot.

Get your token at Todoist Developer Settings.

Build (requires native module)

NoteTaskBot uses react-native-fs for config storage. Use the native build on Windows:

npm install
powershell -ExecutionPolicy Bypass -File .\build-native.ps1

The output .snplg should be ~7 MB (includes app.npk). A ~260 KB build is JS-only and cannot read your config file.

Copy build/outputs/NoteTaskBot.snplg to MyStyle/ on the device, then install via Settings > Apps > Plugins.

On first capture after this build, the device will prompt for file read, file write (MyStyle config), and internet. Choose Always allow if you want capture to work after closing the plugin. "Allow this time only" expires when the plugin UI closes.

Parent page numbers follow the host SDK (1-based). Official plugin docs for this firmware live in Plugin-Assets/ (see SDK-Release-Notes.md).

Troubleshooting

Symptom Likely cause Fix
"No Todoist API token" Config not edited or JS-only build Set token in notetaskbot-config.json, or rebuild with build-native.ps1
"Permission required: plugin.permission.…" User denied host permission, or chose "this time only" then closed the plugin Re-lasso, tap Retry, and choose Always allow
"Could not recognize handwriting" OCR failed Lasso again with clearer writing; check Log screen
"Todoist 401" Invalid/expired token Regenerate token in Todoist developer settings
Success on device but no tasks in Todoist Wrong project or viewing subtasks Open the Todoist project you set as targetProjectId and look for a new parent named <date> | <file> | <page> | <quarter> — subtasks are nested under it
Plugin crashes on open Installed JS-only build without RNFS Rebuild with build-native.ps1 and reinstall

Debug

node dev-server.js

Add debugServerUrl in a local config.local.js (gitignored) for log streaming during development. See config.local.example.js.

SDK reference

Path Purpose
sdk-reference/CLAUDE.md Development practices, SDK patterns, Todoist notes
sdk-reference/SDK-REFERENCE.md API reference notes
sdk-reference/official-docs-extracted.md Ratta official docs dump
sdk-reference/src/ Extracted sn-plugin-lib TypeScript source
Plugin-Assets/ Official Ratta plugin docs dump + SDK release notes

About

Supernote plugin: lasso handwriting OCR to Todoist subtasks

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages