Skip to main content

Cite2Site

v1.0 — Source-clean citations that don't touch your files.

Cite2Site lets you point at evidence — in code, in a doc, on a page — without leaving a mark on it. Every citation lives in a separate, append-only ledger. Replay that history at any time and Cite2Site tells you whether the evidence still holds: still there, changed, gone, or — when it genuinely can't verify — it says so instead of guessing.

Why doesn't it touch my files?

Most citation tools want to write something into the thing you're citing — a comment, a bookmark, a hidden ID. That falls apart the moment the source isn't yours to edit: a shared PDF, someone else's code, an exported chat log, a spreadsheet with strict formatting. Cite2Site sidesteps that entirely:

select evidence -> source-clean citation -> inspectable citation projection

The current implementation uses the CLI. Integration contracts and reference examples for editor, browser, and document-tool builders are delivered; native right-click plugins are deferred.

The source file never changes. Citations live in a dedicated .c2s repository as an append-only history, and everything you see — status, exports, the published site — is generated by replaying that history against the current state of your files.

Quick Start — Human Path (Right-Click)

pip install cite2site
c2s init
echo "Alpha claim" > notes.md
c2s cite-selection --artifact notes.md --start 0 --end 11 --handle ALPHA

# Install the right-click context menu
c2s install-context-menu

Right-click any file in Explorer → Cite2Site → Look up citations here to see what citations exist at that position. Cite selection here to create a new citation.

The lookup-actions command behind the menu is the same contract editor plugins and browser extensions call. See the Integration Contract for the API, and the User Guide for everyday workflows.

To uninstall: c2s uninstall-context-menu.

Quick Start — Agent Path (CLI)

Agents and automation use the deterministic JSON CLI. Install, init, cite, query, export:

pip install cite2site
echo -e "Alpha claim\nBeta claim\n" > notes.md
c2s init
c2s cite-selection --artifact notes.md --start 0 --end 11 --handle NOTE-1
c2s citations --artifact notes.md --format json
c2s export

Every command returns JSON. Errors are structured. Citations never touch your files. See the Agent Guide for batch operations, workflow commands, and the full agent contract.

A few things worth knowing:

  • Handles are aliases, not identity. Rename one anytime — the underlying citation ID never changes.
  • Publication policy defaults to metadata-only. Default exports omit accepted evidence text; richer snippet and private-link modes require explicit repository authorization.
  • The source artifact is never rewritten, no matter which command you run.

Where things stand

Cite2Site v1.0 is a working CLI tool for text and Markdown files. It creates source-clean citations, validates hash chains, replays citation history against current files, and exports grouped JSON and MkDocs sites — all with metadata-only privacy by default. 98 tests cover the core engine.

Beyond text and Markdown, a ConverterAdapter turns DOCX, PDF, and XLSX into canonical text by shelling out to standard converters (pandoc for DOCX, pdftotext for PDF). The architecture separates how you get text out of an artifact from how citation history, verification, and replay work — new formats extend the first part without touching the second. When a converter isn't available, Cite2Site reports the limitation honestly rather than returning a guess.

The v1 stable contract is frozen: 15 CLI commands, 7 event types, 38 stable error codes, 4 privacy modes, and 6 schema identifiers. See build-docs/internal/CURRENT_STATUS_MATRIX.md for the full capability inventory.

Guides

  • User Guide — everyday commands, fixing mistakes, handles, publishing, batch citations, error codes.
  • Agent Guide — deterministic JSON CLI, agent workflows, batch schema, privacy modes, integration contract.
  • Integration Contract — for editor, browser, and document-tool builders.
  • v1 Stable Contract — every frozen command, event field, error code, projection field, and URL shape.

Running the tests

python -m unittest discover -s tests

If you're an agent picking this up

Start with AGENTS.md. It has the reading order, the invariants that keep citations trustworthy, and the session gate protocol this project uses instead of ad-hoc review. Don't skip it — the short version is "the source file is sacred, everything else is a replay."

Digging deeper

The full build plan — requirements, workflows, whitepaper, protocol and implementation specs, current status, and ADRs — lives under build-docs/.

Download files

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

Source Distribution

cite2site-1.0.3.tar.gz (35.8 kB view details)

Uploaded Source

Built Distribution

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

cite2site-1.0.3-py3-none-any.whl (24.2 kB view details)

Uploaded Python 3

File details

Details for the file cite2site-1.0.3.tar.gz.

File metadata

  • Download URL: cite2site-1.0.3.tar.gz
  • Upload date:
  • Size: 35.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for cite2site-1.0.3.tar.gz
Algorithm Hash digest
SHA256 8b256c927b58fd6a4d22c0cf37944d4041aba32415dbe0ca51a9efe07306aa40
MD5 67746ce963d4a2877b7b630e73db31f1
BLAKE2b-256 506bdb23b6d3f839f44e30a76ec3b34f4ad18ce8cb81c4b9caa4c92ad2785a12

See more details on using hashes here.

Provenance

The following attestation bundles were made for cite2site-1.0.3.tar.gz:

Publisher: publish.yml on paragon-ux/Cite2Site

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

File details

Details for the file cite2site-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: cite2site-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 24.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for cite2site-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ec116318ea527a4c1aa29de8ce2ac4420e7ca0de3306e01559fcb02d7cd3b20e
MD5 eaf23afa9aead13182580f905c8edbc3
BLAKE2b-256 d62552b1d86344d9a8699dc13ea2c8c38abfb78444efe324243b3c25091486f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for cite2site-1.0.3-py3-none-any.whl:

Publisher: publish.yml on paragon-ux/Cite2Site

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

Release history Release notifications | RSS feed

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

This release

1.0.3 This release

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 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