Skip to main content

A command-line interface for accessing National Bureau of Economic Research (NBER) papers without a browser.

Project description

NBER-CLI

A command line interface for reaching the National Bureau of Economic Research (NBER) paper without brower.

Pytest Lint Docs License PyPI version PyPI Downloads

简体中文 | Documentation

NBER is a registered trademark of the National Bureau of Economic Research. This project is an independent open-source tool and is not affiliated with, endorsed by, or sponsored by the National Bureau of Economic Research. By using this project, you agree to the Usage Policy.

Features

  • Search NBER working papers by title, paper number, author, abstract, or keyword.
  • Fetch structured metadata and abstracts for a paper ID such as w25000.
  • Download single papers or batches as PDF files.
  • Track newly released NBER working papers through a local RSS feed cache (nber-cli feed fetch / feed clean).
  • Cache paper metadata locally (nber-cli info writes to info_cache) with a sliding TTL, plus a behavior log for search, download, and info lookups.
  • Store the cache, RSS items, and behavior logs in a local SQLite database at ~/.nber-cli/nber.db, managed through SQLModel/SQLAlchemy and configurable with a filesystem path or sqlite:///... URL.
  • Expose the same core workflows as MCP tools for AI agents.
  • Provide an optional loopback-only HTTP server for local integrations.
  • Provide a native Rust/SQLite Desktop workspace for macOS, Windows, and Linux without a Python sidecar.
  • Return human-readable output by default, with JSON output for automation.
  • Provide --verbose debug logging and a rotating log file for troubleshooting.
  • Use -c/--config <path> to temporarily override the config file for a single run.

See Configuration for the full list of configurable values and the local database layout, and Usage Policy for what NBER-CLI writes to disk by default.

Quick Start

Use in Agents

NBER-CLI can be used by agents through plugins, the MCP server, and the skill. Claude Code and Codex should install the NBER-CLI plugin first; OpenClaw and other agents should use the MCP server plus the skill.

If you want an agent to install and check NBER-CLI automatically, send it this prompt:

Install NBER-CLI globally for yourself from https://github.com/sepinetam/nber-cli, and check the status.

After installation, verify it with either prompt:

I remember that in 2025, Anton had a paper on NBER about Agent for Econ. Download it to the current directory.
I remember that paper w25000 was interesting. Show me its abstract.

If you are an agent, visit the Agent Guides.

CLI Mode

Run commands directly with uvx:

uvx nber-cli search "Labor Economic"
uvx nber-cli info w25000
uvx nber-cli download w34567

If the command is not found or fails, run uvx nber-cli -v to check the current version. If it is not the latest version, update the cache with:

uvx --refresh nber-cli -v

Or install the command first:

uv tool install nber-cli
nber-cli search "Labor Economic"
nber-cli info w25000
nber-cli download w34567

MCP Server Mode

NBER-CLI can run as a stdio MCP server:

uvx nber-cli mcp-server

Example MCP client configuration:

{
  "mcpServers": {
    "nber-cli-mcp": {
      "command": "uvx",
      "args": ["nber-cli", "mcp-server"]
    }
  }
}

The MCP server exposes tools for paper lookup, search, and PDF download.

Local HTTP Server

The HTTP API is an optional extra. Run it without installing the server dependencies into the normal CLI environment:

uvx --from "nber-cli[server]" nber-server --host 127.0.0.1 --port 31527

The server upgrades the local SQLite database to schema v3 on startup and exposes health, feed, paper, read-status, and settings endpoints under /api/v1. See the Local HTTP API reference for parameters, response envelopes, side effects, and the loopback-only security boundary.

Desktop App

Download the macOS, Windows, or Linux installer from GitHub Releases. Current installers are unsigned. Desktop 0.9.0 talks directly to the shared SQLite database from Rust and does not require Python; see the Desktop guide.

If macOS reports that "NBER-CLI Desktop.app" is damaged and cannot be opened, run xattr -cr /Applications/NBER-CLI\ Desktop.app in Terminal, then reopen the app.

Documentation

More usage details, command references, MCP setup, Python API examples, development notes, and release history are available in the documentation.

Development

uv sync --dev --group docs
uv run pytest tests
uv run ruff check .
uv run --group docs mkdocs serve

License

NBER-CLI is released under the Apache-2.0 License.

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

nber_cli-0.9.0.tar.gz (11.1 MB view details)

Uploaded Source

Built Distribution

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

nber_cli-0.9.0-py3-none-any.whl (58.3 kB view details)

Uploaded Python 3

File details

Details for the file nber_cli-0.9.0.tar.gz.

File metadata

  • Download URL: nber_cli-0.9.0.tar.gz
  • Upload date:
  • Size: 11.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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}

File hashes

Hashes for nber_cli-0.9.0.tar.gz
Algorithm Hash digest
SHA256 76d451169ac6f6ddd480bd87f0ad06950a646009cde7e6adfc89ce51e0d82f43
MD5 44fccd71609f374b3c2da82f80fb7f4d
BLAKE2b-256 741e24cb6e2c4bf28579ffe3f3149a51013f92e3ef3454095dbdf4e01c5b0cf0

See more details on using hashes here.

File details

Details for the file nber_cli-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: nber_cli-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 58.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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}

File hashes

Hashes for nber_cli-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 806086eacf6d31b1decc61d7fdc3e9686494e6d5238b5baf0dd78377190cb01b
MD5 c68e20477d9c49b6660abfc5afc7c42b
BLAKE2b-256 77e4128e1b79730bd926fd66a5c071beabfc7c6ca5fb2d7efccd33deed97f407

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