<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: sys-ronin</title>
    <description>The latest articles on DEV Community by sys-ronin (@sysronin).</description>
    <link>https://dev.to/sysronin</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3976523%2F60e91662-5731-4957-b374-9d4841750a7d.png</url>
      <title>DEV Community: sys-ronin</title>
      <link>https://dev.to/sysronin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sysronin"/>
    <language>en</language>
    <item>
      <title>A python terminal writer with git, github e2ee sync, hardware bound keys and temporal search</title>
      <dc:creator>sys-ronin</dc:creator>
      <pubDate>Tue, 09 Jun 2026 19:59:23 +0000</pubDate>
      <link>https://dev.to/sysronin/a-python-terminal-writer-with-git-github-e2ee-sync-hardware-bound-keys-and-temporalsearch-po6</link>
      <guid>https://dev.to/sysronin/a-python-terminal-writer-with-git-github-e2ee-sync-hardware-bound-keys-and-temporalsearch-po6</guid>
      <description>&lt;h1&gt;
  
  
  📓 Terminal Notes
&lt;/h1&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/sys-ronin" rel="noopener noreferrer"&gt;
        sys-ronin
      &lt;/a&gt; / &lt;a href="https://github.com/sys-ronin/terminal-notes" rel="noopener noreferrer"&gt;
        terminal-notes
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Terminal notes - Git, encryption, free E2EE sync, cognitive UI
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;📓 Terminal Notes&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Encrypted terminal-based writing system with Git temporal history, powerful search, GDPR erase and zero-trust decoupled architecture.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;text-based screenshots&lt;/em&gt;&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;
                                 Root Notebooks                                 

No notebooks yet.

Create your first notebook to get started!

or

Press [M] to import existing from remote

[C]reate  [M]anage  [Q]uit

&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;
&lt;pre class="notranslate"&gt;&lt;code&gt;
                            Create / Import Notebook
1. Default location (notebooks_root/)
   → Quick creation in app's default directory

2. External location (USB/Network drive) 🔒 MORE SECURE
   → Choose any folder on your system
   → Perfect for encrypted notebooks on USB drives
   → Easy to backup, sync with cloud, or store on encrypted drive

3. Import existing notebook
   → Load an existing Terminal Notes notebook from local path
   → Must contain structure.json and Git history

4. Import from Git URL
   → Clone and import a notebook from GitHub/GitLab/Bitbucket
   → Enter repository URL (must end with .git)
   → Will prompt for account credentials if needed


Choose [1-4] or Enter to&lt;/code&gt;&lt;/pre&gt;…&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/sys-ronin/terminal-notes" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;Encrypted terminal-based writing system with Git temporal history, powerful search, GDPR erase and zero-trust decoupled architecture.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;text-based screenshots&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
                                 Root Notebooks                                 

No notebooks yet.

Create your first notebook to get started!

or

Press [M] to import existing from remote

[C]reate  [M]anage  [Q]uit

&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
                            Create / Import Notebook                            

1. Default location (notebooks_root/)
   → Quick creation in app's default directory

2. External location (USB/Network drive) 🔒 MORE SECURE
   → Choose any folder on your system
   → Perfect for encrypted notebooks on USB drives
   → Easy to backup, sync with cloud, or store on encrypted drive

3. Import existing notebook
   → Load an existing Terminal Notes notebook from local path
   → Must contain structure.json and Git history

4. Import from Git URL
   → Clone and import a notebook from GitHub/GitLab/Bitbucket
   → Enter repository URL (must end with .git)
   → Will prompt for account credentials if needed


Choose [1-4] or Enter to cancel: 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
────────────────────────────────────────────────────────────
  YOUR RECOVERY PHRASE
