#config #notes #date #notera

app notera

notera is an open source minimal note taking tool

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

Download history 287/week @ 2025-03-05 56/week @ 2025-03-12 335/week @ 2025-03-19 102/week @ 2025-03-26 2/week @ 2025-04-02

525 downloads per month

MIT license

75KB
1.5K SLoC

notera with AI features (alpha) README out of date

Check out the stable version here

GitHub Actions Workflow Status Crates.io Version GitHub License

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
    • 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
  • 🗂️ 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
    • 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
  • 🤖 AI use:

    • summarize <FLAGS> <ARGS>
      • Options:
        • --note <TITLE>: Summarize a specific notera note
        • --file <FILE_PATH>: Summarize a .md or .txt file
    • transcribe <FLAGS>
      • Options:
        • --audio <AUDIO_FILE_PATH>: transcribe an audio file
    • lecture <FLAGS>
      • Options:
        • --audio <AUDIO_FILE_PATH>: transcribe and summarize an audio file (targeted at lectures)
  • 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
        
    • init: Initialize notera for first-time use, setting up configurations and database storage.

    • help: Show the default help message.

  • DANGER ZONE:

    • clean: Delete all temporary and persistent notera 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