Skip to content
End-to-end encrypted notes application
JavaScript Common Lisp HTML CSS Objective-C C++ Other
Branch: master
Clone or download
litchie Fix file input not working in osx
Also remove commented code.
Latest commit acfc945 Feb 20, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
site-lisp First check in: add web app Jan 30, 2020
src Fix file input not working in osx Feb 20, 2020
web Add android app Feb 5, 2020
.gitignore Add android app Feb 5, 2020
LICENSE First check in: add web app Jan 30, 2020 Update readme Feb 5, 2020 Fix file input not working in osx Feb 20, 2020

Twinkle Notes

Twinkle Notes is a privacy-first personal knowledge base with end-to-end encrypted syncing. Notes are stored in encrypted sqlite3 files (SQLCipher). For further information, see

We decide to open source the app because we believe

  • You should trust code only when data privacy matters;
  • Security bugs are easier to find when code is published.


Twinkle Notes can be developed with any text editor, and then test and debug it inside browser as a web app. To run twinkle notes as a standalone app server, first make sure you have both twinkle-lisp and twinkle-notes checked out under the same directory. Then

cd twinkle-notes
ln -s ../twinkle-lisp/lisp .
../twinkle-lisp/twk launch control --port ,6782

Now you can use twinkle notes as a webapp from browser

The "backend" is implemented inside directory site-lisp, and "frontend" in web. They are the core of the app, and where the majority of our time is spent.


Twinkle Notes app server can be embedded within an application, which only includes a webview to display app UI. On Android/iOS/Mac, we use system provided webview to minimize memory footprint; On windows/linux, we have no choice but to use chromium embedded framework.

See src/** for platform specific implementations.


Unless specified individually or originated from other projects, files from this project are released under AGPL license (See LICENSE).

You can’t perform that action at this time.