Skip to main content

dataseek: every dataset source it searches, set out as a periodic table

ci latest release

Search for datasets from the terminal

Datasets are scattered across dozens of archives: Hugging Face and Kaggle, Zenodo and Dataverse, data.gov and data.europa.eu, the IMF and the ECB, NASA and Copernicus. Each has its own search box, its own idea of relevance, and often its own copy of the same dataset. dataseek covers 76 of them, asks them at once and prints one list: a dataset found in three places shows up once with all three named, and results that several sources agree on, and that match more of your query, rank first.

Most sources need no key and nothing to set up. Results come back in the terminal, as JSON for scripts, or to an AI client over MCP. Google Dataset Search and Mendeley Data are the exception: neither permits automated searches, so dataseek asks them only when you name them with -s (ADR 0013). dsk is the same program under a shorter name.

Install

cargo install --locked dataseek   # builds dataseek and dsk from source
cargo binstall dataseek           # a prebuilt binary when the release has one, else builds
uv tool install dataseek          # installs dataseek and dsk with uv

To run it once without installing:

crgx --allow-build dataseek search sea surface temperature
uvx dataseek search sea surface temperature

To upgrade, run the install command again, or uv tool upgrade dataseek for uv. Building from source needs a recent stable Rust toolchain; from a clone, cargo install --locked --path . does the same.

Usage

dsk search sea surface temperature                 # every default source, merged and ranked
dsk search mnist -s huggingface,kaggle             # only these sources
dsk search inflation -c economics,finance          # only these categories
dsk search census --json | jq -r '.results[].url'  # one URL per line, for scripts
dsk sources                                        # every source, its protocol, key and docs
dsk inspect https://zenodo.org/records/13135140    # a page's metadata and the files it lists
dsk bench                                          # latency and overlap of every source
dsk cache warm                                     # download the catalogs searched locally

dsk search air quality -n 3 on a terminal:

- searching 71 sources for "air quality"; 3 need a key, see `dsk doctor`
1  Improving Indoor Air Quality for Poor Families: Controlled Experiments 2005-2006
   https://microdata.worldbank.org/catalog/396
   worldbank-microdata, ihsn | Susmita Dasgupta, Mainul Huq, M. Khaliquzzaman and David Wheeler | 2...
   Indoor air pollution (IAP) is dangerously high for many poor families in Bangla...

2  Air quality data in five counties in California
   https://b2find.eudat.eu/dataset/f2611e4d-793c-5e55-950c-7a9979c772b8
   b2find, pangaea | PANGAEA | 2026-05-04 | doi:10.1594/pangaea.923005
   Air quality data used to identify time windows of the best air quality in the d...

3  Historical Air Quality
   https://data.calgary.ca/d/uqjm-jxgp
   openaire, socrata | City of Calgary Open Data Portal | 2018-07-16 | See Terms of Use
   This dataset makes historical air quality data accessible for various parameter...

  ✓ 3 of 359 results; 70 of 71 sources answered; -n 359 shows all

The first result was listed by both the World Bank and IHSN and appears once. Results go to stdout and the lines around them to stderr, so dsk search ... > results.txt keeps only the results.

dsk alone shows the commands, dsk help environment the variables it reads, dsk help exit-codes what it returns. cargo install cannot install a man page or completions: dsk man > ~/.local/share/man/man1/dsk.1 puts the page where man dsk finds it, and dsk completion fish (or bash, zsh) says where its script goes.

Most sources need no key. FRED, Roboflow and Data Commons are skipped without their own; keys for Hugging Face, Kaggle, Data.gov, GitHub and NCBI raise limits. See docs/reference/keys-and-cache.md.

MCP

dsk mcp serves search, sources and inspect to MCP clients that have no shell. Register it in the client's MCP server configuration:

{
  "mcpServers": {
    "dataseek": { "command": "dsk", "args": ["mcp"] }
  }
}

Each tool returns what its command prints with --json; keys are read from the environment the client starts it in, or from credentials.toml. Google Dataset Search and Mendeley Data stay opt-in here too; the model asks for them by naming them in the search tool's source argument. docs/reference/contract.md has the details.

Development

