This release is the world: the Python package scriptt. The harness that grows the world as you talk to it is a different package, world-harness. It is not part of this release.
Today, AI work does not build up. What you teach an AI model about your domain stays in a chat, a prompt or the weights of a vendor. Nobody can read it, correct it, own it or build on it. A world keeps that knowledge as an asset that you own.
1 statement with its source and its dates.
The fields of 1 kind of fact, as a Python class.
Python functions in your code that read a view of the facts and give an answer.
The code keeps 3 tasks and marks 1 task done. Then a function gives the open tasks on a date.
Python 3.14
from scriptt.world import Fact, Facts, Key, World class Task(Fact): id: Key[str] title: str done: bool = False todo = World.new(Task) for id, title in [("t1", "Buy milk"), ("t2", "Send the report"), ("t3", "Book a room")]: todo.add(Task(id=id, title=title), source="me", true_from="2 Nov 2026", known="2 Nov 2026 09:00") report = todo.on("2 Nov 2026").one(Task, id="t2") todo.add(report.but(done=True), source="me", true_from="3 Nov 2026", known="4 Nov 2026 10:00") def open_tasks(view: World) -> Facts[Task]: return view.facts(Task).where(lambda task: not task.done) print(open_tasks(todo.on("4 Nov 2026")))
Output
id title done t1 Buy milk no t3 Book a room no
The report is done from 3 Nov. Thus on 4 Nov the world has 2 open tasks.
Each fact has 2 dates. The true-from date is when the fact became true. The known time is when you got it. The log never changes an entry. Thus you can see an old answer again and find the cause of a change.
| Question | Call | Report done? |
|---|---|---|
| Was the report done on 3 Nov, with all that you know now? | todo.on("3 Nov 2026") | yes |
| What did you know at 18:00 on 3 Nov? | todo.on("3 Nov 2026").known("3 Nov 2026 18:00") | no |
scriptt needs Python 3.14. It is not on PyPI yet. The docs show each call with its real output.