monochromium 0.4.3

A fast, local-first CLI note-taking app for developers
Monochrome Co.  
Monochromium  
Technical Specification  
Version 0.1  
August 24, 2026

Overview:

* **Purpose:** Monochromium is a blazing fast mindfulness/productivity app for your terminal, it allows you to take quick notes with a single command, and reminds you to make notes about how your day is going consistently across the day.
* **Goals:**
    * Final binary under 2.5 MB
    * No AI Written Code
* **Status**: Draft

Architecture & Tech Stack:

* **Tech Stack:**
    * Rust
    * Clap
    * LibSQL
* **System Diagram:** User \> CLI Command \> DB

Data Structure:

* **Core Entities:**
    * Note: ID (SQLite ID), Title (String), Type (enum), Date (Date Time), MD Content (String)
* **Storage Strategy:**
    * Local SQLite Instance with Turso

Commands:

* **Mono Intro:** `mono`
    * Description: Base command, shows basic getting started and ASCII logo
    * Notes: Use nice ASCII font with human customization, animated logo optional
    * Flags:
        * `--help / -h`: Show full help after logo
        * `--animate / -a`: Show animated logo into (Like AI CLIs have)
        * `--copy / -c`: Copy output to clipboard once added
    * Output: The logo, small help stuff, all printed to the console
* **Mono Help:** `mono help`
    * Description: Help command, shows all commands and flags
    * Notes: Auto generated by Clap crate
    * Flags: Auto Generated by Clap crate
    * Output: All help commands from dictionary
* **Take Note**: `mono add “text content”`
    * Description: Add a quick note with flexible options
    * Notes: If no text content is provided open configurable text editor (eg: nano, vim, etc)
    * Flags:
        * `--type / -t`: Set the type of note (Check in, Idea, Other, etc)
        * `--time`: Set an alternate time to NOW
        * `--date`: Set an alternate date to NOW
        * `--copy / -c`: Copy note to clipboard once added
        * `--paste / -p`: Set note text content to current copied item
        * `--help / -h`: Show specific command help and usage
    * Output: Basic pretty summary of the note created with its ID, and commands to quick edit it or view it
* **Check In:** `mono checkin “text content”`
    * Description: Create note for check in prompt (most recent check in sets type, time, etc)
    * Notes: If no text content is provided open configurable text editor (eg: nano, vim, etc)
    * Flags:
        * `--time`: Set an alternate time to NOW
        * `--date`: Set an alternate date to NOW
        * `--copy / -c`: Copy note to clipboard once added
        * `--paste / -p`: Set note text content to current copied item
        * `--help / -h`: Show specific command help and usage
    * Output: Basic pretty summary of the note created with its ID, and commands to quick edit it or view it
* **List Notes:** `mono list`
    * Description: Lists recent notes pretty formatted with IDs
    * Notes: By default list the last \~15 notes, make it configurable
    * Flags:
        * `--limit / -l`: Set a different note limit
        * `--type / -t`: Only show certain note types
        * `--today`: Show all notes made on current day
        * `--since / -s`: Show notes since a date
        * `--view / -v`: Show text content of shown notes
        * `--copy / -c`: Copy output to clipboard
        * `--help / -h`: Show specific command help and usage
    * Output: List the notes similar to `ls` terminal command
* **Search Notes:** `mono search “search query”`
    * Description: Search all notes by title and content
    * Notes: By default list up to 10 search results
    * Flags:
        * `--limit / -l`: Set a different note limit
        * `--type / -t`: Only search certain note types
        * `--date / -d`: Add date filter
        * `--copy / -c`: Copy output to clipboard
        * `--help / -h`: Show specific command help and usage
    * Output: X results found, then all of the search results
* **View Note:** `mono view <note id>`
    * Description: View pretty MD content of any note by ID
    * Notes: Format the markdown with color or size
    * Flags:
        * `--no-format / -n`: Output with no formatting
        * `--copy / -c`: Copy output to clipboard
        * `--help / -h`: Show specific command help and usage
    * Output: Title as H1, text as paragraph, any user made md
* **Edit Note:** `mono edit <node id>`
    * Description: Edit a note by ID
    * Notes: Opens the default terminal editor
    * Flags:
        * `--headless / -h`: Does not open editor
        * `--append / -a`: Appends new line to the note
        * `--overwrite / -o`: Overwrites whole note with new content
        * `--copy / -c`: Copy output to clipboard
        * `--help / -h`: Show specific command help and usage
    * Output: Confirmation of edit with file ID
* **Delete Note:** `mono delete <node id>`
    * Description: Delete a note by ID
    * Notes: Have confirmation for deletion
    * Flags:
        * `--approve / a`: Approves the deletion without confirmation
        * `--copy / -c`: Copy output to clipboard
        * `--help / -h`: Show specific command help and usage
    * Output: Tell user to run again with \-a to confirm, if deleted confirms what was deleted with full message title and content in output

Technical Requirements:

* **Dependencies:**
    * `clap`: For command line argument parsing
    * `libsql`: For SQLite set up
    * `chrono`: For date and time
* **Performance Constraints:**
    * Most load in under 50ms on M3 Mac Book Air
    * Must load in under 200ms on all testable devices

Implementation Roadmap:

* **Phase 1**: Functional MVP
    * Minimal Versions of Each Command
    * Clean Code
    * All Goals met
* **Phase 2:** Full Release
    * All QoL features
    * Animated Logo
    * More feature flags
    * Decrease binary size
    * Prepare for all systems