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 |
#122 in Database interfaces
525 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
.txt
or.md
files 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.md
or.txt
file--note <TITLE>
: Export a specific note into a.md
or.txt
file
- 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 specificnotera
note--file <FILE_PATH>
: Summarize a.md
or.txt
file
- 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
: Initializenotera
for first-time use, setting up configurations and database storage. -
help
: Show the default help message.
-
-
DANGER ZONE:
clean
: Delete all temporary and persistentnotera
data (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)
notera
Files 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
~32–44MB
~725K SLoC