Skip to main content

Automation-first DOI minting and research/artifact publication packaging. Muh Mitha Kijiye!

Project description

Misty 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.


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.

Project details


Download files

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

Source Distribution

misty_doi-1.0.0.tar.gz (31.1 kB view details)

Uploaded Source

Built Distribution

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

misty_doi-1.0.0-py3-none-any.whl (32.0 kB view details)

Uploaded Python 3

File details

Details for the file misty_doi-1.0.0.tar.gz.

File metadata

  • Download URL: misty_doi-1.0.0.tar.gz
  • Upload date:
  • Size: 31.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for misty_doi-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9220baa44ad77f2c822687d9fed6caf74fc6f353c98fbc53f0e767c03c9d3036
MD5 303403123e04bfe0cfe0e96642a94555
BLAKE2b-256 9e920dda217b390e15dbe91e570c1a64f9d4f9ab7a62b34f009122d7c5b199e6

See more details on using hashes here.

File details

Details for the file misty_doi-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: misty_doi-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 32.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for misty_doi-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b5e155a38c0179c880f3169e254420e3947418a2769fd3bc1f0f01970d0126a3
MD5 178aa91cb4a6eb563116f3eb948ca07c
BLAKE2b-256 0c8045d3e830a0b52eca072739edf4e0474eb033d49ef0f86d077eec1b0dd0b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page