Skip to content

Latest commit

 

History

History

README.md

cpoe
Cryptographic authorship witnessing CLI

DOI arXiv ORCID

Build Status Rust License Patent Pending


Note

Patent Pending: USPTO Application No. 19/460,364 — "Falsifiable Process Evidence via Cryptographic Causality Locks and Behavioral Attestation"


Overview

cpoe is the command-line interface for CPoE — producing independently verifiable, tamper-evident process evidence constraining when and how a document could have been created. It implements the draft-condrey-rats-pop IETF protocol specification.

Part of the CPoE monorepo:

Component Description
cpoe_engine Cryptographic engine
cpoe_protocol PoP wire format (CBOR/COSE)
cpoe_jitter Hardware timing entropy
cpoe_cli (this crate) CLI tool

Installation

macOS (Homebrew):

brew install writerslogic/tap/writerslogic

Windows (Scoop):

scoop bucket add writerslogic https://github.com/writerslogic/scoop-bucket
scoop install writerslogic

Linux / macOS (script):

curl -sSf https://raw.githubusercontent.com/writerslogic/cpoe/main/apps/cpoe_cli/install.sh | sh

From source:

cargo install --git https://github.com/writerslogic/cpoe --bin cpoe

Quick Start

# Start tracking a document (auto-initializes on first use)
cpoe essay.md

# Create a checkpoint with a message
cpoe commit essay.md -m "first draft complete"

# View checkpoint history
cpoe log essay.md

# Export cryptographic evidence (.cpoe)
cpoe export essay.md -t 2

# Verify evidence
cpoe verify essay.cpoe

Run cpoe with no arguments for an interactive menu, or cpoe --help for the full command reference.

Commands

Command Aliases Description
cpoe <path> Start tracking a file or directory
cpoe commit checkpoint Create a checkpoint with VDF time proof
cpoe log history, ls View history or list all tracked documents
cpoe export prove Export evidence packet (.cpoe or .cwar)
cpoe verify check Verify evidence packet
cpoe status Show system status
cpoe track Session management (start/stop/status/list/show/export)
cpoe identity id Identity management
cpoe config cfg View and edit configuration
cpoe fingerprint fp Behavioral fingerprinting (status/show/compare/list/delete)
cpoe presence Physical presence verification

All commands support --json for machine-readable output and --quiet for silent operation.

Evidence Tiers

Per draft-condrey-rats-pop:

Tier Content Use Case
1 (Core) Checkpoint chain + VDF proofs + keystroke jitter Default — recommended for most workflows
2 (Enhanced) + TPM/hardware attestation Stronger claims with hardware backing
3 (Maximum) + behavioral analysis + external anchors Maximum assurance

Evidence Formats

Format Extension Description
CPoE .cpoe CBOR-encoded evidence packet (primary format)
CWAR .cwar CBOR-encoded attestation result (verification report)
JSON .json Human-readable evidence export

Verifying Evidence

Anyone can verify .cpoe evidence packets — no account or software required:

Verification checks the checkpoint chain, Ed25519 signatures, VDF timing proofs, and behavioral consistency. It runs entirely client-side — your evidence is never uploaded to our servers.

Security

Important

CPoE provides independently verifiable, tamper-evident process evidence, not absolute proof. The value lies in converting unsubstantiated doubt into testable claims across independent trust boundaries.

Privacy-first design:

  • Keystroke tracking captures timing only — never the keys you press
  • Voice fingerprinting is off by default and requires explicit consent
  • All keys are stored with restrictive file permissions (0600)
  • Database uses HMAC-based tamper detection
  • Entirely offline-first — no network calls for core witnessing

Development

cargo test -p cpoe_cli              # CLI tests (39 tests)
cargo test -p cpoe_engine --lib     # Engine tests (912 tests)
cargo test --workspace             # Full test suite
cargo clippy --workspace -- -D warnings  # Lint (zero warnings)
cargo fmt --all -- --check         # Format check

Citation

@article{condrey2026writerslogic,
  title={CPoE: Proof-of-process via Adversarial Collapse},
  author={Condrey, David},
  journal={arXiv preprint arXiv:2602.01663},
  year={2026},
  doi={10.48550/arXiv.2602.01663}
}

Abstract: Digital signatures prove key possession but not authorship. We introduce proof-of-process — a mechanism combining jitter seals, Verifiable Delay Functions, timestamp anchors, keystroke validation, and optional hardware attestation.

arXiv:2602.01663 [cs.CR]

License

Licensed under AGPL-3.0-only.

For commercial licensing inquiries, contact: licensing@writerslogic.com