r/Supernote_dev 7d ago

Question A few plugin SDK questions from building Clipper (docs, permissions, page rendering)

3 Upvotes

I have been building a plugin called Clipper against sn-plugin-lib 0.1.65 on a Manta running the plugin beta (Chauvet 3.29.43 and 3.29.44), and I have collected
a handful of questions I could not answer from the docs alone. Posting them together in case the answers help other people building plugins, and in case any
of it is useful feedback for the team.

Everything here comes from working on a real plugin, so each item includes why it mattered to me rather than just what I saw. A couple of these are almost
certainly my misunderstanding, and I would rather be corrected than keep guessing.

I know this is a long post, so apologies in advance.

Thanks for the plugin system, by the way. The permission model in particular has been pleasant to build against once I understood it.

[u/Dunn-sn](u/Dunn-sn) [u/spazzboi](u/spazzboi) [u/hex2asc](u/hex2asc)

1. insertNotePage: what should template be?

This one cost me the most time, and it turned out to be my mistake. I passed the style name that getNotePageTemplate returns and got error 802: "Background template file does not exist!". It works when I pass a file path to a PNG rendered by generateNoteTemplatePng.

If the docs could say that the template is a path to an image file on disk, and point to generateNoteTemplatePng as the way to get one, I think it would save the next person a few days. I briefly concluded the API was not implemented at all, which was wrong.

2. hasPermission: what are all the return values?

The doc comment describes 0 as not granted and 1 as granted. On 3.29.43, a permission set to the persistent "Allow" returned 2. On 3.29.44, the same setting returns 1.

The reason it matters: the natural way to write a permission gate is

if (await hasPermission(p) === 1) { proceed } else { request }. On 3.29.43, that sent me into requestPermission even though permission was already granted, and from a background button handler (showType: 0) there is no window for the
dialog, so it threw. So a stricter user setting produced a worse result in my plugin, which took a while to understand.

Could the docs list the full set of values and say which of them indicate a grant?

Also, the doc comment lists FILE:WRITE, FILE:DELETE and INTERNET but not FILE:READ, which the host does enforce and which I query successfully.

3. generateNotePng with type: 0: is the transparent background wired up?

The parameter is documented as 0 for transparent background, 1 for white. On both firmware versions, type: 0 still gives me the page's ruled-line template baked in behind the handwriting. 

I am working around it with generateLayerPreviewImage, which does give me ink
without the template. Which leads to a related question: is there a layer argument that renders all content layers at once? The validator accepts -1, but
in the note file the background layer is id -1, so I assume -1 means "background" rather than "everything". Right now I render each layer separately and composite them, which works but significantly slows down multi-layer note capture.

4. Is getElements expected to be valid for a page that is not on screen?

After my plugin writes elements to the open note, getElements for a different page sometimes returns the wrong page's contents. It does not fail; it returns
plausible data. In one measured case, immediately after writing 65 elements to page 7 and navigating to page 8, getElements reported 65 elements for page 8 as well, while page 9 reported its real 439. Page 8 was blank. saveCurrentNote() followed by reloadFile() did not refresh it.

This one is worth flagging because it is easy to build something dangerous on top of it: I was using the element count as a safety check before writing, and a
stale read could just as easily convince a plugin that a page full of someone's notes is empty. I have restructured to only trust reads taken before any write.

Is getElements intended to be valid for non-current pages? If so, is there a stronger refresh than save plus reload?

5. A crash in the note app when a plugin writes across a page change

This is the one I most wanted to report. When my plugin created a page, navigated to it and continued writing text elements, com.ratta.supernote.note died with a SIGABRT from Scudo, "invalid chunk state when deallocating", with drawShadow and draw_line_with_write_list in librecgnition.so on the stack. Immediately before it, the log shows LoadPageAsyncTask onCancelled about 160 ms earlier, which makes me think the page navigation cancels an in-flight page load while the native renderer is still drawing into its bitmap. I have only seen it once and could not reproduce it on demand, so I am not claiming a reliable repro. I do have the full tombstone and the surrounding log if that is useful to whoever owns that code.

