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

brew install lmarkmann/tap/dataseek   # dataseek and dsk, with completions and the man page
cargo binstall dataseek                # the prebuilt binaries from the release
cargo install --locked dataseek        # builds them from source
uv tool install dataseek               # the binaries in a wheel

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 brew upgrade dataseek and uv tool upgrade dataseek. 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.9.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.9.0
File Size Uploaded
dataseek-0.9.0.tar.gz 219.7 kB Details

Built distributions (wheels)

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

Total release size: 17.5 MB

Release files / dataseek-0.9.0.tar.gz

Download URL dataseek-0.9.0.tar.gz
Size 219.7 kB
Tags Source
SHA-256 checksum
How to use checksums
ddc8faa6309d69da6f12373698377da8eee7a4119330553adb413d9544e434b7
BLAKE2b-256 checksum
How to use checksums
8b5e6482c3e5b7d3068fdb96664c8e4a4c026d857bbb925b7c7085e2c8e3e1ce
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.9.0-py3-none-win_amd64.whl

Download URL dataseek-0.9.0-py3-none-win_amd64.whl
Size 3.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
a327e546313d84e0fece869cdc9c05a2d0b82ed90bfeba3d043275c502545eca
BLAKE2b-256 checksum
How to use checksums
7690be98518632bfcfdf19f19939dd5e2207745ac0285c4c6e839cf53a54372d
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.9.0-py3-none-manylinux_2_28_aarch64.whl

Download URL dataseek-0.9.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
830bc3e6f5f8fbc5e0f24d67d1acf7a8299a27a5b4a21600db6b1f427cd2ad94
BLAKE2b-256 checksum
How to use checksums
20a5226095922fa2dd46faf1ccf0f2b96d57413e4572f683175771495e0824f3
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.9.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL dataseek-0.9.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.2 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
df0d5307ae4607a8eed86f2f91812ef1931fb9c4a6140ab1179d69cb536a84c8
BLAKE2b-256 checksum
How to use checksums
6de9f3de138592ba34906bf8792e06f469f227cae8ce5f0394538a961339fcda
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.9.0-py3-none-macosx_11_0_arm64.whl

Download URL dataseek-0.9.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
17d634cb19289dcede0d6cb0e01d21b64691d2e95f5c2c7892f1c484356ae184
BLAKE2b-256 checksum
How to use checksums
58cf6f9289348680f2e3efba8b58a5fd08b23cdb723c533e8697a86a19c82431
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.9.0-py3-none-macosx_10_12_x86_64.whl

Download URL dataseek-0.9.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
a7cb5d0fa506e40ed187ecbcddcb89d5bfda2f08fa6b103a19174abc5a4a94a4
BLAKE2b-256 checksum
How to use checksums
fcd4108ae75529317f53f9a34db094d7a43608d643b14622567ec784dcdd0a0a
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

This release

0.9.0 This release

6 release files

0.8.0

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