Thanks to visit codestin.com
Credit goes to github.com

Skip to content

mkaz/jotit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jotit - simple note taking

A command-line tool to quickly take notes, then use AI for search, and summaries.

Overview

One of the problems with taking notes is always having to think about the file you're creating, where you're going to put it, what to name it, folder structures, etc. All these things get in the way of taking quick notes.

So I thought can AI help eliminate this friction?

Goals

  • Quick Note Capture: Add notes instantly from the command line
  • Semantic Search: Find notes using natural language, not just keywords
  • AI Summarization: Get intelligent summaries of your notes over time
  • Background Processing: Embeddings and AI features used when needed
  • SQLite-based: Reliable local storage with vector search capabilities

Installation

Not on Pypi yet, so: python -m pip install git+https://github.com/mkaz/jotit

  • Requires Python 3.10 or higher

Install for Development

git clone https://github.com/mkaz/jotit.git
cd jotit
uv pip install .

Usage

Set up your API key (optional)

For AI-powered search and summaries, set your Anthropic API key:

export ANTHROPIC_API_KEY="your-api-key-here"

Add notes

# Simple note
jotit "Had a great idea about improving user onboarding"

# With a tag
jotit "Met with the design team about the new homepage" --tag "meeting"

# From stdin
git log --since 2025-10-31 | jotit

List notes

# List notes by recency
jotit list

# List notes from a specific date
jotit list --date 2024-01-15
jotit list --after 2024-01-01
jotit list --before 2024-12-31

# List notes by tag
jotit list --tag "work"

# Show all available tags
jotit tags

Search your notes

Requires AI API key set.

# Semantic search - finds related concepts even if exact words don't match
jotit search "design discussions"

# Semantic search scoped to a tag
jotit search "roadmap updates" --tag "product"

Summarize Notes

Requires AI API key set.

# Get a summary of recent notes (defaults to last 5 days)
jotit summary
jotit summary [week|month]
jotit summary --days 30          # Last 30 days
jotit summary --after 2024-01-01 # Since specific date
jotit summary --before 2024-02-01 # Up to but not including Feb 1

Background Processes

To enable fast note creation, the embeddings are moved to background jobs which can be called manually using worker or will be called when a task requires it, such as search or summary.

jotit worker                     # Process all pending jobs
jotit worker --batch-size 10     # Limit number of jobs processed

Note Management

jotit edit 123                   # Edit note 123
jotit delete 456                 # Delete note 456
jotit import /path/to/notes/     # Bulk import notes from directory

Database Management

# Show database statistics
jotit stats

Configuration

Jotit can be configured via environment variables or a TOML configuration file located at ~/.config/jotit/jotit.toml. See jotit-sample.toml for a complete example with all available options.

Environment Variables

  • ANTHROPIC_API_KEY - Required for AI-powered summaries
  • JOTIT_DB - Database file location (default: ./jotit.db)

Configuration File

Create ~/.config/jotit/jotit.toml to customize default behavior:

[database]
# Default database path - uses ~/.config/jotit/jotit.db if not overridden by JOTIT_DB env var
path = "~/.config/jotit/jotit.db"

[ai]
# Default AI model for summarization and question answering
model = "claude-sonnet-4-5-20250929"

[embedding]
# Embedding model for semantic search
model = "all-MiniLM-L6-v2"

[search]
# Default similarity threshold for search results (0.0-1.0)
# Higher values return only more relevant results, lower values are more inclusive
# Set to 0.0 to disable threshold filtering
threshold = 0.40

# Enable hybrid search by default
# Hybrid search boosts results that contain exact keyword matches from your query
# This improves precision when searching for specific terms or phrases
hybrid = true

Development

Setup Development Environment

git clone https://github.com/mkaz/jotit.git
cd jotit

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install in development mode
just install-dev

Development Commands

Jotit uses just for task automation:

just install      # Install package
just install-dev  # Install in editable mode for development
just test         # Run test suite
just lint         # Check code with ruff linter
just lint-fix     # Auto-fix linting issues
just format       # Format code with ruff
just type-check   # Run type checking with mypy
just check        # Run all quality checks
just clean        # Remove build artifacts

Running Tests

# Run all tests
just test

# Run specific test file
pytest tests/test_db.py

# Run with coverage
pytest --cov=jotit --cov-report=html

License

MIT License - see LICENSE file for details.

Author

Created by Marcus Kazmierczak


Jotit - jot it down, find it later

About

A simple command-line tool to jot notes

Resources

License

Stars

Watchers

Forks