Catalog PyPI
PACKAGE EXPLORERView in registry

abstractnote

PyPI

AbstractNote: one endpoint for your notes; a temporal semantic knowledge graph of your life, built on AbstractGateway, AbstractRuntime and AbstractMemory

abstractframeworkknowledge-graphmemorynotestemporal
Versions collected1
Direct dependencies9From release 0.1.0
Last observed20 Oct, 17:42 UTC

README

Version 0.1.0 documentation

AbstractNote

One endpoint for everything you want to remember. Send a sentence, a document, a photo, a recording, a log. AbstractNote files it with its time, place and provenance, links it to what you already know, and grows a temporal semantic knowledge graph of your ideas, projects, people and decisions. You search it by effort (quick, standard, deep) and revisit it through time: what you knew, when you learned it, and how your view changed.

AbstractNote is part of the AbstractFramework. It runs on AbstractGateway (sign-in, one runtime and one notebook per user, app hosting), AbstractRuntime and AbstractFlow (the capture and understanding workflows), AbstractMemory (temporal facts) and AbstractCore (models, structured output, embeddings).

Status: version 0.1.0, in development. It is not published on PyPI or npm yet; you install it from source (see Install).

What you get

  • Capture anywhere: the web app, the Apple Watch app, the abstractnote command line, and agents. Attachments are de-duplicated by content; a retried send never saves a note twice.
  • Automatic filing: a small fast model gives each note a title, a kind, topics, an urgency and its language, next to the time and place it was made.
  • Self-organising knowledge: a model resolves people, projects and ideas against candidates that exact lookups, full-text and vectors produce. Every change is a revision you can replay, and every claim keeps the note it came from.
  • Remember by cue and effort: quick (no model, under a second), standard (one synthesis with citations), deep (a background dossier). Then-versus-now for any person, project, idea or link.
  • Reflection: open loops, contradictions, things that went quiet and connections you may have missed, surfaced as insights.
  • Imports: Claude Code sessions, an agora hub database, Markdown trees and plain files, with their original dates and provenance.

Install

AbstractNote needs Python 3.10 or later and the framework packages next to it. Until the packages are published, install everything from source checkouts:

python3 -m venv .venv
.venv/bin/pip install -e ../abstractsemantics -e ../abstractcore -e ../abstractruntime \
                      -e ../abstractmemory     # a checkout that has close_assertion, see below
.venv/bin/pip install -e .
.venv/bin/abstractnote --help

Two framework changes that AbstractNote relies on are not in released packages yet:

  • AbstractMemory close_assertion (the close-assertion branch): closes a superseded fact in place. AbstractNote's first release waits for the AbstractMemory release that contains it.
  • The AbstractGateway integration (the abstractnote-seam branch): binds the note tools to each user's notebook, serves the note read API and lists the Note app. You need it only for the gateway path; the headless notebook works without a gateway. The gateway must carry this seam (abstractgateway.abstractnote_seam; the first gateway release with it is named at AbstractNote's release): the [gateway] extra alone does not guarantee it, and abstractnote.gateway refuses to import into a gateway without it, with one sentence.

To run models locally on Apple silicon, add pip install "abstractcore[apple]" (MLX).

Quick start

A headless notebook on this machine, no gateway and no model:

abstractnote capture "Met Dana about the LUT budget; she wants the Pareto by Friday." --notebook ~/notes
abstractnote search "LUT budget" --notebook ~/notes
abstractnote status --notebook ~/notes

Let a model understand the queued notes (entities, claims, tasks), then ask a question:

abstractnote process --local --notebook ~/notes --provider mlx --model mlx-community/Qwen3.6-35B-A3B-4bit
abstractnote search "What does Dana want?" --effort standard --notebook ~/notes \
    --provider mlx --model mlx-community/Qwen3.6-35B-A3B-4bit

A notebook is pinned to the embedding model that created it. Choose it on the first command (--embed-base-url and --embed-model, for example a local LM Studio embedding model) and give the same flags every time, or start with the built-in offline embedder and change later with abstractnote rebuild --reembed. See docs/getting-started.md.

Through a gateway, clients start the note-capture and note-recall flows with the gateway's runs API, and POST /api/gateway/note/processor/ensure creates the per-user processor that understands notes in the background. The getting-started guide walks through a private scratch gateway, the web app and the watch app.

Clients

ClientWhereWhat it does
Web appweb/ (@abstractframework/note)Capture (a chat with attachments), Graph (entities and links through time), Remember (since you last looked, cue cards, ask by effort, then and now), Settings
Apple Watch appwatch/apple/Note, Ask, Today, Settings; watch-only, watchOS 26 or later
Command lineabstractnoteHeadless capture, search, processing, imports, rebuild, JSON output for scripts and agents

An iPhone app is planned (phone/iphone/). Agents use the same note tools and flows, with the effort level as a parameter.

Documentation

License

MIT. See LICENSE.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.019 Oct 20269

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
lpalbou/abstractnote

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 17:42 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:6f3957997b92836297fd08b03102df68bb32d0662c1221495d41e8147f683860