Deutsch · Español · 简体中文 · 日本語 · Русский
llm-note is a local-first note engine for LLM agents. It gives agents and humans a small SQLite thought log plus plain-text notebook inboxes without hosted services, accounts, or external runtime dependencies.
The project was extracted from BACH's Notizblock and Denkarium patterns, then cleaned into a standalone Python package for public use.
Use llm-note when you need a small, auditable memory layer for agents, coding assistants, research workflows, or private notebooks:
| Need | Use llm-note for |
|---|---|
| Agent memory | Record decisions, observations, and follow-up markers in local SQLite. |
| Notebook inbox | Keep plain-text notes that can be reviewed, transferred, or archived later. |
| Privacy-first workflow | Avoid hosted note services, accounts, embeddings, and background network calls. |
| Skill packaging | Ship a reusable note-taking skill beside the Python package. |
- Store structured notes, logbook entries, categories, mood values, and promotion markers in SQLite.
- Keep portable plain-text notebooks for quick inbox notes and topic notebooks.
- Search notes from Python or the CLI.
- Start brainstorm entries that can later become tasks, wiki pages, or issues in a host system.
- Use six bundled message locales: German, English, Spanish, Simplified Chinese, Japanese, and Russian.
- Ship an agent skill that explains when and how to use the note workflow.
From a checkout:
git clone https://github.com/doc-bricks/llm-note.git
cd llm-note
pip install -e .Runtime dependency note: llm-note uses only the Python standard library.
llm-note write "Keep this repo privacy-clean before release" --cat release
llm-note read --limit 5
llm-note search privacy
llm-note brainstorm "next release"
llm-note statsUse a custom database or locale:
llm-note --db data/notes.db --locale de write "Öffentliche README prüfen" --cat releasefrom llm_note import FileNotebookStore, NoteStore
notes = NoteStore("data/notes.db")
entry = notes.write("Investigate release checklist gaps", category="release")
print(notes.search("checklist"))
notes.promote(entry.id, "task")
notebooks = FileNotebookStore("notebooks")
notebooks.write("Buy milk\n#NB: Shopping List")
notebooks.transfer_marked_entries()The standalone skill lives in skills/llm-note/SKILL.md. The raw BACH export that seeded it is preserved under references/bach-export/ for provenance.
llm-note is intentionally smaller than full knowledge-base systems such as Obsidian, Joplin, NotebookLM, vector databases, or MCP notebook servers. It is a local Python package for agent notes, CLI notebooks, and reproducible logbooks that should stay inspectable in Git and easy to embed in another tool.
Useful search phrases for this repository include local-first LLM notes, SQLite note store for agents, agent notebook CLI, private AI notebook, LLM memory logbook, and BACH Notizblock extraction.
llm_note/ Python package
tests/ Pytest suite
skills/llm-note/ Agent skill
plugin/ Lightweight plugin metadata
references/bach-export/ Raw BACH skill export
references/bach-source/ Source snapshots used during extraction
docs/ Additional documentation
assets/banner.svg Repository banner
llm-note never talks to a network service by itself. Databases and notebook folders are local files, and .gitignore excludes them by default. Public releases should commit code, docs, tests, and skill metadata only.
MIT - Copyright 2026 Lukas Geiger