────────────────────────────────────────────────────────────

  abstract asset offer fiber attend earth reopen walnut

  Store this phrase safely!

  • Write it down on paper
  • Save it in a password manager
  • Take a photo (store securely)

  [Y] Yes, I've saved it  [C] Copy to clipboard

  &amp;gt; y

  Press Enter when you have written it down.


  Notebook created successfully!
   Name: aa
   Folder: aa-20262609002928
   Location: /home/user/terminal-notes/notebooks_root/aa-20262609002928
   🔐 Encrypted with password + recovery phrase
   Recovery phrase saved - store it safely!

Press Enter to continue...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
                         user-name@github.com Notebooks                         

[1] 🔒 project-alpha [Private]
[2] 🔒 aa [Public]

[I]mport  [R]efresh  [B]ack  [Q]uit

&amp;gt; i1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
                                 Root Notebooks                                 

[1] 🔒 aa
[2] 🔐 terminal-notes (10 notes, 7 files, 1 sub)

[C]reate  [V]iew  [S]earch  [D]elete  [L]ock  [M]anage  [Q]uit

&amp;gt; l1

  ❌ Vault file not found: /home/user/terminal-notes/config/session.vault
     This notebook uses the default vault.
     This notebook requires the vault file to unlock.
     Please insert the USB drive or locate the vault file.

  Options:
    1) Retry (I've inserted the USB drive)
    2) Locate vault file manually
    3) Use recovery phrase (will create new vault)
    4) Cancel

  Choose [1-4]:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
     .../[1]depth05/[2]depth06/[3]depth07/[4]depth08/[5]depth09/[6]depth10/     

Notes &amp;amp; Files: (2 notes, 4 files)
[1] regular_internal_note                               [Updated: Jun 08 19:28]
[2] regular_external_note                               [Updated: Jun 08 19:28]
[3] index.html                                          [Updated: Jun 08 19:29]
[4] Dockerfile                                          [Updated: Jun 08 20:05]
[5] research.tex                                        [Updated: Jun 08 20:05]
[6] .bashrc                                             [Updated: Jun 08 20:06]

Sub-notebook: (1 sub)
[7] View Sub-notebook =&amp;gt;

[C]reate  [V]iew  [D]elete  [A]ctivity  [B]ack  [J]ump  [Q]uit

&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
                               [1]terminal-notes/                               

File Name: new_post.md [.md file]
Created: Jun 04  Updated: Jun 06 11:42

Show HN: A terminal writing environment with git, e2ee sync and temporal
search

I am a 40 years old jobless sys-admin with no cs degree and no development
experience and 25 yeras of system knowledge. I built a fully encrypted
writing environment where I can write with focus forgetting about the
application. Here ai was my code translator while I strictly was the
architect and instructor. It all started when i asked myself that "why and
how i remember any past memory instantly without searching inside my head".
This became the design principle of my app. Thus I solved a fundamental git
problem of tracking a single note throughout the history by embedding uuid
in every commit.

                                  Page 1 of 7    &amp;gt;&amp;gt;                             

[E]dit  [V]iew  [X]port  [T]imeline  [R]ename  [B]ack  [N]ext  [Q]uit

&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
                         Activity: aa and subnotebooks                          

[1] erased file: scipt.sh                                                [root]
[2] renamed note: regular_internal_note → regul...        [.../depth09/depth10]
[3] updated file: index.html 65(+) 3(-)                   [.../depth09/depth10]
[4] updated file: index.html 5(+) 5(-)                    [.../depth09/depth10]
[5] restored note: regular_internal_note                  [.../depth09/depth10]
[6] deleted note: regular_internal_note                   [.../depth09/depth10]
[7] erased note: regular_external_note                    [.../depth09/depth10]
[8] updated note: regular_internal_note 6(+) 0(-)         [.../depth09/depth10]
[9] created sub: depth11                                  [.../depth10/depth11]
[10] created file: .bashrc 178(+)                                        [root]
[11] created file: research.tex 62(+)                                    [root]
[12] created file: Dockerfile 255(+)                                     [root]
[13] created file: index.html 94(+)                       [.../depth09/depth10]
[14] created note: ff 3(+)                                               [root]
[15] created note: a 1(+)                                                [root]

                                  Page 1 of 2    &amp;gt;&amp;gt;                             

