feat(external): add Zenodo support
- Dominant language
- JavaScript
- Stars
- 29.5k
- Forks
- 2.9k
- Avg merge
- 15h 36m
- Merged PRs (30d)
- 70
Description
## Feature Request
Add support for [Zenodo](https://zenodo.org) through the [zenodo-cli](https://github.com/thedavidweng/zenodo-cli) external CLI integration.
### What is Zenodo?
[Zenodo](https://zenodo.org) is a general-purpose open-access research data repository built and operated by [CERN](https://home.cern/). It was developed under the European Commission's [OpenAIRE](https://www.openaire.eu/) project and is one of the most widely used research data repositories in the world.
Key facts:
- **Hosted by CERN** — trusted, long-term preservation infrastructure
- **EU-funded** — part of the European Open Science Cloud ecosystem
- **DOI minting** — every deposited record gets a free DOI (Digital Object Identifier)
- **1M+ records** — datasets, software, publications, presentations, and more
- **InvenioRDM** — migrated to the modern InvenioRDM platform in 2023, providing a clean REST API (`/api/records`)
- **Used by major projects** — CERN, LIGO, NASA, major EU research consortia, and thousands of individual researchers
### Why add Zenodo to OpenCLI?
- **Research discovery** — `opencli zenodo search "gravitational waves"` gives researchers and AI agents instant access to millions of open datasets and publications
- **Dataset management** — researchers can list, create, and manage their Zenodo records directly from the CLI
- **File operations** — upload and download research data files programmatically
- **Agent-ready** — zenodo-cli provides `--json` output, consistent exit codes, and safety gates, making it ideal for AI agent workflows
- **Public API** — search is fully public (no login required), lowering the barrier for read-only use cases
### How it works
The integration would use zenodo-cli ([thedavidweng/zenodo-cli](https://github.com/thedavidweng/zenodo-cli)), an agent-friendly CLI that covers the full InvenioRDM API surface:
```bash
# Search public records (no login required)
opencli zenodo search "machine learning" --json
# Record management (requires API token)
opencli zenodo records list
opencli zenodo records show
opencli zenodo records create
# File operations
opencli zenodo files list
opencli zenodo files download
```
Installation: `go install github.com/thedavidweng/zenodo-cli/cmd/zenodo@latest`
Contributor guide
Research direction
Start by examining how OpenCLI registers external CLI integrations and where the `opencli zenodo` entry point should invoke `zenodo-cli`. Use the listed search, record-management, and file-operation commands as the integration scope, and verify JSON output plus token-required operations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, javascript
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100