Featured Project
Terminal
CLI
Security

Notes CLI - Terminal Note-Taking Application

A production-ready, terminal-based note-taking application with security features and extensible architecture. Provides a fast, secure way to create, organize, and search notes without leaving the terminal.

Notes CLI terminal interface screenshot
Notes CLI file structure and organization

Terminal Native

No GUI disruption

GPG Encryption

Secure sensitive notes

Git Integration

Version control

Fuzzy Search

Fast discovery

Technology Stack

Core Technologies

Bash 4.0+
GPG
Git
fzf

Platform Support

Linux
macOS
Windows/WSL

Problem & Solution

Problem

GUI note apps disrupt terminal workflows and lack security features for sensitive information. Developers need a fast, secure way to take notes without leaving their terminal environment.

Solution

Terminal-native application with interactive menus, GPG encryption, Git sync, and zero configuration setup. Notes CLI provides a seamless note-taking experience that integrates perfectly with developer workflows.

Core Features

1. Interactive Menu System

User-friendly guided workflows eliminate the need to memorize commands. The interactive menu provides clear options and helpful descriptions for all operations.

$ notes
Notes CLI v2.0.0

CORE COMMANDS:
add     - Add a new note
list    - List notes by category
journal - Today's journal entry
search  - Search all notes
encrypt - Create encrypted note
sync    - Git synchronization

What would you like to do?
> 

2. Security & Encryption

GPG encryption for sensitive notes ensures that confidential information remains secure. Encrypted notes are stored separately with proper access controls.

Security Features:

  • • GPG encryption for sensitive notes
  • • Secure file handling and input validation
  • • Separate encrypted directory structure
  • • User key management integration

3. Search & Discovery

Multiple search methods including keyword search, fuzzy finder, and tag-based filtering make it easy to find notes quickly.

Search Capabilities:

  • • Keyword-based search across all notes
  • • Interactive fuzzy finder with fzf
  • • Tag-based filtering and organization
  • • Category-based note listing

4. Plugin System

Extensible plugin architecture with 7 built-in plugins for weather, system stats, and productivity enhancements.

$ notes plugins
Weather: 22°C, Partly Cloudy
Battery: 85% (Not Charging)
Stats: 12 notes across 5 categories

Performance Metrics

<100ms
Startup Time
<200ms
Search Speed
<10MB
Memory Usage
2000+
Lines of Code

Installation & Usage

Quick Installation

# Quick setup
git clone https://github.com/MarufHossain14/notes-cli.git
cd notes-cli
bash install.sh

Basic Usage Examples

Basic Note Operations:

notes - Interactive mode (recommended)
notes add - Add new note
notes list - View all notes
notes search "keyword" - Search notes
notes journal - Daily journal entry

Advanced Features

Advanced Operations:

notes encrypt - Create encrypted note
notes sync - Git synchronization
notes plugins - Run all plugins
notes weather - Get weather info
notes stats - View note statistics

File Structure

~/notes/
├── work.txt              # Category-based plain text files
├── personal.txt          # Fast access, human-readable
├── journal-2025-08-03.txt # Auto-generated journal files
├── private/              # Encrypted notes directory
│   └── sensitive.gpg     # GPG-encrypted files
├── backups/              # Automated backup system
└── .git/                 # Version control (optional)

Technical Challenges & Solutions

1. Cross-Platform Compatibility

Challenge: Different date/grep implementations across systems.

Solution: Environment detection with graceful fallbacks and platform-specific command handling.

2. Security Implementation

Challenge: Preventing injection attacks and ensuring secure file handling.

Solution: Input sanitization, safe filename handling, and proper GPG key management.

3. User Experience

Challenge: Making CLI tools user-friendly and accessible.

Solution: Interactive menus eliminate command memorization and provide guided workflows.

Skills Demonstrated

Technical Skills

  • • Advanced Bash Scripting (2000+ lines)
  • • Security Implementation (GPG integration)
  • • Cross-Platform Development
  • • Plugin Architecture Design
  • • Error Handling & Validation

Development Skills

  • • Production-ready Architecture
  • • User Experience Design
  • • Documentation & Testing
  • • Version Control Integration
  • • Performance Optimization

Key Achievements

Technical Excellence

  • • Production-ready architecture with robust error handling
  • • Security-first design with GPG encryption
  • • Cross-platform compatibility across major systems
  • • Extensible plugin system for customization
  • • Zero configuration setup for immediate use

Developer Experience

  • • Seamless terminal integration
  • • Interactive guided workflows
  • • Fast search and discovery
  • • Version control integration
  • • Plugin ecosystem for extensibility

Future Enhancements

  • Template System: Structured note templates for different use cases
  • Advanced Search: Regex support and advanced filtering options
  • Cloud Sync: Integration with cloud storage providers
  • Mobile Companion: Mobile app for viewing and basic editing
  • IDE Extensions: VS Code and Vim plugin integrations

Conclusion

Notes CLI demonstrates how traditional shell scripting can create modern, feature-rich applications that enhance developer productivity while maintaining security and performance standards.

Key Achievements:

  • • Production-ready architecture with robust error handling
  • • Security-first design with GPG encryption
  • • Cross-platform compatibility across major systems
  • • Developer-centric features for terminal workflows
  • • Extensible plugin system for customization

Built by Maruf Hossain using advanced Bash scripting and security best practices