[V]iew  [B]ack  [N]ext  [Q]uit

&amp;gt;  
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
                              Timeline: 4 versions                              

[1] 2026-06-09 00:13 [RENAMED] regular_internal_note  → regular_internal_...
[2] 2026-06-09 00:09 [RESTORED]
[3] 2026-06-09 00:09 [DELETED]
[4] 2026-06-09 00:06 [UPDATED] 6(+) 0(-)

[V]iew  [B]ack

&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
                                 Notebook: 🔐 aa                                 

Type: 🔐 Encrypted (unlocked)
Path: /home/user/terminal-notes/notebooks_root/aa-20262607180201

Account: user-name@github
Repository: aa-20262607180201
Visibility: 🔒 PRIVATE
Last modified: Jun 07, 2026 20:46

Vault: default

Notes: 4
Files: 0
Subnotebooks: 0

[V]isibility  [S]ync  [D]elete  [C]hange  [A]ctivity  [B]ack  [Q]uit

&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
                              Change Options - aa                               


  [1] Change password
  [2] Change Autolock status
  [3] Change remote location
  [4] Change trusted device status
  [5] Change vault location

  Press Enter to cancel

  Choose:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;꘎ SECURELY ERASING ENTIRE NOTEBOOK: aa
  This will DELETE ALL COMMITS and remove the folder permanently!

  Repository: /home/user/terminal-notes/notebooks_root/aa-20262607180201

  Enter notebook password to confirm erasure (3 attempts):
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📦 1. Requirements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python 3.13&lt;/strong&gt; (any version for installed cffi and cryptography)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Git&lt;/strong&gt; (for history, timeline, restoration)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No pip install needed&lt;/strong&gt; (cryptography is bundled in &lt;code&gt;assets/&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;nvim / micro&lt;/strong&gt; (configurable via config.json)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Linux / Windows / Mac&lt;/strong&gt; (designed to run on any OS)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;(tested only on Debian Linux 13)&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 2. Executables
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;terminal_notes_ui.py&lt;/code&gt; - Main notebook app — encrypted notes, search, Git timeline, restore&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run from project folder:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 terminal_notes_ui.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/sys-ronin/terminal-notes.git
&lt;span class="nb"&gt;cd &lt;/span&gt;terminal-notes
&lt;span class="nb"&gt;chmod &lt;/span&gt;700 terminal_notes_ui.py
./terminal_notes_ui.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;single command&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/sys-ronin/terminal-notes.git &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd &lt;/span&gt;terminal-notes &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; python3 terminal_notes_ui.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🔍 3. Search (from main app)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s query&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search current notebook&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s g* query&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search &lt;strong&gt;all&lt;/strong&gt; notebooks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s created*&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show all created notes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s deleted*&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show deleted notes (restorable)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s in* notebookname&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search inside a specific notebook&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s date* 15-05-2026&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Filter by exact date&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s today*&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Today’s changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s thisweek*&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;This week’s activity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s created* file* in* projects&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Created files inside the "projects" notebook&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;💡 Tips:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;j1&lt;/code&gt;, &lt;code&gt;j2&lt;/code&gt;, &lt;code&gt;jb&lt;/code&gt; → jump between notebooks&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;l&lt;/code&gt; → lock / unlock encrypted notebooks&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;b&lt;/code&gt; → back&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;q&lt;/code&gt; → quit&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;s&lt;/code&gt; → search&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;The entire GitHub repository with all its source code and documentation are explicitly part of the prior art (Public + timestamped + enabling)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A fact – my app itself has no name printed except on documents, like an app with no name. I could not find a place to put it and it is not needed inside the environment.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;&lt;code&gt;The rest is explained in documentations&lt;/code&gt;&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;email : sys_ronin@protonmail.com&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Write without friction inside the best possible environment - The Terminal&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sys-ronin&lt;/code&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>git</category>
      <category>discuss</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
