@adrianmg/noted 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2026 Adrian Mato <yensamg@github.com>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,106 @@
1
- # Temporary Holding Version
1
+ <p align="center">
2
+ <h1 align="center">
3
+ <img src="https://raw.githubusercontent.com/adrianmg/noted/main/docs/logo.png" alt="noted's logo: a floppy disk" width="128">
4
+ <br>
5
+ noted
6
+ </h1>
7
+ <p align="center">Markdown notes in your terminal, as if they ran on MS-DOS.<br>Opens instantly, saves as you type, keeps every note as a plain Markdown file.</p>
8
+ <p align="center">
9
+ <a href="https://www.npmjs.com/package/@adrianmg/noted"><img src="https://img.shields.io/npm/v/%40adrianmg%2Fnoted?label=npm&color=0000aa" alt="npm version" height="18"></a>
10
+ <a href="https://github.com/adrianmg/noted/releases"><img src="https://img.shields.io/github/v/release/adrianmg/noted?label=release&color=00aaaa" alt="Latest release" height="18"></a>
11
+ <a href="https://noted.computer"><img src="https://img.shields.io/badge/website-noted.computer-ffff55" alt="Website: noted.computer" height="18"></a>
12
+ </p>
13
+ </p>
2
14
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
15
+ <p align="center">
16
+ <br>
17
+ <img src="https://raw.githubusercontent.com/adrianmg/noted/main/docs/demo.gif" alt="noted starting from the shell: a new note with a task list, ticking a task, the notes list, finding a note as you type, then the Amber theme" width="720">
18
+ <br>
19
+ </p>
20
+
21
+ ## Installation
22
+
23
+ ```sh
24
+ # npm: macOS, Linux and Windows (Node 18 or newer)
25
+ npm install -g @adrianmg/noted
26
+
27
+ # Homebrew: macOS and Linux
28
+ brew tap adrianmg/noted https://github.com/adrianmg/noted
29
+ brew trust adrianmg/noted
30
+ brew install noted
31
+
32
+ # Install script: checks the build against the release's checksums
33
+ curl -fsSL https://noted.computer/install | sh # macOS, Linux
34
+ irm https://noted.computer/install.ps1 | iex # Windows, in PowerShell
35
+ ```
36
+
37
+ ## Usage
38
+
39
+ ```sh
40
+ noted # a new note, cursor ready
41
+ noted buy oat milk # a new note that starts with those words
42
+ noted --theme amber # turbo, amber, phosphor, charcoal, lime, midnight,
43
+ # catppuccin, dracula, gruvbox, rosepine, synthwave
44
+ noted --dir ~/Notes # keep notes in another folder this time
45
+ noted --path # print where your notes are
46
+ noted --help # every option
47
+ ```
48
+
49
+ ## What it does
50
+
51
+ noted opens on a new note in about 2.5 ms and saves as you type, so there's
52
+ no save button and nothing to lose. Each note is a plain Markdown file named
53
+ after its first line, in a `Noted` folder in iCloud Drive when it's on, or
54
+ else in Documents, where any editor can open it: `noted --path` prints where,
55
+ and Noted ▸ Notes folder… moves them elsewhere. Markdown is lit as you type,
56
+ finding searches every note as you type, and it all looks like MS-DOS:
57
+ pull-down menus, Norton Commander panes and eleven themes. It runs on macOS,
58
+ Linux and Windows, in any terminal.
59
+
60
+ ## Keys
61
+
62
+ | Key | |
63
+ |---|---|
64
+ | `ESC` | Notes list, and back |
65
+ | `⌘F` or `^F` | Find a note, or create one |
66
+ | `^N` | New note |
67
+ | `^T` | Make a task, tick it |
68
+ | `^G` | Insert a table |
69
+ | `^D` | Delete the note (to the Trash; `^Z` puts it back) |
70
+ | `F10` | Menus |
71
+ | `F1` | Every key |
72
+ | `^Q` | Exit |
73
+
74
+ On a PC, read `⌘` as `^` and `⌥` as `ALT`.
75
+
76
+ ## Updating
77
+
78
+ ```sh
79
+ npm install -g @adrianmg/noted # npm
80
+ brew upgrade noted # Homebrew
81
+ ```
82
+
83
+ With the install scripts, run them again.
84
+
85
+ ## Why?
86
+
87
+ A thought is gone in seconds, and most notes apps take longer than that to
88
+ open. noted is a terminal away, ready before you finish pressing Enter, and
89
+ leaves you nothing but plain files in a folder you own.
90
+
91
+ Do you want to know more? [Visit noted.computer](https://noted.computer),
92
+ with a live demo and the User's Guide.
93
+
94
+ ## Questions? Ideas? Bugs?
95
+
96
+ [Open an issue](https://github.com/adrianmg/noted/issues) or hit me
97
+ up on [Twitter](https://twitter.com/adrianmg).
98
+
99
+ This repository holds noted's releases, its Homebrew formula and this README;
100
+ the npm package, [@adrianmg/noted](https://www.npmjs.com/package/@adrianmg/noted),
101
+ ships the same builds.
102
+
103
+ ## License
104
+
105
+ Made by [Adrián Mato](https://adrianmato.com). Available under the terms of
106
+ the [MIT License](https://github.com/adrianmg/noted/blob/main/LICENSE).
package/bin/noted ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+ // `noted` as npm first links it: a stand-in that starts this system's build with the same arguments, terminal
4
+ // and exit status. On macOS and Linux, install.js then puts the build itself here, so nothing stands between
5
+ // the shell and noted as it starts. This runs on Windows, and where install scripts are turned off.
6
+
7
+ const fs = require('fs');
8
+ const { spawnSync } = require('child_process');
9
+
10
+ let exe;
11
+ try {
12
+ exe = require('../builds.js').build();
13
+ } catch (e) {
14
+ console.error('noted: ' + e.message);
15
+ process.exit(1);
16
+ }
17
+ if (process.platform !== 'win32') {
18
+ // A package manager may unpack the build without its execute bit.
19
+ try { fs.accessSync(exe, fs.constants.X_OK); } catch (e) { try { fs.chmodSync(exe, 0o755); } catch (e2) { /* reported below */ } }
20
+ }
21
+ const run = spawnSync(exe, process.argv.slice(2), { stdio: 'inherit' });
22
+ if (run.error) {
23
+ console.error('noted: ' + run.error.message);
24
+ process.exit(1);
25
+ }
26
+ if (run.signal) process.kill(process.pid, run.signal);
27
+ process.exit(run.status === null ? 1 : run.status);
package/builds.js ADDED
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+ // Which of the package's builds runs on this system. pack.mjs puts them in vendor/, from the release's files.
3
+
4
+ const path = require('path');
5
+
6
+ const BUILDS = {
7
+ 'darwin arm64': 'darwin/noted', // one binary for Apple silicon and Intel
8
+ 'darwin x64': 'darwin/noted',
9
+ 'linux x64': 'linux-x64/noted', // static: any distribution
10
+ 'linux arm64': 'linux-arm64/noted',
11
+ 'win32 x64': 'win32-x64/noted.exe',
12
+ 'win32 arm64': 'win32-x64/noted.exe', // Windows on Arm runs it emulated
13
+ };
14
+
15
+ exports.build = function build() {
16
+ const file = BUILDS[process.platform + ' ' + process.arch];
17
+ if (!file) throw new Error('no build for ' + process.platform + ' on ' + process.arch + ' yet: https://noted.computer');
18
+ return path.join(__dirname, 'vendor', file);
19
+ };
package/install.js ADDED
@@ -0,0 +1,37 @@
1
+ 'use strict';
2
+ // After npm links `noted` to bin/noted (a Node stand-in), on macOS and Linux this puts this system's build in
3
+ // its place: the link then starts noted itself, in a couple of milliseconds, with no Node in between.
4
+ //
5
+ // Only under npm, which links bin/noted as it is. Other package managers may write a shim that runs it with
6
+ // node, which a native file would break; on Windows, npm's .cmd shim does. There the stand-in stays, and it
7
+ // works. Anything going wrong here leaves the stand-in too: an install never fails for this.
8
+
9
+ const fs = require('fs');
10
+ const path = require('path');
11
+
12
+ function main() {
13
+ if (process.platform === 'win32') return;
14
+ if (!/^npm\//.test(process.env.npm_config_user_agent || '')) return;
15
+ let build;
16
+ try {
17
+ build = require('./builds.js').build();
18
+ fs.accessSync(build);
19
+ } catch (e) {
20
+ return;
21
+ }
22
+ const bin = path.join(__dirname, 'bin', 'noted');
23
+ const tmp = bin + '.' + process.pid;
24
+ try {
25
+ // A hard link takes no more room; where there can't be one, a copy.
26
+ try { fs.linkSync(build, tmp); } catch (e) { fs.copyFileSync(build, tmp); }
27
+ fs.chmodSync(tmp, 0o755);
28
+ // Atomic: bin/noted is always one or the other. Run again, it may already be this very file, and
29
+ // rename() leaves both names: the spare one goes.
30
+ fs.renameSync(tmp, bin);
31
+ } catch (e) {
32
+ // The stand-in stays.
33
+ }
34
+ try { fs.unlinkSync(tmp); } catch (e) { /* gone, as it should be */ }
35
+ }
36
+
37
+ main();
package/package.json CHANGED
@@ -1,6 +1,54 @@
1
1
  {
2
2
  "name": "@adrianmg/noted",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.0.0",
4
+ "description": "Markdown notes in your terminal, as if they ran on MS-DOS: opens instantly, saves as you type, and keeps each note as a plain .md file.",
5
+ "keywords": [
6
+ "notes",
7
+ "markdown",
8
+ "terminal",
9
+ "tui",
10
+ "cli",
11
+ "ms-dos",
12
+ "icloud"
13
+ ],
14
+ "homepage": "https://noted.computer",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/adrianmg/noted.git"
18
+ },
19
+ "bugs": {
20
+ "url": "https://github.com/adrianmg/noted/issues"
21
+ },
22
+ "license": "MIT",
23
+ "author": {
24
+ "name": "Adrián Mato",
25
+ "url": "https://adrianmato.com"
26
+ },
27
+ "bin": {
28
+ "noted": "bin/noted"
29
+ },
30
+ "scripts": {
31
+ "postinstall": "node install.js"
32
+ },
33
+ "files": [
34
+ "bin/",
35
+ "vendor/",
36
+ "builds.js",
37
+ "install.js"
38
+ ],
39
+ "os": [
40
+ "darwin",
41
+ "linux",
42
+ "win32"
43
+ ],
44
+ "cpu": [
45
+ "x64",
46
+ "arm64"
47
+ ],
48
+ "engines": {
49
+ "node": ">=18"
50
+ },
51
+ "publishConfig": {
52
+ "access": "public"
53
+ }
54
+ }
Binary file
Binary file
Binary file
Binary file