6 releases ()
Uses new Rust 2024
| 1.0.0-alpha.2 | Mar 25, 2025 |
|---|---|
| 1.0.0-alpha.0 | Mar 20, 2025 |
| 0.1.0 | Mar 20, 2025 |
| 0.1.0-alpha.2 | Mar 9, 2025 |
| 0.1.0-alpha.0 | Mar 8, 2025 |
#1122 in Database interfaces
294 downloads per month
75KB
1.5K
SLoC
notera with AI features (alpha) README out of date
Check out the stable version here
A powerful and lightweight CLI-based note-taking app built with Rust.
👣 Features
- 📋 Create, edit, delete, and view notes easily from your terminal using your favorite CLI editor (e.g., Vim (default), Nvim, Nano).
- 🤖 Summarize notes or lecture recordings with AI.
- 🕒 Timestamps for notes to track when they were created or updated.
- 🗂️ Export notes, summaries and transcripts to
.txtor.mdfiles for external use. - 👌 Includes a robust initialization and cleanup mechanism for managing configurations and data.
- 📦 Notes are safely stored using an SQLite database.
📦 Installation
Please see INSTALL.md for installation instructions and prerequisite information.
🏃♂️ Quick Start
Before running any commands, initialize notera for the first time:
notera init
This command will set up the required configurations (including storage paths) and initialize the SQLite database.
To check the available commands, run:
notera --help
💻 Supported CLI Actions
-
📝 Take notes:
-
new <TITLE>: Add a new note. -
view <FLAGS>: View all or specific notes- Options:
--all: List all notes in database--note <TITLE>: View the title, content and timestamp of a specific note
- Options:
-
edit <TITLE>: Edit an existing note. -
delete <FLAGS>: Delete all or a specific note- Options:
--note <TITLE>: Delete a specific note--all: Delete all notes
- Options:
-
-
🗂️ Exports and Imports:
-
export <FLAGS> <ARGS>- Options:
--all: Export all notes into a single.mdor.txtfile--note <TITLE>: Export a specific note into a.mdor.txtfile
- Options:
-
import <FLAGS> <ARGS>- Options:
--dir <DIR_PATH>: Import all qualifying notes of a directory into notera--note <FILE_PATH>: Import a specific note into notera
- Options:
-
-
🤖 AI use:
summarize <FLAGS> <ARGS>- Options:
--note <TITLE>: Summarize a specificnoteranote--file <FILE_PATH>: Summarize a.mdor.txtfile
- Options:
transcribe <FLAGS>- Options:
--audio <AUDIO_FILE_PATH>: transcribe an audio file
- Options:
lecture <FLAGS>- Options:
--audio <AUDIO_FILE_PATH>: transcribe and summarize an audio file (targeted at lectures)
- Options:
-
Setup:
-
config: Open and modify the app's configuration settings.- Default config created after running
notera init:editor = "nvim" note_db_directory = "/User/{user}/.local/share/notera" export_path = "/User/{user}/Documents/notera" export_format = "md" # Possible values: # Editor: vim, nano, emacs, nvim, etc. (must be cli-based editor) # Note db directory: Should be kept default unless you know what you're doing. # Export path: Feel free to change, just make sure of a valid path. # IMPORTANT: Choose an export format. 'md' or 'txt'. md tends to be better for exports
- Default config created after running
-
init: Initializenoterafor first-time use, setting up configurations and database storage. -
help: Show the default help message.
-
-
DANGER ZONE:
clean: Delete all temporary and persistentnoteradata (export files, including the SQLite database and temporary files.)
🛠 Configuration
The application automatically stores user preferences in a config.toml file for easier management. Open or modify it with the command:
notera config
Configuration options include the following:
- Editor used: The text editor used to create and edit notes (e.g., Vim).
- Database Directory: Directory where the database is stored. (Should remain as default)
noteraFiles Path: The directory location where exported files are saved.- Export Format: The format in which exports, summaries, and transcripts are saved.
👷 Built With
- Rust – for fast and safe application development.
- serde & toml-rs – data serialization and configuration parsing.
- chrono – handling and formatting dates/timestamps.
- rusqlite – lightweight SQLite database library integration.
- clap – parse and handle CLI arguments effortlessly.
🔮 Future Plans
- Better help message and optimizations for first release
- More Robust Error Handling
🪪 License
This project is open-source and available under the MIT License.
Dependencies
~38MB
~686K SLoC