krz/crumb

A local alternative to your browser's history. browser-history cli local-first privacy

Commit 2f2d01c30e

2f2d01c30e92694c291d061bd7ece4236afe30f8

parent: ea22ecdb80

Verified · cmc

cmc <hello@cleberg.net> · 2026-08-31 22:19 UTC

Convert README.nfo to README.org

Layout: unified · split

README.nfo deleted −48
@@ -1,48 +0,0 @@
1┌──────────────────────────────────────────────────────────────┐
2│ C R U M B [ KRZ ] krz.sh │
3└──────────────────────────────────────────────────────────────┘
4
5WHAT
6 local-only browser history tracker. a webextension plugin and a
7 local http server. logs each page you visit to a plaintext org-mode
8 file at ~/.crumb/history.org.
9
10PARTS
11 - browser extension (webextension api, javascript)
12 - local http listener (python + flask)
13 - plaintext log (~/.crumb/history.org)
14
15 on each page load the extension posts page metadata to the local
16 server, which appends it to the log. captured: title, url, utc
17 timestamp, hostname, path, and optionally query string, tab id,
18 window id, favicon url.
19
20REQUIRES
21 python 3.x, flask, a chromium or firefox browser with extension
22 developer mode.
23
24RUN
25 1. start the listener:
26
27 python3 -m venv venv
28 source ./venv/bin/activate
29 pip install -r requirements.txt
30 python server.py
31
32 2. load the extension: enable developer mode, load crumb_extension/.
33 3. browse. entries land in ~/.crumb/history.org.
34 4. search:
35
36 python search.py <term>
37
38LIMITS
39 - extensions can't write files directly; the local server does it.
40 - the log is plaintext, not encrypted. bolt on your own if needed.
41 - data stays local. nothing is sent anywhere.
42
43LICENSE
44 0bsd. see LICENSE.
45
46┌──────────────────────────────────────────────────────────────┐
47│ krz.sh │
48└──────────────────────────────────────────────────────────────┘
README.org added +46
@@ -0,0 +1,46 @@
1#+title: crumb
2
3* what
4local-only browser history tracker. a webextension plugin and a
5local http server. logs each page you visit to a plaintext org-mode
6file at ~/.crumb/history.org.
7
8* parts
9- browser extension (webextension api, javascript)
10- local http listener (python + flask)
11- plaintext log (~/.crumb/history.org)
12
13on each page load the extension posts page metadata to the local
14server, which appends it to the log. captured: title, url, utc
15timestamp, hostname, path, and optionally query string, tab id,
16window id, favicon url.
17
18* requires
19python 3.x, flask, a chromium or firefox browser with extension
20developer mode.
21
22* run
231. start the listener:
24
25#+begin_src sh
26python3 -m venv venv
27source ./venv/bin/activate
28pip install -r requirements.txt
29python server.py
30#+end_src
31
322. load the extension: enable developer mode, load crumb_extension/.
333. browse. entries land in ~/.crumb/history.org.
344. search:
35
36#+begin_src sh
37python search.py <term>
38#+end_src
39
40* limits
41- extensions can't write files directly; the local server does it.
42- the log is plaintext, not encrypted. bolt on your own if needed.
43- data stays local. nothing is sent anywhere.
44
45* license
460bsd. see LICENSE.