Skip to main content

libcuj · cuj as a Python library

cujn. Clever Use of Jots — is a plain-text PKM engine: one-line captures, inline Jot Syntax annotations (tags, hierarchical categories, labeled references, todos with due dates), a content-addressed fact store underneath, and importers for Evernote (.enex) and Obsidian vaults. Your notes stay plain text; the engine makes them answer questions.

This package (pip install libcuj) binds cuj into Python as import cuj — the library only. The cuj command-line tool is its sibling distribution: pip install cuj (prebuilt binary) or cargo install cuj (from source). What the first release exposes is the vault's query surface — the library twin of the cuj q command, running Quarb over the vault in-process:

import cuj

# The open todo list, due dates as data.
cuj.q("//*<todo && open> | rec(::description, ::due)")
# [{'description': 'buy primus spares', 'due': None},
#  {'description': 'renew NZ transit visas',
#   'due': datetime.datetime(2026, 6, 15, ...)}, ...]

# Who cites note 3 - and who contradicts it.
cuj.q("/default/3<-cites::summary")
cuj.q("/default/3<-contradicts::summary")

# Notes sharing a tag with note 14 but not linked to it.
cuj.q("/default/14 . <-tagged->tagged"
      "[::::id != (1)::::id][!--*[::::id = (1)::::id]]::summary")

Node results return as cuj's own display strings (--default--12, ///wiki/note.md, ..tag); value results as typed Python values — int, float, tz-aware datetime, timedelta, dicts for records, quantities as their written face ("204.808 kB").

Keyword arguments mirror the CLI's flags:

cuj.q(expr,
      config="~/vaults/field/config.toml",  # else CUJ_CONFIG / ~/.cuj
      profile="all",                        # widen across profiles
      at="~8",                              # a historical state
      now="2026-07-31T12:00:00Z")           # pin now() - reproducible

Errors raise ValueError with cuj's or the engine's message.

The vault itself is made with the cuj CLI (pip install cuj or cargo install cuj) — capture, import, label, promote; reading is the engine's job, actions are the tool's. The data model and protocol are documented from cuj.net; the query language in the Quarb spec.

License: MIT OR Apache-2.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

libcuj-0.3.2.tar.gz (159.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

libcuj-0.3.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

libcuj-0.3.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

libcuj-0.3.2-cp38-abi3-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

libcuj-0.3.2-cp38-abi3-macosx_10_12_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file libcuj-0.3.2.tar.gz.

File metadata

  • Download URL: libcuj-0.3.2.tar.gz
  • Upload date:
  • Size: 159.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for libcuj-0.3.2.tar.gz
Algorithm Hash digest
SHA256 070fbd03b0ca5b43da61d170173ea4f372b74519522fc4e73a7e3486bdc11798
MD5 e66b96838aee6e7b943a1380cf925e54
BLAKE2b-256 937e6e2f1db00348567cd56c5f9c30836d3385581069ac81f89786149caf7f6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for libcuj-0.3.2.tar.gz:

Publisher: publish-pypi.yml on deyanovich/cuj-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file libcuj-0.3.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libcuj-0.3.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 962bb60f8f97b3bbc799bce41f1797e70247ccfd2618d92f924e55ce223a6e16
MD5 22f2ea209b76a8d808f9813da48a63a6
BLAKE2b-256 a0481e22626ab544494057234968622e8f532d8bff1ada4158458355eef3d6d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for libcuj-0.3.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on deyanovich/cuj-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file libcuj-0.3.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for libcuj-0.3.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2c6cd9039f4da12dafeffb56815b83038fb33873ebca70a6836db5a724111c14
MD5 d2621fdab9c4598f033ecab337f0b13c
BLAKE2b-256 ba609578fdae8f3a92bb813aabdccfb2a8d79b618d98318615fd6abee4751ae9

See more details on using hashes here.

Provenance

The following attestation bundles were made for libcuj-0.3.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on deyanovich/cuj-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file libcuj-0.3.2-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for libcuj-0.3.2-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f057b3ad7e7677e2d800a5a21bb49f0ac0849079025bafe8a95ef55e59447fc0
MD5 858b58fcc309e08807cd3e3cdafa802e
BLAKE2b-256 c6d370b7a0b56f681381897de590b6c1d542cce236179919bdbd05f2b770fb8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for libcuj-0.3.2-cp38-abi3-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on deyanovich/cuj-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file libcuj-0.3.2-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for libcuj-0.3.2-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 26496a9c3242e6bc10201d6f4d3e5ca60c924485dcf8e195ed6f801c25c78eea
MD5 e2ebe37af7b56c72b7ab588075b98c0c
BLAKE2b-256 f088b5c64e4d303c018f65dcb2fb45a69b9ed088f39d766bbd00fac560edd61b

See more details on using hashes here.

Provenance

The following attestation bundles were made for libcuj-0.3.2-cp38-abi3-macosx_10_12_x86_64.whl:

Publisher: publish-pypi.yml on deyanovich/cuj-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.2 This release

5 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page