A powerful, feature-rich, and professional command-line Notes Manager built with Node.js, Commander.js, and SQLite.
Notes Manager CLI is a modern command-line application designed to help developers, students, and professionals manage notes efficiently without leaving the terminal.
Unlike a basic CRUD project, Notes Manager CLI provides a complete productivity toolkit including:
- β Smart note management
- β Categories
- β Favorites
- β Pinning
- β Locking
- β Tags
- β Due dates
- β Recurring notes
- β Advanced searching
- β Statistics
- β Productivity reports
- β History tracking
- β Backup & Restore
- β Import & Export
- β SQLite persistence
The project follows professional software engineering principles and demonstrates clean architecture, modular development, automated testing, and scalable code organization.
Managing notes from the terminal should be fast, intuitive, and reliable.
Notes Manager CLI was built with the following goals:
- Improve developer productivity
- Keep notes stored locally
- No internet connection required
- Fast SQLite database
- Simple yet powerful commands
- Clean architecture
- Easy maintenance
- Open-source
Whether you're managing daily tasks, project ideas, study notes, or reminders, Notes Manager CLI provides an efficient workflow directly from your terminal.
- π 35+ CLI Commands
- π¦ 20+ Major Features
- π SQLite Database
- π Statistics Dashboard
- π Productivity Reports
- π Categories & Tags
- β Favorites
- π Pin Notes
- π Lock Notes
- π Trash Management
- β» Undo Operations
- π History Tracking
- πΎ Backup & Restore
- π€ Import & Export
- π Advanced Search
- π§ͺ 117 Automated Tests
- β‘ Modular Architecture
- π¦ Published on npm
$ notes list
ββββββ¬βββββββββββββββββββββββββββββββ¬βββββββββββ¬βββββββββββ
β ID β Note β Priority β Status β
ββββββΌβββββββββββββββββββββββββββββββΌβββββββββββΌβββββββββββ€
β 1 β Learn Node.js β HIGH β Pending β
β 2 β Finish React Project β MEDIUM β Done β
β 3 β Prepare Interview Questions β LOW β Pending β
ββββββ΄βββββββββββββββββββββββββββββββ΄βββββββββββ΄βββββββββββBefore installing, make sure you have:
- Node.js 20 or later
- npm
- Windows, macOS, or Linux
Verify your installation:
node -v
npm -vInstall globally:
npm install -g notes-manager-cliVerify installation:
notes --versionExpected output:
1.0.2
View all available commands:
notes --helpCreate a note:
notes add "Learn Node.js"List notes:
notes listComplete a note:
notes complete 1Generate statistics:
notes statsGenerate productivity report:
notes reportCheck database health:
notes doctorIf you'd like to contribute or modify the source code:
Clone the repository:
git clone https://github.com/Rudra070707/notes-manager-cli.gitNavigate into the project:
cd notes-manager-cliInstall dependencies:
npm installRun the application locally:
node index.js --helpRun tests:
npm testNotes Manager CLI stores all data locally using SQLite.
Your notes remain on your computer.
No cloud storage.
No account required.
No internet connection required.
For additional safety, backups can be created anytime:
notes backupand restored using:
notes restore-db <backup-file>Notes Manager CLI is useful for:
- π¨βπ» Software Developers
- π Students
- π Self-learners
- π Project Managers
- πΌ Professionals
- π§βπΌ Freelancers
- π§ Daily Task Management
Notes Manager CLI is much more than a basic note-taking application. It combines task management, productivity tools, organization features, and database persistence into a single command-line experience.
Efficiently create and manage your notes.
- Create unlimited notes
- Update existing notes
- Delete notes
- List all notes
- Mark notes as completed
- Mark completed notes as pending
- Undo the last operation
- Trash support
- Archive support
notes add "Complete Java Assignment"
notes list
notes update 1 "Complete Java Assignment before Friday"
notes complete 1
notes uncomplete 1
notes delete 1
notes undoOrganize notes exactly the way you want.
Group notes into categories.
Examples:
- Personal
- College
- Work
- Projects
- Ideas
notes add "Finish DBMS Assignment" --category College
notes list --category College
notes categories
notes rename-category College AcademicsAttach multiple tags to any note.
Example:
notes add "Build REST API" --tag backend,nodejs,expressSearch using tags.
notes search --tag backendEvery note can have a priority.
Supported priorities:
- Low
- Medium
- High
Example:
notes add "Finish Project" --priority highFilter:
notes list --priority highSort:
notes list --sort priorityPin important notes to keep them at the top.
notes pin 2
notes unpin 2Mark frequently used notes as favorites.
notes favorite 3
notes favorites
notes unfavorite 3Protect sensitive notes.
notes lock 5
notes unlock 5Assign deadlines to notes.
notes add "Submit Final Report" --due 2026-08-15Filter by due dates.
notes today
notes upcoming
notes overdueCreate recurring reminders.
Supported recurrence:
- Daily
- Weekly
- Monthly
Examples
notes add "Drink Water" --daily
notes add "Weekly Team Meeting" --weekly
notes add "Pay Rent" --monthlyStay organized and productive with built-in productivity commands.
notes todaynotes upcomingnotes overduenotes recentnotes nextView overall statistics.
notes statsExample output:
Total Notes: 18
Completed: 9
Pending: 9
High Priority: 4
Favorites: 6
Archived: 2
Locked: 3
Generate a detailed productivity report.
notes reportThe report summarizes:
- Completed tasks
- Pending tasks
- Completion percentage
- Priority distribution
- Category distribution
- Overall productivity
Quickly find the notes you need.
Search by keyword.
notes search projectSearch by priority.
notes search --priority highSearch by category.
notes search --category WorkSearch favorites.
notes search --favoriteSearch locked notes.
notes search --lockedSearch pinned notes.
notes search --pinnedSearch completed notes.
notes search --completedSearch pending notes.
notes search --pendingSort notes by different fields.
notes list --sort created
notes list --sort priority
notes list --sort due
notes list --sort status| Feature | Supported |
|---|---|
| Create Notes | β |
| Update Notes | β |
| Delete Notes | β |
| Complete Notes | β |
| Archive Notes | β |
| Trash | β |
| Categories | β |
| Tags | β |
| Favorites | β |
| Pin Notes | β |
| Lock Notes | β |
| Due Dates | β |
| Recurring Notes | β |
| Search | β |
| Sorting | β |
| Statistics | β |
| Productivity Reports | β |
A typical workflow looks like this:
notes add "Learn Node.js" --priority high --category Study
notes add "Finish React Project" --priority medium --due 2026-08-10
notes list
notes complete 1
notes stats
notes reportThis section provides a comprehensive overview of every command available in Notes Manager CLI.
Create a new note.
notes add "<note>"| Option | Description |
|---|---|
--priority |
Set priority (low, medium, high) |
--category |
Assign category |
--tag |
Add comma-separated tags |
--due |
Set due date |
--daily |
Repeat daily |
--weekly |
Repeat weekly |
--monthly |
Repeat monthly |
notes add "Learn Node.js"
notes add "Complete Project" --priority high
notes add "Study DBMS" --category College
notes add "Practice DSA" --tag coding,dsa
notes add "Submit Assignment" --due 2026-08-10
notes add "Drink Water" --dailyDisplay all notes.
notes listAlias
notes ls| Option | Description |
|---|---|
--sort created |
Sort by creation date |
--sort priority |
Sort by priority |
--sort due |
Sort by due date |
--sort status |
Sort by completion status |
--priority |
Filter by priority |
--tag |
Filter by tag |
--category |
Filter by category |
--completed |
Show completed notes |
--pending |
Show pending notes |
--today |
Show today's notes |
--this-week |
Show notes due this week |
--overdue |
Show overdue notes |
--upcoming |
Show upcoming notes |
--favorite |
Show favorites only |
notes list
notes list --priority high
notes list --category Work
notes list --tag backend
notes list --completed
notes list --sort priorityUpdate an existing note.
notes update 2 "Finish React Project"Delete one or more notes.
notes delete 3
notes delete 3 4 5Alias
notes rm 3Mark notes as completed.
notes complete 2
notes complete 2 3 4Alias
notes done 2Convert completed notes back to pending.
notes uncomplete 2Undo the previous action.
notes undoArchive notes without deleting them.
notes archive 2Alias
notes arc 2View archived notes
notes archivedRestore
notes restore 2Alias
notes res 2Delete all archived notes
notes clear-archivedView trash
notes trashRestore
notes restore-trash 3Empty trash
notes empty-trashPin important notes.
notes pin 2Remove pin
notes unpin 2Add favorite
notes favorite 2Remove favorite
notes unfavorite 2List favorites
notes favoritesLock
notes lock 2Unlock
notes unlock 2Search by keyword.
notes search projectAlias
notes find projectAvailable filters
| Filter | Description |
|---|---|
--priority |
Priority filter |
--category |
Category filter |
--tag |
Tag filter |
--favorite |
Favorites only |
--locked |
Locked notes |
--pinned |
Pinned notes |
--completed |
Completed notes |
--pending |
Pending notes |
Examples
notes search react
notes search --priority high
notes search --category College
notes search --favorite
notes search --lockedDisplay statistics.
notes statsAlias
notes statGenerate a productivity report.
notes reportToday's tasks
notes todayUpcoming tasks
notes upcomingOverdue tasks
notes overdueRecent notes
notes recentNext recommended task
notes nextView categories
notes categoriesRename category
notes rename-category College AcademicsDelete category
notes delete-category IdeasView activity history.
notes historyLimit records
notes history --limit 20Search history
notes history --search updateToday's history
notes history --todayFilter by action
notes history --type ADDClear history
notes history --clearCreate backup
notes backupList backups
notes backupsRestore backup
notes restore-db backup-2026-08-01.dbSupported formats
- JSON
- CSV
- Markdown
Examples
notes export json
notes export csv
notes export mdImport JSON data.
notes import json notes.jsonView configuration
notes config showChange configuration
notes config set theme darkReset configuration
notes config resetManage security features.
notes security enable
notes security disableRun diagnostics.
notes doctorThe Doctor command checks:
- Database health
- Missing tables
- Corrupted records
- Configuration issues
- Backup status
Display built-in help.
notes --helpCustom help
notes help-customNotes Manager CLI follows a clean layered architecture that separates responsibilities into independent modules. This makes the project easier to maintain, extend, and test.
The application flow is:
User
β
βΌ
Commander.js CLI Interface
β
βΌ
Command Layer
β
βΌ
Service Layer
β
βΌ
Repository Layer
β
βΌ
SQLite Database
Every layer has a single responsibility and communicates only with the layer below it.
notes-manager-cli/
β
βββ commands/
β βββ add.js
β βββ archive.js
β βββ backup.js
β βββ categories.js
β βββ category.js
β βββ clear.js
β βββ clearArchived.js
β βββ complete.js
β βββ config.js
β βββ delete.js
β βββ deleteCategory.js
β βββ doctor.js
β βββ emptyTrash.js
β βββ export.js
β βββ favorite.js
β βββ favorites.js
β βββ help.js
β βββ history.js
β βββ import.js
β βββ list.js
β βββ lock.js
β βββ next.js
β βββ overdue.js
β βββ pin.js
β βββ recent.js
β βββ renameCategory.js
β βββ report.js
β βββ restore.js
β βββ restoreBackup.js
β βββ restoreTrash.js
β βββ search.js
β βββ security.js
β βββ stats.js
β βββ today.js
β βββ trash.js
β βββ uncomplete.js
β βββ undo.js
β βββ unfavorite.js
β βββ unlock.js
β βββ unpin.js
β βββ upcoming.js
β βββ update.js
β
βββ database/
β βββ database.js
β βββ noteRepository.js
β βββ logRepository.js
β βββ configRepository.js
β βββ securityRepository.js
β βββ undoRepository.js
β
βββ services/
β βββ backupService.js
β βββ configService.js
β βββ exportService.js
β βββ historyService.js
β βββ importService.js
β βββ loggerService.js
β βββ noteService.js
β βββ securityService.js
β βββ undoService.js
β
βββ validators/
βββ filters/
βββ sorters/
βββ helpers/
βββ ui/
βββ config/
βββ tests/
βββ package.json
βββ index.js
βββ README.md
βββ LICENSE
| Folder | Purpose |
|---|---|
commands/ |
CLI command implementations |
database/ |
SQLite database access |
services/ |
Business logic |
validators/ |
Input validation |
filters/ |
Search & filtering |
sorters/ |
Sorting algorithms |
helpers/ |
Shared helper functions |
ui/ |
Console formatting |
config/ |
Default configuration |
tests/ |
Automated testing |
| Technology | Purpose |
|---|---|
| Node.js | JavaScript runtime |
| Commander.js | Command-line interface |
| SQLite | Local database |
| sqlite3 | SQLite driver |
| Jest | Automated testing |
| Chalk | Terminal colors |
| cli-table3 | Beautiful CLI tables |
| Prompt Sync | Interactive prompts |
| bcrypt | Security features |
| Git | Version control |
| GitHub | Source code hosting |
| npm | Package distribution |
This project follows several software engineering principles to ensure scalability and maintainability.
Every module has one responsibility.
Examples:
- Commands execute CLI actions.
- Services contain business logic.
- Repositories communicate with SQLite.
- Validators verify user input.
Instead of writing all logic inside commands, the application is divided into multiple layers.
Benefits:
- Easier testing
- Better code organization
- Reusable logic
- Easier debugging
- Simpler maintenance
All database operations are isolated inside repository modules.
Instead of:
Command
β
SQLite
The application uses:
Command
β
Service
β
Repository
β
SQLite
Advantages:
- Database-independent business logic
- Easier future migrations
- Cleaner codebase
The Service Layer contains all application logic.
Examples include:
- Creating notes
- Completing notes
- Searching
- Statistics generation
- Productivity reports
- Import & export
- Backup management
This keeps command files small and focused.
Notes Manager CLI uses SQLite as its storage engine.
Benefits include:
- Lightweight
- Fast
- Serverless
- Reliable
- Cross-platform
- No installation required
All data is stored locally on your machine.
The application stores:
- Notes
- Categories
- Tags
- Priority levels
- Due dates
- Recurring schedules
- Favorites
- Pin status
- Lock status
- History logs
- Configuration
- Backup information
Several features improve data safety.
Supported features include:
- Password hashing with bcrypt
- Locked notes
- Confirmation prompts before destructive operations
- Backup system
- Undo support
- Restore functionality
The application is optimized for fast execution.
Performance characteristics:
- Fast startup
- SQLite indexing
- Lightweight architecture
- Efficient searching
- Minimal memory usage
Even large note collections remain responsive.
The project emphasizes maintainable, production-ready code.
Practices include:
- Modular structure
- Reusable functions
- Clear naming conventions
- Input validation
- Error handling
- Automated testing
- Consistent formatting
Development follows a structured workflow.
Feature Idea
β
βΌ
Implementation
β
βΌ
Testing
β
βΌ
Linting
β
βΌ
Formatting
β
βΌ
Git Commit
β
βΌ
GitHub Push
β
βΌ
npm Publish
Each release follows semantic versioning.
Example:
1.0.0
β β β
β β βββ Patch
β βββββ Minor
βββββββ Major
Releases are published through npm and tracked with Git.
The project includes automated quality checks.
Current pipeline includes:
- Code formatting
- Linting
- Automated tests
- Build verification
Every push helps ensure the codebase remains stable and production-ready.
Maintaining reliability is a key goal of Notes Manager CLI.
The project uses Jest for automated testing to ensure that new features do not break existing functionality.
Current testing includes:
- β CRUD Operations
- β Search
- β Categories
- β Favorites
- β Pinning
- β Locking
- β Import & Export
- β Backup & Restore
- β Statistics
- β Productivity Commands
- β Validation
- β Repository Layer
- β Service Layer
Run the complete test suite:
npm testRun tests with coverage:
npm test -- --coverageRun a specific test:
npm test -- add.test.js| Metric | Value |
|---|---|
| CLI Commands | 35+ |
| Major Features | 20+ |
| Service Modules | 10+ |
| Repository Modules | 5+ |
| Validators | Multiple |
| Tests | 117+ |
| Database | SQLite |
| License | MIT |
| Package Manager | npm |
The project follows professional coding standards.
Quality tools include:
- ESLint
- Prettier
- Husky
- GitHub Actions
- Jest
Run ESLint:
npm run lintAutomatically fix problems:
npm run lint:fixFormat the project:
npm run formatGitHub Actions automatically checks every push and pull request.
The workflow verifies:
- Install dependencies
- Run tests
- Check formatting
- Verify project integrity
This helps maintain a stable and production-ready codebase.
Notes Manager CLI is available on npm.
Install globally:
npm install -g notes-manager-cliUpdate to the latest version:
npm update -g notes-manager-cliCheck installed version:
notes --versionContributions are welcome!
Whether you're fixing bugs, improving documentation, or adding features, your help is appreciated.
Clone the repository:
git clone https://github.com/Rudra070707/notes-manager-cli.gitMove into the project:
cd notes-manager-cliInstall dependencies:
npm installRun tests:
npm testCreate a new feature branch:
git checkout -b feature/my-featureAfter making your changes:
git add .
git commit -m "feat: add amazing feature"
git push origin feature/my-featureFinally, open a Pull Request on GitHub.
Please follow these guidelines:
- Write clean code
- Follow existing coding style
- Keep commits meaningful
- Add tests for new features
- Update documentation when necessary
- Ensure all tests pass before submitting
- CRUD Operations
- SQLite Integration
- Categories
- Favorites
- Pin Notes
- Lock Notes
- Due Dates
- Recurring Notes
- Statistics Dashboard
- Productivity Report
- Advanced Search
- Import
- Export
- Backup
- Restore
- Undo
- History
- Doctor Command
- Configuration System
- npm Publishing
- GitHub Actions CI
- Automated Testing
The following improvements are planned for future releases.
- Shell Autocomplete
- Improved Search Filters
- Better CLI Output
- Enhanced History
- Performance Improvements
- Markdown Preview
- Rich Text Export
- Theme Support
- Better Configuration Management
- Interactive Terminal UI (TUI)
- Plugin System
- Cloud Synchronization
- End-to-End Encryption
- Multi-Profile Support
- Workspace Management
Yes.
It is completely free and open-source under the MIT License.
No.
Everything works locally.
No.
It uses SQLite stored on your local machine.
Yes.
Your notes remain on your own computer unless you explicitly export or share them.
Absolutely.
notes backupRestore them later:
notes restore-db <backup-file>Yes.
notes import json notes.jsonYes.
Supported formats:
- JSON
- CSV
- Markdown
Example:
notes export jsonIf notes is not recognized:
- Verify Node.js is installed.
- Reinstall globally.
npm install -g notes-manager-cliUpdate to the latest version.
npm install -g notes-manager-cli@latestVerify:
notes --versionDelete dependencies:
rm -rf node_modulesInstall again:
npm installRun diagnostics:
notes doctorIf necessary, restore from backup.
To get the most out of Notes Manager CLI:
- Use categories to organize projects.
- Add priorities to important tasks.
- Use due dates for deadlines.
- Create regular backups.
- Review statistics regularly.
- Use history to track activity.
- Keep the application updated.
This project is made possible by the excellent open-source ecosystem, including:
- Node.js
- Commander.js
- SQLite
- Jest
- Chalk
- cli-table3
- GitHub
- npm
This project is licensed under the MIT License.
The MIT License is a permissive open-source license that allows anyone to:
- β Use the software commercially
- β Modify the source code
- β Distribute copies
- β Use it privately
- β Publish modified versions
See the LICENSE file for the complete license text.
This project follows Semantic Versioning (SemVer).
MAJOR.MINOR.PATCH
Example:
1.0.2
β β β
β β βββ Bug fixes
β βββββ New features (backward compatible)
βββββββ Breaking changes
Examples:
| Version | Meaning |
|---|---|
| 1.0.0 | Initial Release |
| 1.0.1 | Bug Fix |
| 1.0.2 | Patch Update |
| 1.1.0 | New Features |
| 2.0.0 | Major Changes |
Notes Manager CLI is designed to work across multiple operating systems.
| Platform | Supported |
|---|---|
| Windows | β |
| Linux | β |
| macOS | β |
Requirements:
- Node.js 20+
- npm
Major dependencies used by the project:
- Commander.js
- SQLite3
- Chalk
- cli-table3
- Prompt Sync
- bcrypt
- Jest
All dependencies are managed using npm.
This project demonstrates practical software engineering concepts including:
- Command-Line Interface (CLI) Development
- Node.js Application Development
- SQLite Database Integration
- Repository Pattern
- Service Layer Architecture
- Modular Programming
- Input Validation
- Error Handling
- Unit Testing
- Git Version Control
- GitHub Workflow
- npm Package Publishing
- Software Documentation
- Semantic Versioning
It serves as a strong portfolio project for students and developers looking to showcase backend development skills.
Notes Manager CLI is suitable for:
- π¨βπ» Software Developers
- π Students
- π Self-Learners
- πΌ Professionals
- π Project Managers
- π§βπΌ Freelancers
- π Open Source Contributors
- π§ Productivity Enthusiasts
Whether you're managing personal notes, project tasks, study material, or daily reminders, Notes Manager CLI provides a fast and reliable workflow directly from your terminal.
Found a bug?
Have a feature request?
Want to improve the project?
Please open an issue on GitHub describing:
- The problem
- Steps to reproduce
- Expected behavior
- Actual behavior
- Your operating system
- Node.js version
Constructive feedback is always welcome.
If you find this project useful, consider supporting it by:
β Starring the GitHub repository
π΄ Forking the project
π Reporting bugs
π‘ Suggesting new features
π’ Sharing it with others
Every contribution helps improve the project.
Computer Engineering Student β’ Backend Developer β’ Open Source Enthusiast
https://github.com/Rudra070707
https://www.npmjs.com/~rudrabandekar
If you'd like to discuss the project, suggest improvements, or collaborate on future development, feel free to reach out through GitHub.
Contributions, feedback, and ideas are always appreciated.
The goal of Notes Manager CLI is to evolve into a comprehensive command-line productivity suite.
Future releases aim to include:
- Interactive Terminal UI (TUI)
- Plugin Ecosystem
- Workspace Support
- AI-powered Smart Search
- Markdown Rendering
- Shell Autocomplete
- Cloud Synchronization
- Encryption Enhancements
- Cross-device Synchronization
- Advanced Analytics
The project will continue to focus on simplicity, performance, and developer productivity.
Special thanks to the creators and maintainers of the open-source technologies that made this project possible.
- Node.js
- Commander.js
- SQLite
- Jest
- Chalk
- cli-table3
- Git
- GitHub
- npm
Their work enables developers around the world to build amazing software.
Please consider giving the repository a Star β on GitHub.
It helps the project gain visibility and encourages future development.
Professional β’ Fast β’ Reliable β’ Open Source
Made with β€οΈ using Node.js, Commander.js, and SQLite
Β© 2026 Rudra Bandekar. All Rights Reserved.