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
abstractnotecommand 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(theclose-assertionbranch): closes a superseded fact in place. AbstractNote's first release waits for the AbstractMemory release that contains it. - The AbstractGateway integration (the
abstractnote-seambranch): 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, andabstractnote.gatewayrefuses 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
| Client | Where | What it does |
|---|---|---|
| Web app | web/ (@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 app | watch/apple/ |
Note, Ask, Today, Settings; watch-only, watchOS 26 or later |
| Command line | abstractnote |
Headless 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
- docs/README.md: the documentation index
- Getting started: a headless notebook in five minutes, then the gateway path
- Architecture: components, data plane, request lifecycles
- API: runs API usage, note read API, note tools, Python API, CLI
- Data model, Cognition, Remembering, Clients, Importers
- FAQ and Troubleshooting
- Contributing, Security, Changelog, Acknowledgements
License
MIT. See LICENSE.
Metadata
Release files for abstractnote 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| abstractnote-0.1.0.tar.gz | 237.7 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| abstractnote-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 456.4 kB
Release files / abstractnote-0.1.0.tar.gz
| Download URL | abstractnote-0.1.0.tar.gz |
|---|---|
| Size | 237.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
047b7a3e4294c353e5ae2efe352621a8734e9a6613e2b8305653eab457bc7399
|
|
BLAKE2b-256 checksum How to use checksums |
1cbab837e6762535404390ca961b597644902eeaff346290024272d7ca67d46a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logRelease files / abstractnote-0.1.0-py3-none-any.whl
| Download URL | abstractnote-0.1.0-py3-none-any.whl |
|---|---|
| Size | 218.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
129bda78df33ac77befb91484afaf055a7a8fe9aea31505b98f2165c2edcbd84
|
|
BLAKE2b-256 checksum How to use checksums |
782b20ecc32cf7eb6a5328325e21c7df39662021421340b1b95530d2ae9cdf9e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logSecurity for abstractnote 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for abstractnote-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.