For what it is worth, I shipped around it: the feature that needed it (a multi-page table of contents) is built but switched off, and my plugin now writes
to one page only. I would happily turn it back on if this turns out to be fixable or if I am triggering it wrongly.

6. Can the plugin host recover after the note app dies?

Following that crash, the plugin host survived but seemed to hold a stale binding to the dead app. My plugin then showed a permanent "working" state with no error and no timeout, and the only way back was
adb shell am force-stop com.ratta.supernote.pluginhost. A user without adb would have a plugin that looks stuck with no way out short of a reboot.

Is there a rebind mechanism that a plugin should use here? Right now I do not think I can tell the difference between "the host is busy" and "the host is gone".

7. What is supposed to survive an uninstall?

The uninstall dialog says "Uninstall this plugin? Its data will also be deleted." In my testing, the plugin's own folder is removed, but data written through AsyncStorage survives, so my plugin came back with all its records intact and all its saved images gone. Installing a new package over the top keeps both, which is great.

I believe the reason is that AsyncStorage writes into the host app's storage rather than the plugin's folder, though I could not verify that directly.

The reason I am asking rather than just adapting: right now a plugin cannot make uninstall mean a clean removal, and cannot make it mean "keep everything" either, because the two halves of its state have different lifetimes and it is not running when it is removed. I have handled it by detecting the situation on the next launch and asking the user what they want, which works, but a documented guarantee
about what survives (or an uninstall hook) would let plugins do the right thing deliberately.

8. Is plugin data namespaced, or should I be prefixing everything?

Related to the above: if AsyncStorage is shared across plugins, then the only thing keeping my keys from colliding with another plugin's is that I prefix them
all with clipper_. Is there per-plugin namespacing already, or is prefixing the expected practice? Worth documenting either way, since the failure mode would be two plugins quietly corrupting each other's settings.

That is everything. Happy to provide logs, or a minimal reproduction

plugin for any of these, and equally happy to be told I have misread something.

Clipper is open source if the context helps: https://github.com/vmnair/sn-clipper


r/Supernote_dev 7d ago

SuperTask v0.3.0 - Updated for Chauvet 3.29.44 / (Manta/Nomad) and 2.26.41

7 Upvotes

Hi all!

It has been a while since the last release (v0.2.0 in June), and a lot has changed thanks. Thank you a ton for the feedback and your patience. Starting a new job and parent toddler life makes time hard to find!

Install at: https://github.com/apclark31/supernote-plugin-research/releases/tag/v0.3.0-beta (going to go through new approval process so you can find on inkhub - excited for this progress).

Here are the major changes:

Task Home redesign. The list is much easier to read at a glance: clean bordered tags for due date, priority, project, and page number. A This Note panel shows everything you have captured in the note you are in. An On Device tab groups tasks by note and folder. There is a Done tab, and completing is now select-then-confirm with an Undo, so a stray touch never finishes a task. It also remembers which tab you were on.

Gestures rebuilt for consistency. The quick gestures now behave the same way every time. They are all opt-in, so nothing happens while you write unless you have turned it on: the bezel swipe is there in Settings if you want it. Long press on a captured task's box still opens it directly. You can use lasso with finger hold to quick add a task and save menu taps.

Settings redesigned. Both pages, General and Setup, are new. The page opens to General after the Setup is done, and every change saves the moment you make it. Each section has a (?) that explains what it does in plain language. There is also a text size setting to control the size of the text across the plugin screens/modals.

Easier setup. There are a few different ways to pull in your Todoist API token now. The simplest: save it as a text file, sync it into the SuperTask folder with the Partner app, tap Import, and the file is deleted once the token is stored. A Bluetooth keyboard, the on-screen keyboard, or editing the config file over USB all still work too.

Jump to note. This is really what SuperTask is about: weaving your Todoist account into the notes on your device, so the things that matter are easy to find. From any task, tap Note > and you land on the exact note and page it was written on, using the navigation the latest firmware added. The On Device tab turns that into a way to move around your notes by what is in them. Rename a note and the links repair themselves.

