Skip to main content

Witful

Witful is the Python library and CLI for Identity: a user-owned record of lessons, skills, decisions, tools, and project experience. It validates sources, builds searchable indexes, generates evidence figures, and supports explicit sharing through optional integrations.

Table of contents

Install

Requires Python 3.12+ on macOS or Linux, excluding Python 3.14.1.

pip install witful
witful --help

Use witful init ./my-collection to create an empty collection when you need a new one. Keep existing collections in place and pass --repo to the relevant commands. See CLI contracts and first run.

Optional extras are postgres for PostgreSQL and sapience for MCP transport. The Sapience adapter is under development in this checkout until the next release; use pip install '.[sapience]' here to try it. The core package does not install Sapience or its vector database.

Responsibilities

  • Validate the attrs/cattrs hierarchy and append-only journals.
  • Index lessons in SQLite or optional PostgreSQL.
  • Preserve concise decisions and source snapshots for reproducible replay.
  • Record observed applications, tool use, and project checkpoints.
  • Track explicit runtime provenance, reconcile pending tasks, and compare native evidence across instances.
  • Render plots from recorded evidence and explicitly export selected awareness figures.
  • Check publication inputs with the PII scanner and configurable deny terms.
  • Install and synchronize encrypted, signed private collections.
  • Isolate concurrent sleeves, sign backups, and reconcile their histories before closure.
  • Optionally project reviewed concepts into Sapience and save generated review proposals.

The package does not infer experience from installed dependencies or promote model summaries to reviewed lessons. Source journals remain owned by the collection.

Guides

Architecture and collection conventions, CLI, Sapience integration, awareness figures, private collection setup, multisleeving, observed instances, security, and development.

Hierarchy terminology

The hierarchy is Identity -> Discipline -> Skill -> Lesson -> Insight. An Insight is a concrete, reusable takeaway from a sourced Lesson. The Python type is Insight, and lessons and catalog annotations expose an insights tuple.

New catalogs use version 2 and the insights field. Version-1 catalogs with lemmas remain readable and serialize with their original spelling, preserving content-addressed snapshots and decision chains. To migrate a current catalog, change its version to 2 and rename each annotation's lemmas key to insights together. Keep concept IDs unchanged. Do not edit historical journals or snapshots.

Checkpoint comparisons retain their existing digest representation, so the rename alone does not count as learning. Current plots, CLI output, and MCP projections use Insight; existing projected memory IDs remain stable. Historical replay still requires acknowledgment of renderer changes before producing different plot bytes.

Metadata

Release files for witful 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for witful 0.3.0
File Size Uploaded
witful-0.3.0.tar.gz 143.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for witful 0.3.0
File Interpreter ABI Platform
witful-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 345.4 kB

Release files / witful-0.3.0.tar.gz

Download URL witful-0.3.0.tar.gz
Size 143.8 kB
Tags Source
SHA-256 checksum
How to use checksums
110da712e08285e14787c4d334b6e15be86e7bf36b189c67928619af84c18e57
BLAKE2b-256 checksum
How to use checksums
15b33c7d7d464a76032c44399fbffb589d61d8441660b766fe8c4c11e394cc39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.5.1 CPython/3.14.8 Linux/6.17.0-1022-azure

Release files / witful-0.3.0-py3-none-any.whl

Download URL witful-0.3.0-py3-none-any.whl
Size 201.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5a506347512cdb1d7326793432f24d0fd69f5411d8dd64094e608519e07fa227
BLAKE2b-256 checksum
How to use checksums
c5db351a1756a481c183784d511bdf293252caf8168dd9232ff01e3f200a8245
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.5.1 CPython/3.14.8 Linux/6.17.0-1022-azure

Release history Release notifications | RSS feed

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.3

2 release 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