
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
notekeeper
Advanced tools
This is a simple Node.js utility for making notes.
Warning: this software is discontinued. It works, but the author decided to use some ideas from here in the new app Knowkeep. The main reason is the name "Notekeeper", it's not unique and was used just for proof-of-concept.
sudo npm i -g notekeeper
I recommend to make an alias for a command
notekeeperwhich bootstraps the utility.
On the first run Notekeeper creates in your Home Directory a folder notekeeper containing next files:
config.json stores paths and settingstemplate_base.txt stores a markup for database records'template_interface.txt stores a markup for the Interfacetemplate_tree.txt stores a markup for the Tree-viewThen Notekeeper will ask 3 questions:
It's ok to skip all answers to use default settings (base.note, new_note.note, subl).
Attention!
The default shell command
subldoes not work on Windows! An example of a working shell command for Windows:start "" "c:\\Program Files\\Sublime Text 3\\sublime_text.exe"
Notekeeper was well tested with Sublime Text 3, Atom, VS Code on Linux.
It should work with any text editor which can be executed by a shell command <editor> <filepath>.
Your text editor must support hot reloading of externally edited files.
Notekeeper uses a extension .note for Base files and the Interface file. The syntax of these files may be highlited in your text editor:
D syntax.notekeeper-syntax specially written for VS Code uses JS-React syntax highlighting..
ctrl+S (Command+S). Notekeeper will detect the change of the Interface file, parse your note and push it to the Database. If you don't want to save the current Note to the Database just leave the Commands field empty. If you specify a name for your note, you will be able to edit it later..
The default interface looks like this:
================================== name ======================================
================================== tags ======================================
================================ commands ====================================
add
========================== tags used previously ==============================
tag
The first line is intended for the text of your new Note.
================================== name ====================================== is a delimeter important for the interface. Don't edit delimeters during the runtime. Otherwise, the Interface can not be parsed by Notekeeper and a warning appears.
A Line under the "name" delimeter is a field to enter the name of your Note. It's not required but makes it possible to edit and delete notes later using a name as an identifier. Names must be unique. It's a single-line field.
The "tags" field may be used to add a list of tags (or marks, categories, parents...) to your new note. Tags are not required. It's a single-line field.
The "commands" field accepts commands for Notekeeper. There also messages appear. A command is a single-line field. Other lines are ignored.
The Tags parsed from Database will be shown it the last field. Their goal is to make Tags reusing more handy with the autocomplete function provided by your Text editor). This is not an input field and is not readed by Notekeeper.
.
add -- save the current note to the basemul -- add multiple comma-separated records to the base (example: mul a, b,c). The unique names will be added to the Base and non-unique ones will be offered to adoption.mix -- concat the record from the base and the new record with the same name. It adds only unique information during a concatenation process.get -- load a record by a name (example: load info)last -- load the last added/edited recordedit -- edit a record by a namedel -- delete a record by a nameren -- rename a recordadopt -- add new parents to records enlisted in the commang arguments (example: adopt rec1, rec2, rec3)clr -- clear all fields of the Interfacetree -- show the base or a record in a tree-view structureload -- load/reload base to work with (example: load js)exit -- close the program.
You may change a view of the Notekeeper's Interface. It's stored in template_interface.txt. The fields are marked by tags like this: <m>...<text>. A tag consists of 3 parts:
m means a multi-line field.add.There must be at least one any symbol between the tags. This template will not be parsed correctly: <><text><><tags>.
Here is an example of minimalistic template for the Interface:
<m><text>
=========================== name, tags, commands ===========================
<><name>
<><tags>
<m>add<command>
=========================== tags used previously ===========================
<>tag<tags_used>
FAQs
A simple cross-platform utility for making notes
We found that notekeeper demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.