@fbraza/pi-zenodo

Pi extension with Zenodo draft tools for journal article deposits.

Packages

Package details

extensionskill

Install @fbraza/pi-zenodo from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@fbraza/pi-zenodo
Package
@fbraza/pi-zenodo
Version
0.3.0
Published
Jun 23, 2026
Downloads
not available
Author
fbraza
License
MIT
Types
extension, skill
Size
61.9 KB
Dependencies
1 dependency · 3 peers
Pi manifest JSON
{
  "extensions": [
    "./src/index.ts"
  ],
  "skills": [
    "./skills"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@fbraza/pi-zenodo

A Pi extension providing Zenodo draft tools for journal article deposits via the Zenodo REST API.

Current scope: create Zenodo drafts, retrieve/list depositions, list licenses, upload article PDFs/files to draft buckets, update validated journal article metadata, delete unpublished drafts, and optionally publish after exact confirmation and preflight validation.

Draft-only does not mean sandbox-only. Sandbox is the default test environment; production can be selected explicitly, but records remain unpublished drafts.

Layout

pi-zenodo/
├── src/                  # Extension entry point + Zenodo tool modules
│   └── tools/            # One registerXxxTool(pi) per Zenodo action
├── skills/zenodo/        # Bundled skill instructions + references
├── package.json          # pi-package manifest (extensions + skills)
└── tsconfig.json         # Editor / type-check support (runtime uses jiti)

Bundled skill

The zenodo skill guides the agent through draft-only journal article deposits:

  1. read article PDFs,
  2. extract candidate metadata,
  3. confirm ambiguous or policy-sensitive fields,
  4. create/update/upload to a Zenodo draft,
  5. retrieve the draft and stop before publish.

Publishing is a separate opt-in step requiring an exact confirmation phrase such as publish sandbox deposition 123 or publish production deposition 123.

Environments

  • Sandbox: https://sandbox.zenodo.org/api/ (default during development)
  • Production: https://zenodo.org/api/ (opt-in only)

Install

pi install npm:@fbraza/pi-zenodo
# or
pi install git:github.com/fbraza/pi-zenodo

Develop

npm install
npm test
npm run pack:check

Environment variables

Variable Purpose
ZENODO_SANDBOX_TOKEN Sandbox access token (default environment)
ZENODO_TOKEN Production access token