just check                            # fmt --check, clippy -D warnings, tests, doctests
just ci                               # everything CI gates on: check, relevance, startup bench, Windows and macOS cross-check, shear, msrv, audit, typos
just audit                            # cargo-deny, zizmor
just run search climate temperature   # the CLI built from this checkout

Docs

Project notes

  • docs/bench/: measured speed of the search stages and of startup, each with the machine it ran on.
  • docs/synthesis/: how the sources' search interfaces differ, and the bench that measures them.

Data sources

dataseek prints each result's publisher and link. When you reuse a dataset, cite or acknowledge its source the way that source asks.

  • This product uses the FRED® API but is not endorsed or certified by the Federal Reserve Bank of St. Louis. By using dataseek's fred source you agree to the FRED® API Terms of Use.
  • This product uses the Census Bureau Data API but is not endorsed or certified by the Census Bureau.
  • NCBI results come through the E-utilities; NCBI's disclaimer and copyright notice applies.
  • WHO asks that its data be cited as "World Health Organization {YEAR} data.who.int, {ITEM_NAME} [{ITEM_TYPE}]. {URL} (Accessed on {ACCESS DATE})".

Contributing

CONTRIBUTING.md covers setup, the commit prefixes that decide each release, the test rules and how to add a source. Report vulnerabilities privately, as SECURITY.md describes.

License

Licensed under either of Apache License, Version 2.0 or MIT license, at your option.

Metadata

Release files for dataseek 0.8.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 dataseek 0.8.0
File Size Uploaded
dataseek-0.8.0.tar.gz 210.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for dataseek 0.8.0
File
dataseek-0.8.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
dataseek-0.8.0-py3-none-manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64 Details
dataseek-0.8.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
dataseek-0.8.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
dataseek-0.8.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 17.2 MB

Release files / dataseek-0.8.0.tar.gz

Download URL dataseek-0.8.0.tar.gz
Size 210.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f79b24be4438f6e8bdc1f8dad74f338f7a11ebaab44a54de6fc431a702f00e42
BLAKE2b-256 checksum
How to use checksums
b7c6ca1a6118af70dad15a722954b87730254ae10091a7b382db5e23238ff76b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dataseek-0.8.0-py3-none-win_amd64.whl

Download URL dataseek-0.8.0-py3-none-win_amd64.whl
Size 3.1 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
fe18ed6d0e962b32c9952eb90f55b5fab69f39b855db3bb9e2e37b6e7c09a158
BLAKE2b-256 checksum
How to use checksums
b326c0294ac96b5631c41e37dfc0f39636feefd1efe6636a2dbd1f2729860c8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dataseek-0.8.0-py3-none-manylinux_2_28_aarch64.whl

Download URL dataseek-0.8.0-py3-none-manylinux_2_28_aarch64.whl
Size 4.0 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
9a851d6a4d2ac47fea2d06489ed8647a41088390167318b4967fb37733183934
BLAKE2b-256 checksum
How to use checksums
bbac694bfc9c5565f4dba15181fb682aa46b4970ce7ff10595031d3eed3c0054
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dataseek-0.8.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL dataseek-0.8.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.1 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
a94e41dd06894c5e77003275d102ae0355095133d405dee2b3bf7d08364aec81
BLAKE2b-256 checksum
How to use checksums
e5e944ea0d596c4ad612b75e05ca83e0ef5004022276ac3ed65fe3196ada2ec5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dataseek-0.8.0-py3-none-macosx_11_0_arm64.whl

Download URL dataseek-0.8.0-py3-none-macosx_11_0_arm64.whl
Size 2.9 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7e32804ce5ad7de99ffc7929c4a8f39bff1682b56b641103d0f4660fcbbcfa41
BLAKE2b-256 checksum
How to use checksums
b800897dc6c73fd5e6711cd104a7c45580c44210b7427df1c9bd93cb9a5eccd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / dataseek-0.8.0-py3-none-macosx_10_12_x86_64.whl

Download URL dataseek-0.8.0-py3-none-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
af950d7c9b6d11749247ba37bc8c6c80169db41e052cd6f83693ef5137295f42
BLAKE2b-256 checksum
How to use checksums
9ceadc957f052bcedd1aa1c63cefb457ae9ac08e8335ab95d4ba65cf543d62fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.9.0

6 release files

This release

0.8.0 This release

6 release files

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