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