AI prompts
base on A Notepad-like simple text editor where files are saved (and later loaded) encrypted with AES-256. # Encrypted Notepad II
This is a spiritual successor to the "Encrypted Notepad" app [previously developed on SourceForge](https://sourceforge.net/projects/enotes/) by the same author. The goal is still the same: *"Encrypted Notepad II" does only one thing, but aims to do it perfectly - a Notepad-like simple text editor where files are saved (and later loaded) encrypted with industrial strength algorithms*. No ads, no network connection required, no bloat, just run it. If you know how to use the Windows Notepad app, you know how to use this app. It's a Notepad clone where the file format is PGP's symmetrically encrypted ASCII-armoured (`.asc`) data.
![Screenshot](screenshot.png)
This app works on old-fashioned files - not internal databases, not proprietary storage, not even SQLite. There's nothing to import or export. Each document is its own file, saved in the encrypted OpenPGP ASCII-armoured format. That's it.
# Current Status
Alpha version 0.3 - major features are done (de/encryption is complete), but there's space for improvement, especially in UX.
# An Experiment in Sustainable Open Source
*Note from the author*
I am an Open Source veteran. I've put my code out there since before GitHub existed, and you can see my (early and embarrasing) work on SourceForge. All this time, I did it because I made something I want to share with the world, without expecting anything in return. But that isn't really sustainable. Software needs to be maintained. Bitrot is real. Operating systems get updated and move on, and once published, apps might not even run in a decade. That's what's happened with the original Encrypted Notepad.
Encrypted Notepad II is my experiment in combining Open Source with a business model. The source code in its entirety is on GitHub, but the binaries are not. If you want to build them yourself, you are welcome to. If Linux distro maintainers want to include it, they are also welcome to. But if you want to download binaries for Windows, Android, or even Linux (and possibly MacOS and IOS too) - I'm going to charge for that. Not as a subscription, but as a one-time payment with a lifetime of upgrades.
# Downloading Encrypted Notepad II
[Here is a link where you can buy binaries and priority support for Encrypted Notepad II](https://payhip.com/b/q9s7S). By buying this product you support its future development, and get this in return:
* Windows, Linux, and Android versions of the software (OS X and iOS will be provided if there's enough interest)
* Lifetimes of updates for those binaries, for a single payment
* Priority support for any issues.
This is an open source app developed on GitHub. What you are buying here are the binaries and priority support. If you know how to, you can always build your own binaries from source.
# Building Encrypted Notepad II
You will need Go 1.22+ installed. After cloning the repo, run:
```
go build
```
and run:
```
./EncryptedNotepad2
```
## Note: Linux dependancies
For Linux builds, you'll also need the following packages installed before building:
* `xorg-dev`
# Encryption
The files are encrypted using AES-256 and stored in the PGP/OpenPGP `.asc` format, that is interoperable with any other tool using the same standard. The OpenPGP and general crypto libraries used are:
* [ProtonMail's libraries](https://github.com/ProtonMail)
* [CloudFlare's circl](https://github.com/cloudflare/circl)
* [Golang's x/crypto](https://golang.org/x/crypto)
Feel free to inspect `go.mod` for details.
# F.A.Q.
## Will you support other encryption algorithms?
No. Really, there's no need to. Either you trust AES, and in that case this is what you want, or you don't, in which case you most likely don't need this tool.
## Will you support more file formats (other than OpenPGP ASCII-armoured messages)?
Maybe - depends if there's a good use case and enough people want it.
## What is the actual cipher mode of AES-256 used in Encrypted Notepad II?
When saving in OpenPGP's message format (the `.asc`) files, the mode is dictated by the OpenPGP spec. It is [OCFB-MDC](https://web.archive.org/web/20231230093732/https://articles.59.ca/doku.php?id=pgpfan:mdc). It is an AEAD mode, providing tamper protection as well as encryption.
## Why is the UI clunky / strange / not native?
It's because of Fyne... but it's getting better all the time.
## Why is the executable / package so big, compared to the old version?
Encrypted Notepad II is written in Go, and that means it's mostly statically compiled on all platforms. It uses the [Fyne](https://github.com/fyne-io/fyne) UI toolkit, and that means it uses almost no operating system-provided UI facilities on any platform. The flip side of that is that everything needs to be built-in into the single executable, making it bigger than expected for such a compact app.
The old version was written in Java, and that means it required a JRE to run. In that light, the new version is actually lighter-weight.
", Assign "at most 3 tags" to the expected json: {"id":"10587","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"