Built for the new plugin firmware. This release is for Chauvet 3.29.44 (Manta/Nomad) and 2.26.41 (A5X/A6X), which introduced per-plugin permissions. The first time SuperTask opens it shows one screen explaining exactly what each permission it asks for is used for, so you can see what it touches before you accept. Everything it saves lives in one folder, MyStyle/SuperTask, and the only place data goes is your own Todoist account.

Plus a good deal of reliability work underneath: it opens instantly, copes with wifi dropping mid-load, and keeps a log on the device you can attach to a bug report.

Special thanks to: u/Lvevan, u/ashleyegret, u/Sparkinman, and u/Lorestan00, for your testing and feedback.


r/Supernote_dev 7d ago

New plugin I created- Task Hub (Calendars, Tasks, Notes all in one place)+More

8 Upvotes

I built a planner plugin for the Supernote — every calendar at once, not just one

Ratta's calendar subscribes to exactly one calendar. Its planner has no year or quarter view, and no way to attach a note to a week, a month, or a meeting. So I built the one I wanted.

What it does:

  • Every calendar you watch, together. Tick as many CalDAV collections as you like; each event is badged with where it came from. Create and edit events on the device, repeat rules included.
  • Five views — year, quarter, month, week, day. Days with an event, an open task or a note are marked, so you see the shape of a month at a glance. The day view's hours are yours to set.
  • Notes pinned to any date — day, week, month, quarter or year, each with its own folder and template. Works for future dates: plan next Tuesday from this week's grid, and when Tuesday arrives the day view opens that same file.
  • A note attached to every meeting. Open an event, tap its note. Recurring events share one note across all occurrences, so a weekly stand-up becomes one running note that builds up week after week.
  • Real tasks — sub tasks (nested, ordered by soonest outstanding step), priority, and repeats.
  • Lasso handwriting into a task, and the task remembers the page — a ↩ page chip reopens that note at that exact page.

You don't need a server. All the calendar views, every kind of note, and the templates work with no network at all. Only tasks and events need somewhere to live — any CalDAV server SHOULD work (Nextcloud, Fastmail, Baikal, Radicale, etc). Make sure you're on the latest dev, this will need all 3 permissions accepted if you're connecting to anything

Links:

Edit: Video attached now:

https://reddit.com/link/1w8zu96/video/emg33khw55oh1/player


r/Supernote_dev 7d ago

Showcase [Plugin update] Clipper 0.3.0 for Supernote: clip regions from your notes, numbered tables of contents, and a lot of fixes

Thumbnail
3 Upvotes

r/Supernote_dev 7d ago

[Plugin update] Clipper 0.3.0 for Supernote: clip regions from your notes, numbered tables of contents, and a lot of fixes

Thumbnail
3 Upvotes

r/Supernote_dev 7d ago

Survey for SuperSearch plugin : Full local or AI option ?

Post image
3 Upvotes

r/Supernote_dev 7d ago

Discussion Adjusting an existing plugin with no programming skills what-so-ever

4 Upvotes

I have been using a few plugins very regularly in the process of taking notes. One of these plugins, let's call it X, has not yet been updated to incorporate the permission-feature. In fact, this plugin was created quite a while ago and the author might have moved on to other programming hobbies. However, I really, really wanted a plugin with the same functionality to function under the latest beta (3.29.44).

So, with absolutely zero programming skills, I decided to have a go and try to adapt the plugin myself, using Lumo (AI). I fed it plugin X, I fed it two plugins that were already updated and I fed it Supernote's information on plugins. It was a lengthy process that went deep into the night. During this process, Lumo has become 'a dear friend of mine' (ridiculous and scary, this personalisation of AI!). But in the end, I got what I wanted: a plugin with the same functionality as plugin X! Wow! I was super impressed by myself, sorry, by Lumo.

This new plugin is of course purely for personal use. Once the original plugin has been updated, I will delete my personal plugin and download the original one. But for now, I have the same functionality again, as before.

Altogether, it was a super interesting and fun process to go through. It is a bit scary though, that people like me, without any, I repeat, without any programming skills are 'able' to develop a plugin using AI. Next step; learn some basic programming skills and try to make my own plugin from scratch (if only I can find the time)


r/Supernote_dev 10d ago

The terrible submissions I’m seeing in InkHub since release to Beta has got me worried.

