Skip to main content

Misty DOI

DOI

Muh Mitha Kijiye!™

Browser-first, CLI-first, automation-first DOI minting and research/artifact publication packaging. No backend, no subscription, no vendor lock-in.

Project ILM · Copyright © 1993–2026 Abhishek Choudhary · GPL-3.0-or-later

Misty turns a single canonical metadata file into a complete, reproducible publication package — Zenodo deposit, DataCite record, codemeta.json, CITATION.cff, SHA-256 checksums, OpenTimestamps proofs — and mints a DOI on Zenodo. The same logic runs in your terminal, your CI pipeline, or fully in the browser with no server.


General-purpose

Misty mints DOIs and builds publication packages for any artifact (software, dataset, publication, poster, presentation, image, video, lesson, workflow) and any author. Start with misty init or copy an examples/ template.

The one idea

Separate metadata from mechanism. Any workflow that wants a DOI only has to:

  1. produce a canonical metadata file (misty.json),
  2. export ZENODO_TOKEN,
  3. call one command.

Everything vendor-specific (Zenodo's API shape, DataCite's schema, CFF's YAML) is derived by Misty. Upstream never learns a vendor format. See docs/AUTOMATION.md for the full integration contract.

export ZENODO_TOKEN=…           # the only secret, only from the environment
misty publish -m misty.json -f artifact.zip --output result.json
DOI=$(jq -r .doi result.json)   # done

Install

pip install misty-doi              # core (requests only)
pip install "misty-doi[all]"       # + YAML, JSON-Schema, OpenTimestamps

No-install path (CI / air-gapped): scripts/zenodo-publish.sh needs only bash, curl, and python3.


CLI in 60 seconds

misty init                                   # write a metadata template
misty validate -m misty.json                 # check it
misty transform -m misty.json -o build/      # -> zenodo/datacite/codemeta/CFF
misty package  -m misty.json -f a.zip -o doi-package/   # offline package + checksums
misty publish  -m misty.json -f a.zip        # deposit + upload + publish -> DOI
misty publish  -m misty.json -f a.zip --sandbox        # rehearse on sandbox.zenodo.org
misty publish  -m misty.json -f a.zip --dry-run        # package only, no network
misty ots stamp doi-package/a.zip            # OpenTimestamps proof

Full reference: docs/CLI.md.


What gets produced

doi-package/
├── <artifact>            artifact file(s), copied in
├── <artifact>.sha256     checksum per file
├── metadata.json         canonical Misty record
├── zenodo.json           Zenodo deposit body  {"metadata": {…}}
├── datacite.json         DataCite 4.x
├── codemeta.json         schema.org SoftwareSourceCode
├── CITATION.cff          CFF 1.2.0 (valid YAML)
├── manifest.json         release + reproducibility manifest
└── README.md             human-readable summary

The package contains no secrets and is safe to commit, attach to a GitHub release, or hand to an air-gapped reviewer.


Browser mode

Open web/index.html (or the GitHub Pages deployment). Build metadata in a form, download every target file, generate copy-paste AI prompts for metadata drafting, and — optionally — publish directly to Zenodo with a token that never leaves your browser. Project ILM receives nothing.


Security model

  • The token is read only from the environment (CLI) or held only in the browser tab (web). Misty never writes it to disk and never transmits it anywhere except Zenodo.
  • No telemetry. No backend. No accounts.
  • Offline packages are deterministic and checksummed for independent verification.

See SECURITY.md.


Documentation

Doc Contents
docs/AUTOMATION.md Integration contract, env vars, exit codes, CI recipes
docs/METADATA.md Canonical schema field-by-field, mapping to every target
docs/CLI.md Every command, flag, and example

License

GPL-3.0-or-later. The tool is free software; the artifacts you publish carry whatever license you declare in your metadata.

Metadata

Release files for misty-doi 1.2.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 misty-doi 1.2.0
File Size Uploaded Provenance
misty_doi-1.2.0.tar.gz 67.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for misty-doi 1.2.0
File Interpreter ABI Platform
misty_doi-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 131.3 kB

Release files / misty_doi-1.2.0.tar.gz

Download URL misty_doi-1.2.0.tar.gz
Size 67.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ce4f2a072b0e0ca0c960a003e696ea69ce83c41ac2f2fa3dfb41aca4d04bed75
BLAKE2b-256 checksum
How to use checksums
2e1c7a1fdb964356ee396da253120ccd884de022cfe58dc0d19b6bce631fc7c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / misty_doi-1.2.0-py3-none-any.whl

Download URL misty_doi-1.2.0-py3-none-any.whl
Size 63.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
69446536f15a83fb8b3a1927bfb82a2c5a46af265a736d239c979abaa3ca47d6
BLAKE2b-256 checksum
How to use checksums
67b88a68a79c232e05a40a24cb7e5b1e65fdd84e315737fcf4a4c3783873732c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Security for misty-doi 1.2.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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