Terminal Note Taking Application with beautiful UI and rich features
Project description
WNote - Terminal Note Taking Application ๐
WNote is a beautiful, feature-rich CLI note-taking application that runs entirely in your terminal. Designed for developers and power users who prefer working in the command line, WNote combines simplicity with powerful features like tags, smart attachments with symlink support, reminders, templates, and backups.
๐ฏ Why WNote?
- ๐พ Space Efficient: Symlink mode saves 99% disk space on attachments
- โก Lightning Fast: Operations complete in milliseconds
- ๐จ Beautiful UI: Rich terminal interface with colors and tables
- ๐ Privacy First: All data stored locally, no cloud sync
- ๐ ๏ธ Developer Friendly: Built with modern Python, easy to extend
- ๐ฆ Zero Config: Works out of the box, customize when you need
โจ Features
Core Features
- โ๏ธ Note Management: Create, edit, view, update, and delete notes with ease
- ๐ท๏ธ Tag System: Organize notes with customizable colored tags
- ๐ Advanced Search: Full-text search with relevance scoring and filtering
- ๐ Statistics: Comprehensive statistics and analytics about your notes
- ๐จ Beautiful UI: Rich terminal interface powered by the Rich library
Advanced Features
- ๐ Smart Attachments: Three modes for maximum flexibility
- ๐ Symlink (default): Saves 99% space, stays in sync with original
- ๐ Copy: Safe snapshot, independent of original
- ๐ Reference: Path-only, no storage overhead
- โฐ Reminders: Set reminders for important notes with due date tracking
- ๐ Templates: Create and use note templates for common formats
- ๐พ Backup & Restore: Automatic and manual backup system with compression
- ๐ฆ Archive System: Archive old notes without deleting them
- ๐ค Export: Export notes to Markdown, HTML, or plain text
- ๐ Note Linking: Create relationships between notes (coming soon)
- ๐ Editor Integration: Use your favorite text editor (vim, nano, etc.)
๐๏ธ Architecture
Project Structure
wnote/
โโโ wnote/ # Main package directory
โ โโโ __init__.py # Package initialization
โ โโโ cli.py # CLI entry point
โ โโโ core/ # Core functionality
โ โ โโโ __init__.py
โ โ โโโ config.py # Configuration management
โ โ โโโ database.py # Database operations
โ โโโ utils/ # Utility functions
โ โ โโโ __init__.py
โ โ โโโ decorators.py # Decorators (retry logic, etc.)
โ โ โโโ formatters.py # Formatting utilities
โ โ โโโ file_ops.py # File operations
โ โโโ commands/ # Command modules
โ โโโ __init__.py
โ โโโ note_commands.py # Note CRUD operations
โ โโโ tag_commands.py # Tag management
โ โโโ attachment_commands.py
โ โโโ reminder_commands.py
โ โโโ export_commands.py
โ โโโ config_commands.py
โ โโโ backup_commands.py
โโโ setup.py # Setup configuration
โโโ pyproject.toml # Modern Python packaging config
โโโ requirements.txt # Runtime dependencies
โโโ README.md # This file
โโโ CHANGELOG.md # Version history
โโโ LICENSE # MIT License
โโโ MANIFEST.in # Package inclusion rules
System Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CLI Interface (Click) โ
โ wnote.cli โ
โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ
โ โ โ โ
โโโโโโโโโผโโโโโโโ โโโโผโโโโโโโ โโโโผโโโโโโโ โโโโโโโโโโผโโโโโโโโโ
โ Note Commandsโ โ Tag โ โReminder โ โ Backup Commands โ
โ โ โCommands โ โCommands โ โ โ
โโโโโโโโโฌโโโโโโโ โโโโฌโโโโโโโ โโโโฌโโโโโโโ โโโโโโโโโโฌโโโโโโโโโ
โ โ โ โ
โโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโผโโโโโโโโโโโโโ
โ Core Modules โ
โโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โข Database (SQLite) โ
โ โข Configuration โ
โ โข File Operations โ
โโโโโโโโโโโโโฌโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโผโโโโโโโโโโโโโ
โ Data Layer โ
โโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โข SQLite Database โ
โ โข JSON Config โ
โ โข Attachments Dir โ
โ โข Backups Dir โ
โโโโโโโโโโโโโโโโโโโโโโโโโโ
Database Schema
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โ notes โ โ note_tags โ โ tags โ
โโโโโโโโโโโโโโโค โโโโโโโโโโโโโโโโค โโโโโโโโโโโโโโโค
โ id (PK) โโโโโโโ note_id (FK) โโโโโโโ id (PK) โ
โ title โ โโ tag_id (FK) โโ โ name โ
โ content โ โโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โ is_archived โ โ โ
โ created_at โ โ โ
โ updated_at โ โ โ
โโโโโโโโโโโโโโโ โ โ
โ โ โ
โ โ โโโโโโโโโโโโโโโโผโโโโโโโโโ
โ โโโโ attachments โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ id (PK) โ
โ โ note_id (FK) โ
โ โ filename โ
โ โ original_path โ
โ โ stored_path โ
โ โ is_directory โ
โ โ attachment_mode ๐ โ
โ โ created_at โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ โโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโ reminders โ
โโโโโโโโโโโโโโโโโโโค
โ id (PK) โ
โ note_id (FK) โ
โ reminder_date โ
โ message โ
โ is_completed โ
โโโโโโโโโโโโโโโโโโโ
๐ attachment_mode: 'symlink' | 'copy' | 'reference'
๐ ๏ธ Technology Stack
Core Technologies
- Python 3.7+: Programming language
- Click 8.1+: Command-line interface creation
- Rich 13.7+: Beautiful terminal formatting and UI
- SQLite: Embedded database for data storage
Dependencies
- Markdown 3.4+: Markdown processing for exports
- Colorama 0.4+: Cross-platform colored terminal text
- Tabulate 0.9+: Pretty-print tabular data
- Requests 2.28+: HTTP library (future features)
Development Tools
- pytest: Unit testing framework
- black: Code formatting
- isort: Import sorting
- mypy: Static type checking
- flake8: Linting
๐ฆ Installation
From PyPI (Recommended)
pip install wnote
From Source
git clone https://github.com/imnotnahn/wnote.git
cd wnote
pip install -e .
Development Installation
git clone https://github.com/imnotnahn/wnote.git
cd wnote
pip install -e ".[dev]"
๐ Quick Start
# Create your first note
wnote add "My First Note" -t "personal,ideas"
# View all notes
wnote show
# Search notes
wnote search "keyword"
# Create a backup
wnote backup
# View statistics
wnote stats
๐ Usage Guide
Note Management
# Create a note with editor
wnote add "Meeting Notes"
# Create a note with inline content
wnote add "Quick Note" -c "Note content here"
# Create a note with tags
wnote add "Project Plan" -t "work,project,planning"
# Create a note with template
wnote add "Weekly Report" --template weekly
# View all notes
wnote show
# View specific note
wnote show 1
# View notes by tag
wnote show -t work
# Show archived notes
wnote show --archived
# Edit note content
wnote edit 1
# Update note title or tags
wnote update 1 -t "New Title"
wnote update 1 --tags "new,tags"
# Archive a note
wnote update 1 --archive
wnote archive 1 # Alternative
# Unarchive a note
wnote update 1 --unarchive
wnote archive --restore-note 1 # Alternative
# Delete note (archives by default)
wnote delete 1
# Permanently delete note
wnote delete 1 --permanent
Tags
# View all tags
wnote tags
# Set tag color
wnote color work blue
wnote color personal green
wnote color urgent red
# Delete a tag
wnote delete work --tag
Available colors: red, green, blue, yellow, magenta, cyan, white, black, bright_red, bright_green, bright_blue, bright_yellow, bright_magenta, bright_cyan, bright_white, bright_black
Attachments
WNote v0.6.1+ supports three attachment modes for maximum flexibility:
| Mode | Icon | Description | Use Case | Disk Usage |
|---|---|---|---|---|
| Symlink ๐ | Default | Creates symbolic link | Files you update frequently | <1% |
| Copy ๐ | Safe | Copies file/folder | Snapshots, backups | 100% |
| Reference ๐ | Minimal | Saves path only | Large files on external drives | 0% |
# Attach with symlink (default, recommended)
wnote attach 1 ~/Documents/report.pdf
wnote attach 1 ~/Documents/report.pdf --mode symlink
# Attach with copy (safe snapshot)
wnote attach 1 ~/config.json --mode copy
# Attach with reference only (no copy/link)
wnote attach 1 /mnt/external/bigdata.csv --mode reference
# Attach directory (works with all modes)
wnote attach 1 ~/Projects/code --mode symlink
# Create note with attachment in one command
wnote add "Report" -f ~/report.pdf -t "work"
wnote add "Backup" -f ~/config.json --attach-mode copy
# List attachments (shows mode icons: ๐ ๐ ๐)
wnote deattach 1 --list
# Remove specific attachment (safe: only removes link/copy, not original)
wnote deattach 1 --attachment-id 2
# Remove all attachments
wnote deattach 1 --all
# View note with attachments
wnote show 1 -o # Auto-open all attachments
๐ก๏ธ Safety Note: When you delete a note or remove an attachment:
- Symlink mode: Only the link is removed, original file stays intact โ
- Copy mode: Only the copied file is removed, original stays intact โ
- Reference mode: Only the path record is removed, original untouched โ
Your original files are NEVER deleted!
Reminders
# Add reminder with date and time
wnote reminder 1 "2025-12-31 14:30" "Project deadline"
# Add reminder with date only (defaults to 09:00)
wnote reminder 1 "2025-12-31" "Important meeting"
# View all reminders
wnote reminders
# View reminders for specific note
wnote reminders -n 1
# View including completed reminders
wnote reminders -c
# Mark reminder as completed
wnote reminders --complete 1
# Delete reminder
wnote reminders --delete 1
Search & Export
# Search notes (case-insensitive by default)
wnote search "keyword"
# Case-sensitive search
wnote search "Keyword" --case-sensitive
# Search with tag filter
wnote search "project" --tag work
# Include archived notes in search
wnote search "old" --archived
# Export note to markdown
wnote export 1 --format markdown
# Export note to HTML file
wnote export 1 --format html --output note.html
# Export to plain text
wnote export 1 --format text --output note.txt
Templates
# Create new template
wnote template create meeting
# Create template with description
wnote template create "project-plan" -d "Template for project planning"
# List all templates
wnote template list
# View template content
wnote template show meeting
# Use template when creating note
wnote add "Weekly Meeting" --template meeting
Backup & Restore
# Create automatic backup
wnote backup
# Create named backup
wnote backup --name "before-cleanup"
# Create compressed backup
wnote backup --compress
# List all backups
wnote list-backups
# Restore from backup
wnote restore backup_20250315_120000
# Delete a backup
wnote list-backups --delete backup_20250315_120000
Configuration
# View configuration
wnote config
# Reset to defaults
wnote config --reset
# Manually edit config
nano ~/.config/wnote/config.json
Statistics
# View comprehensive statistics
wnote stats
Shows:
- Total, active, and archived notes
- Tag distribution
- Attachment statistics
- Reminder status
- Recent activity
- Note timeline
- Helpful tips
โ๏ธ Configuration
WNote stores its configuration in ~/.config/wnote/config.json. You can customize:
{
"editor": "nano",
"default_color": "white",
"file_opener": "xdg-open",
"auto_backup": true,
"backup_interval_days": 7,
"max_backups": 10,
"search_limit": 100,
"preview_length": 40,
"date_format": "%d/%m/%Y %H:%M",
"tag_colors": {
"work": "blue",
"personal": "green",
"urgent": "red",
"idea": "yellow"
}
}
Configuration Paths
- Database:
~/.config/wnote/notes.db - Config:
~/.config/wnote/config.json - Attachments:
~/.config/wnote/attachments/ - Backups:
~/.config/wnote/backups/ - Templates:
~/.config/wnote/templates/ - Archive:
~/.config/wnote/archive/
๐ง Development
Setup Development Environment
# Clone repository
git clone https://github.com/imnotnahn/wnote.git
cd wnote
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/macOS
# or
venv\Scripts\activate # Windows
# Install in development mode with dev dependencies
pip install -e ".[dev]"
Running Tests
# Run all tests
pytest
# Run with coverage
pytest --cov=wnote --cov-report=html
# Run specific test file
pytest tests/test_database.py
Code Quality
# Format code
black wnote/
isort wnote/
# Lint code
flake8 wnote/
# Type checking
mypy wnote/
Building Package
# Clean previous builds
rm -rf dist/ build/ *.egg-info
# Build distribution packages
python -m build
# Check built packages
ls -lh dist/
# Test installation locally
pip install dist/wnote-0.6.1-py3-none-any.whl
# Or test with editable install
pip install -e .
๐ฆ Publishing to PyPI
Complete guide for uploading WNote to PyPI:
Prerequisites
# Install build tools
pip install --upgrade pip build twine
# Ensure you have PyPI account
# Register at: https://pypi.org/account/register/
# Register at TestPyPI: https://test.pypi.org/account/register/
Step 1: Prepare Your Package
# 1. Update version in these files:
# - wnote/__init__.py: __version__ = "0.6.1"
# - setup.py: version="0.6.1"
# - pyproject.toml: version = "0.6.1"
# 2. Update CHANGELOG.md with new version info
# 3. Update README.md with latest features
# 4. Commit all changes
git add .
git commit -m "Release v0.6.1"
git tag -a v0.6.1 -m "Release v0.6.1"
git push origin master --tags
Step 2: Build the Package
# Clean old builds
rm -rf dist/ build/ *.egg-info wnote.egg-info
# Build source distribution and wheel
python -m build
# Verify build output
ls -lh dist/
# Should see:
# wnote-0.6.1-py3-none-any.whl
# wnote-0.6.1.tar.gz
Step 3: Test on TestPyPI (Recommended)
# Upload to TestPyPI first (for testing)
python -m twine upload --repository testpypi dist/*
# You'll be prompted for:
# Username: __token__
# Password: <your TestPyPI API token>
# Test installation from TestPyPI
pip install --index-url https://test.pypi.org/simple/ wnote
# Test the package
wnote --version
wnote add "Test note" -c "Testing from TestPyPI"
wnote show
# If everything works, proceed to real PyPI
pip uninstall wnote
Step 4: Upload to PyPI
# Upload to real PyPI
python -m twine upload dist/*
# You'll be prompted for:
# Username: __token__
# Password: <your PyPI API token>
# Alternative: Use .pypirc for automation
# Create ~/.pypirc:
# [pypi]
# username = __token__
# password = <your-pypi-token>
#
# [testpypi]
# username = __token__
# password = <your-testpypi-token>
Step 5: Verify Upload
# Check on PyPI
# Visit: https://pypi.org/project/wnote/
# Test installation
pip install wnote
# Or upgrade
pip install --upgrade wnote
# Verify version
wnote --version
# Should output: WNote, version 0.6.1
API Token Setup (Recommended)
For secure uploads without storing password:
- Go to PyPI account settings: https://pypi.org/manage/account/
- Scroll to API tokens โ Click "Add API token"
- Token name:
wnote-upload(or any name) - Scope: Select "Entire account" or specific project
- Copy the token (starts with
pypi-...) - Store safely - you won't see it again!
Use token for upload:
# When prompted for username: __token__
# When prompted for password: paste your token (pypi-...)
# Or save in .pypirc:
cat > ~/.pypirc << EOF
[pypi]
username = __token__
password = pypi-YourActualTokenHere
[testpypi]
username = __token__
password = pypi-YourTestPyPITokenHere
EOF
chmod 600 ~/.pypirc
Troubleshooting Upload Issues
Error: File already exists
# PyPI doesn't allow re-uploading same version
# Solution: Bump version number and rebuild
Error: Invalid distribution
# Check package with twine
python -m twine check dist/*
Error: Missing README or metadata
# Ensure MANIFEST.in includes all necessary files
# Verify setup.py and pyproject.toml are correct
Error: Package size too large
# Remove unnecessary files from package
# Check MANIFEST.in and .gitignore
# Remove __pycache__, .pyc files
find . -type d -name "__pycache__" -exec rm -rf {} +
Post-Release Checklist
- โ Verify package on PyPI: https://pypi.org/project/wnote/
- โ
Test installation:
pip install wnote - โ Update GitHub release with changelog
- โ Announce on social media / forums
- โ Update documentation links if needed
- โ Monitor PyPI stats: https://pypistats.org/packages/wnote
Version Numbering Guide
Follow Semantic Versioning:
MAJOR.MINOR.PATCH (e.g., 0.6.1)
MAJOR: Breaking changes (0 โ 1)
MINOR: New features, backward compatible (6 โ 7)
PATCH: Bug fixes, minor improvements (1 โ 2)
Examples:
0.6.1โ0.6.2: Bug fixes only0.6.1โ0.7.0: New features added0.6.1โ1.0.0: Major rewrite or breaking changes
โก Performance & Storage
Attachment Mode Comparison
| Metric | Symlink ๐ | Copy ๐ | Reference ๐ |
|---|---|---|---|
| Attach 100MB file | <0.1s | ~2s | <0.1s |
| Attach 1GB folder | <0.1s | ~30s | <0.1s |
| Disk overhead | <0.1% | 100% | 0% |
| Speed | 20-300x faster | Baseline | 20-300x faster |
| Stays in sync | โ Yes | โ No | โ Yes |
| Snapshot | โ No | โ Yes | โ No |
| Original file needed | โ Yes | โ No | โ Yes |
Storage Example
Scenario: 10 notes with 100MB attachments each
Symlink mode: ~10KB (99.99% space saved!)
Copy mode: ~1GB (full duplication)
Reference mode: ~5KB (only paths stored)
When to Use Each Mode
๐ Symlink (Default)
- โ Files you're actively working on
- โ Large files/folders (videos, datasets, projects)
- โ Files on same filesystem
- โ When you want to save space
- โ Files on removable drives (might disconnect)
๐ Copy
- โ Creating backups/snapshots
- โ Files you might delete later
- โ Files on removable drives
- โ When you need version history
- โ Very large files (wastes space)
๐ Reference
- โ Very large files (>1GB)
- โ Files on external/network drives
- โ When you just need to remember location
- โ Files you won't delete
- โ If you need quick file access
๐ Troubleshooting
Database Locked Error
If you encounter database locked errors:
# WNote automatically handles this with retry logic, but you can manually clean up
rm ~/.config/wnote/notes.db-wal
rm ~/.config/wnote/notes.db-shm
Attachments Not Opening
Ensure you have the correct file opener configured:
# Linux
wnote config # Check "file_opener": "xdg-open"
# macOS
# Set "file_opener": "open" in config
# Windows
# Set "file_opener": "start" in config
Broken Symlinks
If you see "โ Missing" for attachments:
# This means the original file was moved or deleted
# To find broken symlinks:
wnote show <note_id> # Look for "Missing" status
# Remove broken attachment:
wnote deattach <note_id> --list
wnote deattach <note_id> -a <attachment_id>
# Original file was moved? Re-attach it:
wnote attach <note_id> /new/path/to/file
Permission Denied on Symlink Creation
On some systems, symlink creation requires special permissions:
# Linux: Usually no issue
# Windows: May need admin rights or Developer Mode enabled
# Solution: Use copy mode instead
wnote attach 1 file.txt --mode copy
Editor Not Working
Set your preferred editor:
export EDITOR=vim # Add to ~/.bashrc or ~/.zshrc
# or edit config.json: "editor": "vim"
๐ Quick Reference
Most Used Commands
# Create & View
wnote add "Title" -c "Content" -t "tag1,tag2" # Create note
wnote show # List all notes
wnote show 1 # View note #1
wnote search "keyword" # Search notes
# Edit & Update
wnote edit 1 # Edit content
wnote update 1 --title "New Title" # Update title
wnote update 1 --tags "new,tags" # Update tags
wnote update 1 --archive # Archive note
# Attachments (NEW in v0.6.1)
wnote attach 1 file.pdf # Symlink (default)
wnote attach 1 file.pdf --mode copy # Copy file
wnote attach 1 file.pdf --mode reference # Path only
wnote deattach 1 --list # List attachments
wnote deattach 1 -a 2 # Remove attachment
# Organization
wnote tags # List all tags
wnote color work blue # Set tag color
wnote stats # View statistics
# Reminders
wnote reminder 1 "2025-12-31 14:30" "Deadline" # Add reminder
wnote reminders # View reminders
wnote reminders --complete 1 # Mark complete
# Backup & Export
wnote backup # Create backup
wnote export 1 --format markdown # Export to MD
wnote restore backup_20250315_120000 # Restore backup
# Delete
wnote delete 1 # Archive (soft delete)
wnote delete 1 --permanent # Permanent delete
Keyboard Shortcuts & Tips
# Use TAB for autocompletion (if supported by your shell)
# Quick note creation
wnote add "Quick note" -c "$(xclip -o)" # From clipboard
# Pipe content
echo "Note content" | wnote add "Title" -c -
# Editor shortcuts (when editing notes)
# Ctrl+X (nano), :wq (vim), Ctrl+O+Enter (most editors)
# View help for any command
wnote <command> --help
File Locations
~/.config/wnote/
โโโ notes.db # SQLite database
โโโ config.json # Configuration
โโโ attachments/ # Symlinks and copied files
โโโ backups/ # Database backups
โโโ templates/ # Note templates
โโโ archive/ # Archived exports
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
Contribution Guidelines
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Code Style
- Follow PEP 8 guidelines
- Use type hints where appropriate
- Add docstrings to functions and classes
- Write tests for new features
- Format code with
blackandisort
Areas for Contribution
- ๐ Bug fixes and improvements
- โจ New features (templates, plugins, integrations)
- ๐ Documentation improvements
- ๐ Translations (i18n support)
- ๐จ UI/UX enhancements
- ๐งช Test coverage expansion
- ๐ Performance optimizations
๐ What's New in v0.6.1
๐ Symlink Support (Major Feature)
WNote now supports three attachment modes for maximum flexibility:
- Symlink (Default) - Creates symbolic links, saves 99% disk space
- Copy - Old behavior, copies files for safety
- Reference - Only saves path, no storage overhead
# Symlink mode (new default)
wnote attach 1 large_file.mp4 # <0.1s, saves space
# Copy mode (old behavior)
wnote attach 1 important.pdf --mode copy
# Reference mode (path only)
wnote attach 1 /external/dataset.csv --mode reference
๐ก๏ธ Critical Bug Fixes
- Fixed: Permanent delete now properly removes attachments from disk
- Fixed: Original files are never deleted (only links/copies removed)
- Fixed: Help text formatting for better readability
๐ Performance Improvements
- 20-300x faster attachment operations
- 99% disk space savings with symlink mode
- Better database error handling with retry logic
๐จ UI/UX Improvements
- Mode indicators in attachment listings (๐ ๐ ๐)
- Better help text formatting with examples
- Broken symlink detection (shows "โ Missing")
- Improved error messages
๐ Migrating from v0.6.0 to v0.6.1
Good news: Migration is automatic! Just update and run.
# Update WNote
pip install --upgrade wnote
# Run any command to trigger auto-migration
wnote show
# Your existing attachments will be marked as 'copy' mode
# New attachments will default to 'symlink' mode
No data loss - all existing notes and attachments remain intact!
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- Click - For the excellent CLI framework
- Rich - For beautiful terminal formatting
- All contributors and users of WNote
๐ Links
- GitHub: https://github.com/imnotnahn/wnote
- PyPI: https://pypi.org/project/wnote/
- Issues: https://github.com/imnotnahn/wnote/issues
- Changelog: CHANGELOG.md
๐ Project Stats
Made with โค๏ธ by imnahn
If you find WNote useful, please consider giving it a star โญ on GitHub!
_ _ _ _ _
| | | | | \ | | | |
| | | | | \| | ___ | |_ ___
| |/\| | | . ` |/ _ \| __/ _ \
\ /\ / | |\ | (_) | || __/
\/ \/ |_| \_|\___/ \__\___|
Terminal Note Taking, Perfected.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wnote-0.6.1.tar.gz.
File metadata
- Download URL: wnote-0.6.1.tar.gz
- Upload date:
- Size: 54.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64d4e9fe21b2209e2f58dc199386e1a4d43b9eab68135e567d7403ce97e2b15d
|
|
| MD5 |
9bceb849d52f8a5740dcf92490f0dcaa
|
|
| BLAKE2b-256 |
4b8ce17b50fbaebdf6054b25dd7dacf8d00fff05dd9502f64cd657e87819817b
|
File details
Details for the file wnote-0.6.1-py3-none-any.whl.
File metadata
- Download URL: wnote-0.6.1-py3-none-any.whl
- Upload date:
- Size: 45.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0a446f3e260c6288e005711e02786f0efcdaba93f7ddb30a446467be22b58bd
|
|
| MD5 |
15b12845a258b3a380d8bfb2eff5e627
|
|
| BLAKE2b-256 |
7f6550af899687086f903549b35bddc614d1142f47e14b4f175ad838b20e72a7
|