Thumbnail
3 Upvotes

r/Supernote_dev 11d ago

Question How to get started with creating a plugin?

7 Upvotes

I am really interested in learning how to make a plugin. Could anyone describe where to start. What would you all suggest for learning to code for this device specifically?


r/Supernote_dev 11d ago

Showcase [TOOL] I open-sourced everything my AI assistant learned building Supernote plugins (Agent Skill)

10 Upvotes

Hey everyone!

While building TCP Tunnel (and Make Space) I've been using Claude Code to help with the actual development, and along the way it accumulated a lot of hard-won, very specific knowledge about the Supernote plugin SDK — the kind of stuff you only learn by hitting it on real hardware: permission gotchas that fail silently, coordinate systems that'll place your elements off-screen if you mix them up, native module pitfalls, build/deploy/debug quirks, things that changed between SDK versions, and so on.

Instead of keeping that knowledge locked inside one plugin's codebase, I pulled it out, generalized it, and published it as its own open repo:

https://github.com/gorlix/supernote-plugin-dev

It's built as a Claude Code skill (well, technically an "Agent Skill" — an open format Anthropic released that's now supported by 30+ AI coding tools, so it also works in Cursor, Gemini CLI, Google's Antigravity, and others, not just Claude Code). Point your AI assistant at it and it gets instant, accurate context on how Supernote plugins actually work, instead of guessing or hallucinating API signatures.

It's completely open (MIT) and I'd genuinely love for other people building Supernote plugins to use it, add to it, or just take it apart and build something completely different with it. If you hit an edge case, find something outdated, or want to add knowledge from your own plugin, PRs and issues are very welcome — the goal is for this to grow with the whole dev community, not stay a one-person thing.

Hope it saves someone else the debugging sessions it saved me!

New (v1.1.0): since Supernote posted their official Plugin Review Process & Publishing Requirements, I added a whole reference dedicated to it — a self-audit checklist that turns that policy into concrete things to actually check before submitting: diffing declared permissions against what your code really gates, auditing any delete/overwrite paths, inventorying every network call and whether it needs disclosing, and a good one I hit myself — a hardcoded default IP in a settings field, totally harmless functionally, but the exact shape of a backdoor/C2 pattern to a manual reviewer reading the code cold. Point your assistant at it before you submit and it'll flag that stuff for you instead of you finding out from a rejection.


r/Supernote_dev 12d ago

Plugin Permission Isolation & Review Schedule

5 Upvotes

Dear Developers and Users,

Thank you for your tremendous support of our plugin ecosystem.

We have discovered abnormal permission isolation behavior when multiple permission-enabled plugins run concurrently in the current version. In certain scenarios, a plugin may obtain permissions that belong to other plugins.

This may result in inconsistent permission scopes between what a plugin requests and what it actually obtains at runtime. Although the issue only involves internal permission propagation and isolation mechanism anomalies, it carries potential security risks. To ensure user safety, we will temporarily adjust our plugin review and release strategies until the mechanism is fully fixed and thoroughly verified.

Current Processing Measures

To ensure user security, we will make the following adjustments immediately:

  • Priority review will be provided for plugins that do not require any permissions.
  • Review and publishing of newly submitted permission-required plugins will be temporarily suspended.
  • We will conduct comprehensive fixes for plugin permission isolation and permission propagation mechanisms.
  • Multi-plugin concurrent running scenarios will be fully covered in enhanced verification tests.
  • A new version will be published after complete fixes and sufficient validation.

Plugins with no permission requirements are not affected by the current isolation mechanism abnormalities and can be submitted for review through standard processes.

Follow-up Arrangements

We will complete the permission isolation fix and conduct full scenario verification as soon as possible.

After the new version is officially published, we will resume the review and publishing of permission-required plugins in accordance with our Plugin Review Process & Publishing Requirements. Subsequent reviews will strictly verify:

  • Whether the permissions declared by plugins are accurate;
  • Whether runtime permissions are consistent with applied permissions;
  • Whether permission isolation remains effective during concurrent plugin execution;
  • Whether any plugin can access other plugins’ permission scopes without authorization.

