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 Desktop workspace for macOS, Windows, and Linux with a bundled one-shot worker that reuses the Python CLI logic without requiring users to install Python or uv.
  • 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.1 bundles the required Python runtime and reuses the CLI's feed and paper logic, so users do not install Python or uv; 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.1.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.1-py3-none-any.whl (59.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nber_cli-0.9.1.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.1.tar.gz
Algorithm Hash digest
SHA256 99f9f9cd57428a48a3a2ceff0493958cb6031cbabf70436fe043084835194005
MD5 0dfc58cebd2ee3903cf08a8f79e367ad
BLAKE2b-256 2f7ef734b1a69c97e268f7b8dfa491a34c725300ca7746e4df5043f51c94b5ad

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nber_cli-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 59.5 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 639f4468f7adc1f66f33744dea3735199f5bd5bcb836dc817b940488158f7c3a
MD5 78f14af74c98189aa2575be90d1c78da
BLAKE2b-256 620ee8a543c6ee7fbbc00db49419935c9e6008546ffa10204a277c001dd60ed3

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