1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
Table of Contents
_________________
1. Stitch - Note Composer
.. 1. FEATURES
.. 2. SCREENSHOTS
.. 3. CREDIT
.. 4. USAGE
.. 5. INSTALLATION
.. 6. DEVELOPMENT
.. 7. ROADMAP
2. COMMUNITY & CONTRIBUTING
3. KNOWN ISSUES
4. Author
1 Stitch - Note Composer
========================
"...Differing from Newton and Schopenhauer, your ancestor
did not think of time as absolute and uniform. He believed
in an infinite series of times, in a dizzily growing, ever
spreading network of diverging, converging and parallel
times. This web of time - the strands of which approach
one another, bifurcate, intersect or ignore each other
through the centuries - embraces every possibility. We do
not exist in most of them. In some you exist and not I,
while in others I do, and you do not, and in yet others
both of us exist."
- Garden of Forking Paths, Borges
Stitch is a minimal grep-based CLI tool for composing and viewing
notes and TODO notes. It is built around the idea of writing notes
separately and then using tags to compose these notes together.
Stitch does not have any opinion about which file format you use for
file capturing: use org, markdown, whatever you want. You can also
customize the grep command to speed up performance. Stitch only
requires that each note is contained to one file.
Stitch does not come with a capture system for notes, but it makes
it easy for you to set up your own system in with your preferred
editor. There is a basic example included in the manpages.
1.1 FEATURES
~~~~~~~~~~~~
- Write your thoughs first, and organize later and read in multiple
different ways
- Work with any file format, markdown, ruby markup, org etc.
- Run CLI commands on files (sed, grep etc.) with the command mode
- Write notes in any editor: vim, kakoune... or even ed!
- Available as a single static binary
- No need for any DB, just files
- Unix-y & fast
1.2 SCREENSHOTS
~~~~~~~~~~~~
- Notes Overview + Search
https://blobs.mccd.space/stitch/notes-view.png
- TODO View
https://blobs.mccd.space/stitch/todo-view.png
- Done View (+ Example of a command)
https://blobs.mccd.space/stitch/done-view-commands.png
- Full-Notes View
https://blobs.mccd.space/stitch/full-notes-view.png
1.3 CREDIT
~~~~~~~~~~
Stitch is based on the note composing system Howm for Emacs.
1.4 USAGE
~~~~~~~~~
Run `stitch --help' or `man stitch' for explanation and how to get
started
1.5 INSTALLATION
~~~~~~~~~~~~~~~~
You can find all static releases tagged under
https://git.mccd.space/pub/stitch/refs/
Obs, the download link next to the tag is for the snapshot, you will have
to open the link of the tag to find the download to the binary.
Download the binary, chmod +x the binary and put in PATH.
At minimum, you will need to set the environment variable
STITCH_DIRECTORY for it to work.
1.6 DEVELOPMENT
~~~~~~~~~~~~~~~
To set up the project for local development, easiest way is to
just install Nix, direnv and enable nix flakes. Then to compile:
dune build
Optimized build with
dune build --profile release
And to run:
dune exec -- stitch
To generate man pages, run
dune exec -- stitch --help=groff
When the system is built with Nix, it will be dynamically linked.
To build a static release, There is a Dockerfile included that
compiles it with musl, use it with podman:
podman pull docker.io/alpine:edge
podman build . -t stitch:latest
mkdir release
podman run -v ./release:/tmp/build/_build:U stitch:latest
Binary will be found in ./release/install/default/bin/stitch and
manpages in ./release/install/default/man/man1/stitch.1
1.7 ROADMAP
~~~~~~~~~~~
- Support sort
- Support tagging commands
- Support command piping and hotkeys
- Line wrapping
- Support URL shortening.
- Better result narrowing
2 COMMUNITY & CONTRIBUTING
==========================
Patches, discussions, bug reports etc. can be sent to
~marcc/stitch-general@lists.sr.ht.
Feel free to share your setup, tips, and tricks etc.
Archives can be found at
https://lists.sr.ht/~marcc/stitch-general
3 KNOWN ISSUES
==============
- ugrep doesn't correctly handle ordering, meaning that if you sort by
modified date, it doesn't behave correctly. I've waited with
implementing it until I've resolved that issue
- File names can not contain :[0-9]:, since it's used to determine
where the file starts and ends. One solution is to force one
uniform file name that we can regexp (and also tweak). I am not sure
yet what's best.
- The binary file is kinda big, 5mb. I'd love to slim it down.
4 AUTHOR
========
Marc Coquand (<https://mccd.space>)
|