Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Recall

A local-first note organizer. Dump raw notes, transcripts, or thoughts — Ollama structures them into a title, summary, and tags, and links them to related notes. Everything runs on your machine by default: Bun + Express backend, SQLite storage, Ollama for the AI, and a plain HTML/CSS/JS frontend. Ollama Cloud is also supported when configured with an API key.

Recall preview

Prerequisites

  • Bun installed
  • Ollama installed and running (ollama serve)
  • A model pulled, e.g. ollama pull llama3.1

Setup

bun install
bun run start

Then open http://localhost:8000

For auto-restart on file changes during development:

bun run dev

To check or apply formatting:

bun run format:check
bun run format

Logging

Winston writes timestamped level, message, and optional metadata to the console and to logs/info.log, logs/warn.log, and logs/error.log. Log files are generated at runtime and ignored by Git.

Project structure

public/        Browser UI: HTML, CSS, and client-side JavaScript
src/config/    Environment configuration
src/database/  SQLite connection and schema initialization
src/repositories/  Database query modules
src/routes/    HTTP route registration
src/controllers/  Request and response handling
src/services/  Business workflows and Ollama integration
src/middleware/ Express middleware and error handling
src/utils/     Shared utility functions
recall.sqlite  Local note database (created automatically)

Config (optional)

Copy .env.example to .env to configure the server locally. .env is ignored by Git so local settings stay on your machine.

Environment variables:

  • PORT — server port (default 8000)
  • OLLAMA_MODElocal or cloud (default local)
  • OLLAMA_URL — Ollama API base URL (default http://localhost:11434)
  • OLLAMA_CLOUD_URL — direct cloud API URL (default https://ollama.com)
  • OLLAMA_API_KEY — required when OLLAMA_MODE=cloud
  • OLLAMA_MODEL — model name to use (default llama3.1 locally or gpt-oss:120b in cloud mode)

Example:

OLLAMA_MODEL=qwen2.5 bun run start

For direct Ollama Cloud access:

OLLAMA_MODE=cloud OLLAMA_API_KEY=your_api_key bun run start

How it works

  1. You paste raw text into the sidebar and hit "Save & Organize."
  2. The backend sends it to Ollama asking for { title, summary, tags } as JSON.
  3. The backend asks Ollama (with a tag-overlap fallback) which existing notes are related to the new one.
  4. Everything is saved to a local recall.sqlite file via bun:sqlite.
  5. The frontend shows a note list on the left, full detail (summary, tags, original text, related notes) on the right.

Next steps to extend it

  • Swap the related-notes heuristic for real embeddings (ollama pull nomic-embed-text) and cosine similarity instead of asking the LLM to eyeball relatedness.
  • Add note editing (currently create + delete only).
  • Stream the Ollama response so the UI shows tokens as they arrive.
  • Add a "daily digest" that asks Ollama to summarize the week's notes.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages