nodestone
Document/code checks and layered team views
Bind saved analysis documents to concrete files with document-code-bind, then
use document-code-check to compare their current content against a pinned Git
commit. The map shows file changes and local code links, with director, manager,
team leader and team member presentation layers. See
usage and current boundaries.
Trace requirements from source to work
Use nodestone requirement-save requirement.json --expected-version 0 to link
a requirement to an exact quote in a saved blueprint brief or analysis field,
its acceptance criteria and executable work nodes. nodestone traceability
reports uncovered work, unlinked requirements and source/plan drift. Both are
available over MCP as requirement_save and traceability_report.
Tasks linked to stale requirements require review before lease claim/completion.
The map includes a Requirements and sources branch. See
the requirement format and review rules.
Cooperative agents and durable handoffs
nodestone task-lease claim next --owner agent-a atomically reserves the next
eligible plan task. Use renew, checkpoint, release and complete with the
returned token. Completion requires usage evidence references. Checkpoints retain
the summary, changed files, evidence and next action across restarts and takeovers.
See agent execution workflow for the full protocol,
recovery behavior and boundaries. All actions are also available through MCP
task_lease. This does not launch agents or lock source files.
Resume a project with an execution briefing
nodestone workflow (MCP: project_workflow) reads the current plan and returns
ready, active, waiting, blocked, completed, abandoned and review queues, along
with recorded unanswered questions, document draft states and a next action.
Waiting tasks include the names and current states of unmet prerequisites.
Only executable tasks linked to the saved blueprint enter these queues;
unreviewed auto-detected TODOs do not become an execution plan.
The map includes the same What to do now? branch with links back to the
original tasks and their acceptance conditions. The briefing is derived from
saved records on every call; it does not create a second editable task list.
Read it after resuming a session or changing task states. Re-read before starting
work: the view itself does not reserve tasks. Use task_lease to coordinate
cooperating agents. Dependency readiness does not grant execution permission.
Reported completion of every task leads to needs_acceptance, never automatic
product acceptance. Inconsistent prerequisite states lead to
needs_reconciliation. Open questions and draft documents remain visible even
when work can proceed; the briefing does not infer answers or approve documents.
Resume a project with an execution briefing
nodestone workflow (MCP: project_workflow) reads the current plan and returns
ready, active, waiting, blocked, completed, abandoned and review queues, along
with recorded unanswered questions, document draft states and a next action.
Waiting tasks include the names and current states of unmet prerequisites.
Only executable tasks linked to the saved blueprint enter these queues;
unreviewed auto-detected TODOs do not become an execution plan.
The map includes the same What to do now? branch with links back to the original tasks and their acceptance conditions. The briefing is derived from saved records on every call; it does not create a second editable task list. Read it after resuming a session or changing task states. Re-read before starting work: this view does not reserve tasks or prevent concurrent agents from taking the same task. Dependency readiness does not grant execution permission.
Reported completion of every task leads to needs_acceptance, never automatic
product acceptance. Inconsistent prerequisite states lead to
needs_reconciliation. Open questions and draft documents remain visible even
when work can proceed; the briefing does not infer answers or approve documents.
Repository navigation and main entry points: Repo rehberi.
nodestone/engine/project_map.html is a source template, not an exported map.
Open the latest_path returned by nodestone map to view a generated project map.
Save the project's mind map to disk
nodestone --project /path/to/project map exports recorded intent, work hierarchy,
dependencies, task states, decisions and analysis drafts to an interactive offline
HTML file. Its JSON response includes the absolute path. Open it in a browser to
search, navigate branches, read acceptance conditions or switch to a list view.
No CDN, server or network is needed. The same operation is available to AI clients
through the HTTP and stdio MCP tool project_map_export (no arguments).
Use nodestone map --open to export and open the correct file in your default
browser. Combine it with --watch to open once and keep refreshing the saved map.
If updating latest.html fails, --open opens the successfully saved snapshot.
If the browser cannot start, the export remains available at the printed path.
Default destination: <project>/.nodestone/maps/. With --storage, files go to
that memory directory under maps/. Each call atomically saves a new snapshot,
preserving previous exports, and refreshes maps/latest.html at a stable path.
The response includes latest_path and latest_updated. A failed latest-file
update is reported as a warning while the saved snapshot is kept. An unrelated
existing latest.html is never silently replaced.
nodestone map --watch keeps that file up to date while the command is running.
It polls every two seconds (--interval changes this), exports only after recorded
inputs change, and stops with Ctrl+C. No background service is installed. Reload
the browser page to see the latest file; the HTML is not a live editor. Concurrent
exporters serialize through a separate local lock database, not the event journal.
Projects without a blueprint export existing records and
show the missing plan. Saved discovery briefs, answers, their source quotes and
unanswered questions are included in a separate branch; an answer is not treated
as a resolved requirement. Legacy unreviewed TODOs remain a separate branch.
Large branches are paged, and search opens the matching record's page. Export
checks both the event revision and discovery content so a concurrent change is
reported for retry rather than silently mixing versions.
The current branch, selected record, page, zoom, view mode and quick filter are
kept in the URL fragment, so reloading latest.html preserves your place without
browser storage. Missing records fall back to an existing view with an explanation.
Quick filters show explicitly unanswered discovery questions / unknown draft
fields and tasks recorded as blocked. These are views of recorded data, not an
automatic claim that every unanswered business question has been discovered.
Search results include the parent path to distinguish similarly named records.
The HTML contains project content and draft citations in plain text; it is not encrypted storage. Arbitrary project files are not scanned. Task completion does not grant product acceptance.
Project memory for AI sessions. nodestone remembers your project across sessions — decisions, tasks, drift, and context — so an LLM doesn't have to re-learn it from scratch every time. A massiron.com product.
It's an event-sourced cognition store: everything lives on disk and comes back instantly, for ~0 tokens. Pair it with any AI tool (Claude Code, Cursor, OpenCode) over MCP, and your assistant resumes work where it left off.
Install
pip install nodestone
Start in 30 seconds
cd your-project
nodestone init # create the project's records (.nodestone/) and print the next steps
claude mcp add nodestone -- nodestone mcp # connect your AI (Cursor, OpenCode: the same command)
nodestone ui # watch the plan appear while you talk
Then tell your AI what you are building, in your own words. It plans with nodestone: phases, tasks, dependencies and a definition of done, asking you only what you must decide and marking what it proposed itself. When the plan is there, the day looks like this:
nodestone today # your work and why
nodestone start form # the task is yours
nodestone done form # nodestone checks it and says plainly what is still missing
nodestone report # the status report, from the records only
Nothing is recorded behind your back: asking only reads, and a scan turns to-do comments into suggestions for you to review, never into tasks. Tasks, decisions and completions come only from you, your AI or a check that passed.
Connect it to your AI (MCP)
nodestone speaks MCP over stdio by default — the transport Claude Code, Cursor, and OpenCode launch directly. One command registers it:
claude mcp add nodestone -- nodestone mcp
Restart Claude Code once. Now your assistant can call nodestone natively:
restore_context() to resume a project, record_decision(...) to remember a
choice, check_drift() to catch scope creep, fingerprint_handoff() to hand
the project to another agent.
Prefer HTTP (browser dashboards, LAN)? nodestone mcp --http --host 0.0.0.0 --port 18766.
Free and Pro
Free is the whole product for one person, with no project limit: planning with your AI, completion that nodestone verifies, reports, meetings, project documents, backups. Working alone is not a trial.
nodestone start home # the task is yours for a working day
nodestone done home # nodestone checks it and says plainly what is still missing
Pro is for more than one person: adding people with roles and approvals, and using the team server from
other computers. It is priced per person, the owner included: $8 a month or $80 a year. nodestone activate
buys or renews it in the browser; nodestone activate --file nodestone_license.json uses the license from the
purchase email on a computer without a browser. AI clients and services connected with keys take no seat. If Pro ends, nothing is held back: the owner keeps full local access and backups; only adding
people and remote sign-in stop. nodestone tier shows where you are.
Everyday commands
nodestone docs # every document: unanswered, unconfirmed AI proposals, missing, outdated by code
nodestone classify delivery=mvp multiple_actors=no ai=no # the project's kind decides which documents it needs
nodestone dependencies # questions nodestone asks about dependencies the plan left out
nodestone dependencies answer later:form --reason "Built against a mock first"
nodestone ui # watch it live in the browser while the AI plans; click anything to inspect
nodestone achievements # the project as achievements: first picture, scope, delivery, team
nodestone today # your work and why: sent back, reopened, ready, waiting, approvals you owe
nodestone work form # one task with its context: what done means, decisions, who else touches the files
nodestone start form # the task is yours
nodestone start form --file src/api/forms.py # and these are the files you will change
nodestone touch form src/web/ # more files as you find them
nodestone done form # nodestone checks it and says what is still missing
nodestone done form --transcript <file> --note "Built with Claude" # link the AI conversation the work was done in
nodestone approve form # a team lead accepts a submission that needs a person
nodestone reject form --reason "The date filter is missing"
nodestone report # the status report, from the records only
nodestone proposal submit plan.json --expected-version 3 --reason "API slips a week"
nodestone meeting save notes.json # what a meeting agreed; feedback on finished work reopens it
nodestone milestone accept m1 --evidence "..."
nodestone scope # which areas of the project still lack documents
nodestone login ayse / nodestone logout / nodestone whoami
When two people, or two AIs, are about to change the same files, nodestone says so before any code is written: who
holds the other work, which files are shared and since when. The files come from the plan (file checks, code
references), from what each holder announced when starting or with touch, and from their checkpoints. A folder
covers the files in it, and patterns such as src/api/*.py match. It is a warning, not a lock: the two agree on an
order or split the files. The person already working sees it too, in today and in work. AI clients pass files
to task_lease and read the answer's warnings.
Every project describes all of its scope areas, but depth follows size. A small project (an MVP one person runs,
alone or with their own AI) describes each area with the one document that carries it, 18 or 19 in all; a team or
enterprise project fills every core document of every area. A direct answer closes an area (ai=no: nothing to
describe about AI use), and an unknown answer never does. The classification is recorded with who set it and why.
Definition of done
A plan states what every task must satisfy across the whole product (for software: each user surface, the
documentation, the product language, tests). nodestone does not let the AI forget any of it: every open task covers
each item with a check ("covers": ["gui"]) or says in not_applicable why it does not apply, and items with their own
check run on every task. The report lists the items skipped as not applicable, so an item that is always skipped
stands out.
"definition_of_done": [
{"id": "english", "text": "All product text is English", "check": {"type": "command", "run": ["python", "-m", "pytest", "tests/test_product_language.py"]}},
{"id": "docs", "text": "The README shows it"}
]
A team on one server
The project's records live on one team server; everyone else uses the same CLI from their own computer.
# On the server (users come from `nodestone access init` / `access user-add`):
nodestone mcp --http --host 0.0.0.0 --port 18766 --tls-cert server.crt --tls-key server.key
# On a developer's computer:
nodestone --server https://team-server:18766 login ayse
nodestone --server https://team-server:18766 work model
nodestone --server https://team-server:18766 task-lease claim model --owner ayse
NODESTONE_SERVER can replace --server; NODESTONE_SERVER_CA points to the server certificate's CA when it is private.
Every call is authorized on the server with the person's role, exactly like AI clients. Commands that need the
project's files (maps, scans, init) run only on the server. The server answers requests in parallel; a long
check one person runs does not make the others wait.
Reading the AI conversation behind the work
nodestone review form # the proof and the AI conversation, then approve, send back or leave it
nodestone conversation form # just the conversation
When work done with an AI is completed, nodestone keeps the part of its conversation from the claim to the
completion, so the person approving it reads how it was done, not only the result: what the person asked, what the
AI said and one line per tool it used (its output and the AI's private reasoning are left out). API keys, tokens,
private keys and passwords are removed. The text is kept next to the journal (conversations.sqlite3); the journal
holds its SHA-256, and a reader sees whether it is exactly as recorded. Only the person who did the work, the owners
of the plan branches above it and plan admins can read it. The approval notification points at it, the live view
shows it on a click, and AI clients read it with work_conversation. With --server, the CLI on the worker's
computer sends the conversation with nodestone done, cleaned there and again on the server.
Dates from the real pace
nodestone forecast
Plans start with proposed dates, often the AI's. Once work is being finished, nodestone knows better: it replays how many tasks the project really finishes per day (the last four weeks, days with nothing finished included) against the unfinished work of each open milestone, in date order, and shows the date it lands in half of the runs and in 85 of 100, next to the planned date: on track, at risk or late. The timeline diagram draws it as a bar. A task counts once, so rework does not inflate the pace, and the same records always give the same forecast. With fewer than five finished tasks or three days of history it says so instead of guessing.
Work that does not go at the pace of the rest says so in the plan, and the forecast never places it earlier:
{"id": "pilot", "kind": "task", "name": "A week of real use", "waits_on": "a week of real use", "min_days": 7}
waits_on without min_days (a decision someone has to make) is listed as something the forecast cannot see.
A pilot that measures itself
nodestone pilot # the last 7 days
nodestone pilot --since 2026-10-05 --until 2026-10-12 --json
A pilot ends with evidence, not impressions, and nobody keeps a tally by hand. From the records only it shows: work finished and how it was proven (checks, a person's approval, or evidence alone), work reopened or sent back, how long work took from claim to finish, how long submissions waited for a reviewer and what waits now, collisions caught before two people or AIs changed the same files, finished work linked to its AI conversation, notifications delivered, answers people and AIs got from nodestone instead of from a colleague (on a team server with users; otherwise it says it cannot count them), and plan versions, decisions and meetings. It closes with findings: what to look at, in plain sentences.
Telling people what waits for them
nodestone notify set ali --url https://hooks.slack.com/services/... # ali's Slack
nodestone notify set ayse --url https://....webhook.office.com/... --format teams
nodestone notify set team --url https://hooks.slack.com/services/... # a room that hears everything
nodestone notify test ali # does it arrive?
nodestone notify send # one computer: schedule this
Each person hears, in their own channel, once and in plain English: a submission waiting for their approval (the
owner of the nearest plan branch above it), their work sent back with the reason, approved, reopened (for example
by meeting feedback), or marked blocked, and someone starting to change files they are changing. The team server
sends on its own every 15 seconds (NODESTONE_NOTIFY_SECONDS). A channel only hears what happens after it was set.
A broken channel is retried up to five times without holding up the others, and nodestone notify list shows what
could not be delivered. Webhook addresses are credentials: they are kept next to the journal, never in it, and
listings hide them. People set their own channel, also from their computer with --server; a manager sets anyone's.
Company sign-in (SSO)
People can sign in with their company account instead of a nodestone password. Any OpenID Connect provider works (Entra ID, Google Workspace, Okta, Keycloak): register nodestone there as a public client with device sign-in on.
# On the server, once:
nodestone access sso --issuer https://login.microsoftonline.com/<tenant>/v2.0 --client-id <application id> \
--domain clinic.example --auto-role member # --auto-role: newcomers from the company join as members
nodestone access user-add ali@clinic.example --role team_lead --sso # or add each person yourself
# On a developer's computer:
nodestone --server https://team-server:18766 login --sso # shows a web address and a code; sign in in any browser
The server checks the provider's answer itself: the ID token's RS256 signature against the provider's published keys,
its issuer, audience, lifetime and the allowed domains. Only then does it issue an ordinary nodestone session with
the person's role. Someone disabled in nodestone cannot sign in even with a valid company account. --only turns
passwords off for the project, and --off turns company sign-in off. ID tokens are never stored, and the audit log
records every sign-in and refusal. Without --issuer, nodestone access sso shows the current setup.
GitHub as proof
A task can be finished on GitHub: its plan names a github_pr check, and nodestone reads the pull request and its
checks from GitHub itself instead of trusting what a person or an agent reports.
{"id": "api", "kind": "task", "name": "Appointment API",
"checks": [{"type": "github_pr", "repo": "clinic/api", "required_checks": ["tests", "lint"]}]}
nodestone done api --pr 12 # or --commit <sha>: nodestone finds the pull request that contains it
The task completes only when the pull request is merged and every required check is green; otherwise nodestone says
what is missing. With other checks on the same task, files and commands are verified on the merge commit. Access is
your own (GITHUB_TOKEN, GH_TOKEN or gh auth login); for proof nodestone only reads, and only for tasks with this check.
Without repo, the project's origin remote is used; NODESTONE_GITHUB_API points at GitHub Enterprise Server.
Handing a task to a GitHub agent
nodestone github handoff api --base-branch main # opens an issue with the task's context, assigned to Copilot
nodestone github sync # reads GitHub: completes merged work, gives back abandoned work
The issue carries what the task is, when it is done and the decisions that apply. The task is held by
github:copilot, so nobody works on it twice, and it completes only when the linked pull request is merged and the
task's github_pr check passes, the same proof a person's work needs. A pull request closed without merging gives
the task back. The assignee hands off their own task; a team lead any task in their branch. --custom-agent and
--model are passed to GitHub unchanged.
The plan as GitHub issues
nodestone github mirror --dry-run # what would change; nothing is sent
nodestone github mirror # every plan task as an issue in the origin repository (or --repo owner/name)
Each issue shows the task's status (as a nodestone: <status> label), phase, owner, done criteria and the issues it
needs first, with a link back to the task. Finished work closes its issue. The mirror runs one way: nodestone stays the
record, and a title, body or state edited on GitHub is put back on the next run without touching the plan. Comments,
assignees and your own labels are left alone. An issue a task was handed to an agent on keeps the agent's
instructions. Publishing the plan needs plan.write.
Backup, restore and external AI
nodestone backup office-2026-09-29.zip # consistent even while the team server runs
nodestone --storage /srv/new restore office-2026-09-29.zip
nodestone restore office-2026-09-29.zip --replace # current records are set aside, never deleted
Every file in the archive is checked against its manifest before anything is restored. The archive holds the access registry's password hashes: store it like a password file.
An API key in the environment is not consent. ask and llm generate send nothing to an AI provider until the
project owner or a plan admin runs nodestone ai-consent allow <provider> --reason "...". The decision is recorded
and can be revoked; AI clients cannot grant it through nodestone's tools.
Self-introduce to every AI editor
nodestone inject all
Writes a short nodestone block into CLAUDE.md, AGENTS.md, .cursorrules, and
friends, and registers the MCP server in ~/.claude.json and opencode.json.
Idempotent — re-run any time. Remove with nodestone inject all --remove.
The massiron family
nodestone is one of four local tools that compose:
- nodestone — project context memory across sessions (this tool)
- atlas — deterministic code intelligence (call graph, risk, dead code), 0 LLM tokens
- deepstrain — autonomous engineering agent, a cheap fast executor
- adauto — developer-marketing automation, ethics-filtered + human-approved
Each works standalone and introduces the others when installed.
Project interview and connected planning (source implementation)
Start with nodestone discover begin "your project description". The interview asks
about the user, problem, vision, mission, outcomes, success criteria, scope, quality,
constraints and unknowns. nodestone discover next "answer" records an answer;
discover start resumes without erasing earlier answers. Empty answers are rejected.
An AI client can provide already-known answers with exact quotes using --known or
the discovery_begin MCP tool. Quote validation establishes provenance, not semantic
correctness: interpretation and contradiction handling still require AI/client review.
nodestone blueprint context exposes the existing interview and work-tree schema to
the planning AI. blueprint save plan.json --expected-version 0 imports a structured
plan; subsequent edits use its current version. Vision, mission, goals, work sections,
milestones, tasks and prerequisites are validated together. The journal stores the plan
and executable tasks atomically. This is an explicit structured import, not an automatic
natural-language planner or evidence-based completion engine.
blueprint show returns the task tree and mind map from the same record. Task statuses
are read live; changed intent, ancestors or prerequisites invalidate affected completed
work. blueprint show --html new-plan.html exports an offline mind map and collapsible
tree. Export is a snapshot; render again after changes. Existing task removal/conversion
to a group is currently rejected rather than silently losing history.
nodestone status is now scan-free and concise. Legacy untouched auto-detected to-do tasks remain
in history but are separated from planned work. status --json exposes integrity counts;
status --full retains the detailed legacy analysis. suggestions scan detects TODOs as
review candidates, suggestions list shows them and suggestions accept ID accepts one
idempotently. Python comments are tokenized; other supported source suffixes currently
scan full-line // comments. These detections do not prove the work is required.
Stdio MCP honors --storage and no longer edits external client configuration at startup.
Client registration remains an explicit setup step. MCP is included in runtime dependencies.
The source implementation still needs packaged-install, real AI interview, recovery and
customer acceptance before any sales-readiness claim.
Source-linked analysis selection
nodestone blueprint context --profile profile.json returns the interview and plan alongside a proposed analysis set. Example profile: {"delivery":"enterprise","confidential":"yes","ai":"yes","multiple_actors":"yes"}. Omitted fields stay unknown. The same optional analysis_profile object is accepted by the HTTP and stdio planning_context tools.
The bundled catalog distinguishes templates, guides, examples and proposed adaptations. Selection does not generate completed documents, grant data-sharing permissions, or establish product acceptance. The profile is a read-only call input and is not persisted as project policy.
Fillable analysis drafts
Use nodestone analysis template PA-001 to retrieve an original field guide and an example JSON payload. Fill the payload with explicitly typed statements and observations. Anything nobody stated must be labeled ai_proposal with a basis; drafts that carry unlabeled content are refused, and the report counts AI proposals until a person confirms them. unknown is only for answers a proposal would fabricate (measurements, research results) and needs a basis saying why. Check it with nodestone analysis check draft.json, then save with nodestone analysis save draft.json --expected-version 0. Read it with nodestone analysis show PA-001; add --markdown for a human-readable snapshot.
The MCP tools are analysis_template, analysis_draft_check, analysis_draft_save, and analysis_draft_view. Drafts preserve versions and reject stale changes; filling all fields means ready for review, never accepted. Citation matching checks caller-supplied excerpts, not source authenticity or semantic correctness. Storage is not encrypted. These are original Nodestone field guides, not verbatim third-party templates.
Metadata
Release files for nodestone 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 68.5 MB
Release files / nodestone-0.3.1-cp313-cp313-win_amd64.whl
| Download URL | nodestone-0.3.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
29b9da6bda59622bcf293fd81f9546eb1a617606e0a587e7938b0866f38f3a2e
|
|
BLAKE2b-256 checksum How to use checksums |
74dbc62a8497d1e17ab6c17290f643535f00809a13cd39f0862e7a6529caf796
|
| 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 1, 2026.
Transparency logRelease files / nodestone-0.3.1-cp313-cp313-manylinux_2_34_x86_64.whl
| Download URL | nodestone-0.3.1-cp313-cp313-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.13 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
d69c3b881611ddc5071fc271b17a780332a006d424bee9944805224dc5412697
|
|
BLAKE2b-256 checksum How to use checksums |
37ea84bf701f124616cee014eaa17036dcbd54cf7a1aaa427dbfa1b2c6b2ac32
|
| 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 1, 2026.
Transparency logRelease files / nodestone-0.3.1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | nodestone-0.3.1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.5 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2631c8dc2b3eeb94bc35087e4dc92c1b2aa5ebefb9f5f28bcfbe0f4f9e2268d7
|
|
BLAKE2b-256 checksum How to use checksums |
cf19a2603257a72ee86f96f9a470a541661f0e3c54698e1ef68234e92471e9ca
|
| 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 1, 2026.
Transparency logRelease files / nodestone-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl
| Download URL | nodestone-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl |
|---|---|
| Size | 6.6 MB |
| Tags | CPython 3.13 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
0e6792238d68131cc1042b4b77d118107ac9c75cf1d8bc15f2d14b627e90bc2f
|
|
BLAKE2b-256 checksum How to use checksums |
f9801427a5f4bda5949c711f8af1e3402fde0b83e477c6d690a4081aa68a6c92
|
| 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 1, 2026.
Transparency logRelease files / nodestone-0.3.1-cp312-cp312-win_amd64.whl
| Download URL | nodestone-0.3.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
58d5c5d9e8b1ba403e98d63e1de5c457a84a836102b73894f260612aeb91383b
|
|
BLAKE2b-256 checksum How to use checksums |
197ef476462657027b13c63e775dab35a6f422689351cd0767d66503e826c748
|
| 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 1, 2026.
Transparency logRelease files / nodestone-0.3.1-cp312-cp312-manylinux_2_34_x86_64.whl
| Download URL | nodestone-0.3.1-cp312-cp312-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 6.8 MB |
| Tags | CPython 3.12 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
cdd96a0dd105d8b06d1807a8e9950481ff24ea5b26c0a714047dfff3fe178373
|
|
BLAKE2b-256 checksum How to use checksums |
c42976463c9af27601544c9e2d278f5235b847bb642f2f6a51001844ee0d2940
|
| 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 1, 2026.
Transparency logRelease files / nodestone-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | nodestone-0.3.1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.2 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b2022b606c16d08b30863d5d9a5d8d8059c47c86dcbfd7bcf9fada2e0e26db15
|
|
BLAKE2b-256 checksum How to use checksums |
dbb0aba034124365f204ed3d35027ef5dd60f1bb7e0677a98f8a8ee11c9b2a9c
|
| 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 1, 2026.
Transparency logRelease files / nodestone-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl
| Download URL | nodestone-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl |
|---|---|
| Size | 6.3 MB |
| Tags | CPython 3.12 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
335e7c3cb535811040f335dec662bc847a5f32a521e266b0331ac85daab17ccb
|
|
BLAKE2b-256 checksum How to use checksums |
1d83ed3c3ea69a60e68423cd6db9680b1908d57170bad4605b22dcaca3a5658f
|
| 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 1, 2026.
Transparency logRelease files / nodestone-0.3.1-cp311-cp311-win_amd64.whl
| Download URL | nodestone-0.3.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 4.4 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
88c75aa90965b494c556555f434c0050cdf3de37fe2dbb04907bd49f388664da
|
|
BLAKE2b-256 checksum How to use checksums |
70e1b0d88dd9e59578e389c186346bdb4b5f9cbce181f93fcd035397f1bfe4fb
|
| 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 1, 2026.
Transparency logRelease files / nodestone-0.3.1-cp311-cp311-manylinux_2_34_x86_64.whl
| Download URL | nodestone-0.3.1-cp311-cp311-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 6.2 MB |
| Tags | CPython 3.11 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
772e0f2c6528dd2fdc4616fca3dfcf13498131c8a0d8ba21dedc6eccfcd8a56b
|
|
BLAKE2b-256 checksum How to use checksums |
b0921f2b66ad9ffced928a9f514bd76eb5beb206f4dfcbc9057d40211a5ce385
|
| 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 1, 2026.
Transparency logRelease files / nodestone-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | nodestone-0.3.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
cb2da5ed03d70c6abffa98a855e57d6175fc8f77b286c5ee7b6260de76660d8b
|
|
BLAKE2b-256 checksum How to use checksums |
9787ad93d941dbc923644ec3332c79626d00a14ede499441e96504e3efa4fe16
|
| 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 1, 2026.
Transparency logRelease files / nodestone-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl
| Download URL | nodestone-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl |
|---|---|
| Size | 6.3 MB |
| Tags | CPython 3.11 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
e139fb400b2b2e5b35335f3ce59d142f28bf81bc0ac34acae3c9a756023c70c1
|
|
BLAKE2b-256 checksum How to use checksums |
fdc5c32adad0df41c8ab80943940d2adde53e0ee860369a6c5b531868c1c3950
|
| 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 1, 2026.
Transparency log