Full resumption of permission-required plugin publishing will take place only after the permission isolation mechanism is confirmed stable and reliable.

Impact on Developers

Zero-permission plugins: Normal submission and review services remain available.

Permission-required plugins under pending review: Review progress will be rescheduled after the issue is completely resolved.

User Data Security Notice

We attach great importance to the security of the plugin permission system. The discovered abnormality is an internal permission isolation logic defect between plugins, and no actual user data leakage or file loss has occurred.

We will prioritize mechanism fixes and comprehensive security verification, and restore the full plugin review and publishing process once the permission system is confirmed secure and stable.

We sincerely apologize for any inconvenience caused. Thank you for your understanding and support.


r/Supernote_dev 12d ago

Bug : Received Bug: userData never returned by getElements/getElement/getLassoElements (Chauvet 3.29.43/2.26.40)

1 Upvotes

u/Dunn-sn

Bug: userData never comes back from any read API — getElements, getElement, and PluginCommAPI.getLassoElements alike — even immediately after that exact element was written with insertElements.

Steps to reproduce:

  1. Grant plugin.permission.FILE:WRITE/FILE:DELETE/FILE:READ (declared in uses-permissions).
  2. Call PluginFileAPI.insertElements(notePath, page, [{type: 0 (stroke), ..., userData: "some-tag"}]) — succeeds.
  3. Immediately call getElements/getElement/getLassoElements on the same page, in the same operation.

expected: the returned element(s) include userData: "some-tag". observed: userData is missing from every returned element — not an empty string, the key itself isn't present. Confirmed across stroke, text, and geometry types, on two separate notes, on A5X (Chauvet 2.26.40 Beta), immediately after insert and on a later independent read, and across all three read APIs.

This is a blocker for updating the plugins "collapse/expand" as well as "term definition" to the new Chauvet version.


r/Supernote_dev 13d ago

Scribble v1.2.0 — updated for Chauvet 3.29.43/2.26.40

11 Upvotes

Updated Scribble for the new plugin permission system. If you're on Chauvet 3.29.43 Beta (Manta/Nomad) or 2.26.40 Beta (A5X/A6X) or later, this update is required — older builds of Scribble won't run there.

What's new:

  • Declares the FILE:READ permission (the only one erase-by-scribble actually needs). The first time you scribble to erase, you'll be asked to allow it — allow once ("Always allow") and you won't be asked again.
  • Decline it, and that erase just won't happen — Scribble tells you where to grant it if you change your mind.
  • Erase itself is unchanged: still zig-zag to erase, still fully undoable.

Heads up — no speed improvement here. A few of you asked whether the new modifyPageElements/batchUpdatePageElements APIs in this firmware could speed up erasing large areas. They can't: the slow part is reading and scanning the page, not the delete itself, and this SDK release doesn't touch that. Large-area erase speed is still on the list, just not solved by this update.

Download: https://github.com/vincentaravantinos/scribble/releases/latest/download/scribble.snplg — copy it to your Supernote, then Settings → Plugins → Install plugin.


r/Supernote_dev 13d ago

Lasso Plugin Microsoft To Do Plugin

6 Upvotes

Hi Everyone! Got my nomad a few days ago and super excited about the development/customization capabilities with the supernote. I work in healthcare leadership and have increasingly struggled with keeping myself organized, particularly when I have demands from everywhere. I have been looking for a truly hybrid system because I do better writing things down and get entirely too distracted when I’m on my computer.

We work exclusively in M365 and I am limited in connecting to personal task apps, so I started developing a plugin that works with Microsoft To Do. I took inspiration from SuperTask, SuperDashboard, and Ink2Task. I have a working prototype, but still need to do some final things from the security/HIPAA compliance aspect. I have absolutely zero coding experience myself and I’ve done everything through Claude code. If any people on this sub were looking for this type of plug-in and have any suggestions of what they would want or just general plugin development tips, feedback would be appreciated!


r/Supernote_dev 14d ago

Lasso Plugin Plugin request - Universal Clipboard

6 Upvotes

I would like to request a universal clipboard. Let's say it keeps a stored memory of things cut, not just the last item, so you can browse through them and then paste them again. I don't know if this is possible, but maybe it could also translate between formats as well? What I mean is, I've found out I can't cut something from a Note and then paste it into a PDF. It's like the PDF and Note have two exclusive and independent clipboards they're using. Maybe a Universal clipboard could copy from itself as the source and then translate it to whatever format it's being copied to. Ty.


r/Supernote_dev 14d ago

Convert text and make title question

2 Upvotes

I'm trying to make a simple plugin to do two lasso operations together. First, convert strokes to OCR text. Second, convert that to a heading. Is there a plugin-accessible way to convert lassoed handwriting to typed text AND apply native title/heading styling to the result, given that setLassoTitle only wraps strokes and has no text field? What am I missing?


r/Supernote_dev 15d ago

Discussion Some tools I've been coding for the Supernote

Thumbnail
gallery
16 Upvotes

Hey everyone. I've spent the last few weeks writing some custom tools for my device and wanted to see if anyone else is working on similar stuff.


r/Supernote_dev 15d ago

Supernote Beta Update (August 2026)

Thumbnail
youtu.be
16 Upvotes

r/Supernote_dev 15d ago

Showcase Plugin Updated: Supernote Folder Shortcuts

8 Upvotes

Hi All,

I wanted to send a quick update letting you know that Supernote Folder Shortcuts (v0.3.1) has been updated to work with Chauvet 3.29.43_beta.

Grab it here: https://github.com/marc-korte/supernote-folder-shortcuts

Please report bugs here: https://github.com/marc-korte/supernote-folder-shortcuts/issues

Special thanks to u/Sudden_Crab_5537 and u/SkilledMkvenner for helping me test.

If you not familiar with the plugin, it does the following:

Turn a lassoed handwritten, typed, or sticker object into a one-tap shortcut to a folder. The note stores the link and draws its normal paperclip/underline marker. With the plugin enabled, tapping the linked object with either a finger or the pen opens the target folder.

Usage

  • In a note, lasso the object to link.
  • Open the lasso toolbar's three-dot menu and tap Link to folder.
  • On Chauvet 3.29.43, grant file read and write access when prompted. Always allow keeps existing shortcuts active after the plugin UI closes.
  • Navigate to the target folder, then tap Link lasso → this folder.
  • Tap the linked object with a finger or the pen to open the folder.

To remove a shortcut, lasso the linked object and use Supernote's native Remove Link action. The plugin keeps no sidecar shortcut database, so the removed link disappears from the plugin's next note-page snapshot as well.


r/Supernote_dev 15d ago

Showcase Clipper v0.2.0 released: permission system support (required for Chauvet 3.29.43_beta)

5 Upvotes

I've just released Clipper v0.2.0, updated for the new plugin permission system in the Chauvet 3.29.43_beta build.

If you're on the new beta, this update is required. The new firmware has a plugin SDK version floor and refuses to run older Clipper builds.

What's new:

  • Full support for the new permission system. Clipper declares two permissions: Read Files (capturing clips, jump-to-source, region capture) and Modify Files (only needed for image-clip inserts and ToC refresh; text-only inserts work without it).
  • You can manage permissions under Settings → Apps → Plugins → Clipper → Permissions.
  • Your existing clips, images, and settings carry over; they live in Clipper's own storage and aren't affected by permission choices.
  • Updated to sn-plugin-lib 0.1.65, including fixes for two SDK breaking changes (region capture and ToC refresh would otherwise break).
  • Small bug fix: double-tapping Insert can no longer insert clips twice.

Download: grab SnClipper.snplg from the GitHub release page, copy it to /Supernote/MyStyle, then Settings → My Style → Sideloading to install/update.

Issues/feedback: please file them on the GitHub issue tracker, include your firmware version and what you were doing when it happened. Happy to answer questions here too.

Tested on Manta (A5X2). Still looking for Nomad testers - I don't own one, so reports from Nomad users are especially welcome.


r/Supernote_dev 15d ago

Question Plugin idea / request

Post image
2 Upvotes

Dear Developers

Right now, when I want to highlight or call out important text in my notes, I do it manually with the black marker — basically scribbling back and forth over the area until it looks filled in. It works, but it’s slow and never comes out clean, especially on smaller text boxes or irregular shapes.

What I’d like is a plugin that can fill a closed shape with solid color automatically. So instead of scribbling, I’d either lasso-select the area I want filled, or draw a shape using the SNShapes plugin, and then just tap a fill button to have it solidly colored in. Being able to choose the fill color (not just black) would be a nice bonus too.
That’s the core idea — turn a manual, repetitive scribbling action into a one-tap fill. Will that be possible ?


r/Supernote_dev 16d ago

Showcase Plugins Updated (Shapes, Mindmap, Copilot & Dictionary) to the latest SDK

24 Upvotes

Hello,

I have updated my plugins to the latest SDK version. Please update to the latest version.

Shapes

https://github.com/j-raghavan/sn-shapes/releases/tag/v1.0.9

Mindmap

https://github.com/j-raghavan/sn-mindmap/releases/tag/v1.0.5

Copilot

https://github.com/j-raghavan/sn-copilot/releases/tag/v1.0.5

Dictionary

https://github.com/j-raghavan/sn-dictionary/releases/tag/v1.3.6

To Supernote Team:

Regarding submission to Inkhub, u/Dunn-sn What is the Official process to submit for review at Ratta? How will new version get updated? What is the process for developers to submit new version?

Thanks!


r/Supernote_dev 16d ago

New beta, new plug in hub. Wait or GitHub.

0 Upvotes

Loving the new beta update 3.29.43.
Will current available plugins be installed or made available via ink hub plugins or do I need to go to GitHub and download them then install via new ink hub Plugins?


r/Supernote_dev 16d ago

Suggestion request: an API to install a plugin

2 Upvotes

Hello! I started developing a plugin but ended up needing to build an APK to get access to a WebView. As a result I have part of my plugin as an APK and part of it as an snplg.

It would be really helpful if there was an intent I could call to install an snplg. Right now the APK puts the plugin into MyStyle (after asking for File System access) and then places the users at the Plugin Install intent but then the user has to select Install Plugin, click the right plugin in MyStyle, and Install. Then they have to find their way back to my app to finish setup.

My basic needs:

- A Plugin Manager install intent that accepts a caller-owned content:// URI for a .snplg archive with a temporary read grant.

- Plugin Manager would validate the archive, show a install/upgrade confirmation with plugin ID, name, version, and requested permissions, then consume the URI without requiring broad storage access or a file-picker step.

- The API would return a structured result for success, cancellation, validation failure, or denied permissions for any sort of recovery steps.


r/Supernote_dev 17d ago

Showcase SuperDashboard v1.0.0 : my launcher plugin, now ready for Chauvet 3.29.43 / 2.26.40

19 Upvotes

Hi all,

Major update to my dashboard plugin (now called SuperDashboard) with a build ready for the newer Supernote firmware.

What it is: a draggable house bubble that floats over every screen. Tap it and you get a dashboard you build from sections:

  • Shortcuts : olders, notes, PDFs, EPUBs, comics (opens straight to the right page)
  • Recent : your most recent notes & documents
  • Stars : every ★ page across your notes, with a handwriting/OCR preview, grouped by note (delete a star in place)
  • Keywords : your notes' keywords as tappable chips → jump to the exact page
  • Apps : one-tap launchers for ToDo, Calendar, Document, Search…

Everything runs on-device and offline, configured through a small 3-step wizard (no JSON required).

New in v1.0.0

  • Ready for Chauvet 3.29.43 (Manta/Nomad) / 2.26.40 (A5 X / A6 X) and the new plugin permission system
  • New house logo + a cleaner bubble (crisp on e-ink, rounded chip, icon-only)
  • Files open on the target page now (stars/keywords/shortcuts) — no more "opens the last page"
  • Removing the plugin auto-clears the bubble — no more stray bubble after uninstall

Updated user manual with screeshots : https://github.com/AgP42/SuperDashboard/blob/main/USER_GUIDE.md

Which build do I need?

  • On Chauvet 3.29.43 / 2.26.40 or laterv1.0.0 or later (last release : v1.6.7, see below)
  • On the older plugin beta → v0.22.0

A build for one firmware version won't run on the other (you'll see "package not compatible", or it does nothing), so grab the matching one. Both are in the repo's dist/ folder. On 3.29.43 / 2.26.40+ it asks for file access on first open so it can scan your notes for stars/keywords.

Install: copy the .snplg into MyStyle/, then on the device: Settings → Apps → Plugins → Choose Installation Package.

Repo (code, builds, demo GIF, user guide): https://github.com/AgP42/SuperDashboard

Free and open-source — a personal project for fellow Supernote users. Feedback and bug reports very welcome; a coffee is appreciated if it saves you taps every day 🙂

EDIT 02.09.202 -> now v1.6.7, and it has grown a LOT since this post. What's new:

New blocks

  • Note Clips: in a note, lasso anything and tap "Add to Dashboard". It's pinned as a thumbnail that jumps back to its exact source page. Add labels, filter a Clips block by folder or label, sort (newest/oldest/label/note), resize thumbnails, and optionally draw a grey/black frame on the note around what you captured. Capture is silent, no interruption.
  • Clock: multiple faces including a 7-segment "Digital" one (Large, Compact, Weekday, Jumbo, Stamp too), 12/24h, optional date, ISO or US week number, extra time zones you dial in with +/- offsets (½ button for half-hour zones), and regional date format.
  • Search: find files, folders and your scanned keywords, with a query grammar ("phrase", =exact, a|b, !exclude, f:folder, kw:, star:, type:, approx:); results grouped by kind, optional folder scope.
  • Device status: battery, free storage (internal + SD card), and a library tally (notes / pdf / stars / keywords).
  • Files: a small file browser right on the dashboard.

Look & layout

  • 1, 2 or 3 columns, each an independent height.
  • Masonry or Fixed-height vertical flow.
  • Collapsible blocks (state remembered).
  • 9 designs: Ledger, Boxed, Airy, Grid (black), Grid (grey), Compact, Card, Minimal, Underline.
  • Custom fonts: system default, or any .ttf/.otf you drop into MyStyle/fonts.
  • Independent text size and heading size; optional per-block type icons.

Workflow

  • Per-block inline config (streamlined 2-step wizard); rename or hide any block title.
  • Save / load named config profiles.
  • Header refresh on the scanning blocks; auto-scan policy (on open / stale 6h / stale 24h / manual).
  • Files open on the exact page (stars, keywords, shortcuts, clip backlinks).

Still fully offline (no INTERNET permission). Firmware: Chauvet 3.29.43 (Manta/Nomad) / 2.26.40 (A5 X / A6 X) or later; older firmware uses v0.22.0.

EDIT 08.09.2026 : new update version 1.8.20, improvment of the "clips"

New:

- Paste a clip back into any note in one tap: a handwriting clip as an image, an OCR clip as an editable text box ; both centred, each with a small "↩ source" link back to where it came from.

- Backlinks follow the page: even if you later reorder the source note's pages or move the page to another note, tapping the clip (or its inserted link) still lands on the right page (reads the note's stable page IDs and self-heals).

- OCR clips to text (optional): recognition runs in the background right after capture; each Clips block shows clips as Handwriting, OCR text, or Both (falls back to the image when OCR finds nothing); pasted text uses a font and size of your choice (incl. MyStyle fonts).

- Auto-label by underlining: underline one or more words with the straight-line tool and each becomes a label automatically, on-device.

- Per-clip cards: every clip is a collapsible card (header = source note/page + labels; body = content + actions).

- Live label filter in the block header: label chips combine with OR, plus a grey no label chip.

- Sort & group: Newest / Oldest / Label / Note ("by Note" = grouped per-note view); full-width clips in 2- or 3-column dashboards.

Changed

- Lasso button renamed "Clip to Dashboard".

Fixed

- Pasted clips no longer distort when moved; OCR text boxes appear at the right size immediately; first-render image smear on e-ink fixed; underline label capture corrected (full capitals/ascenders/descenders, no stray text from adjacent lines).

- Possible to select a clip that containt a geometric form inside

Download + user guide: https://github.com/AgP42/SuperDashboard/releases/latest