Skip to main content

CLI for Scholar Inbox (authenticated web API)

Project description

scholarinboxcli

CLI for Scholar Inbox, for humans and agents alike.

Installation

pip install scholarinboxcli

Or with uv:

uv pip install scholarinboxcli

Or run directly with uvx (no install):

uvx scholarinboxcli auth login --url "<magic-link-url>"

Auth

# Log in with the magic-link URL from the web app
scholarinboxcli auth login --url "https://www.scholar-inbox.com/login?sha_key=...&date=MM-DD-YYYY"

# Check current session and user info
scholarinboxcli auth status

# Clear local session config
scholarinboxcli auth logout

Note: auth login extracts sha_key from the URL and authenticates via the API.

Config is stored at ~/.config/scholarinboxcli/config.json. You can override the API base with SCHOLAR_INBOX_API_BASE.

Command reference

Top-level commands:

  • auth (login/status/logout)
  • digest
  • trending
  • search
  • semantic
  • interactions
  • bookmark (list/add/remove)
  • collection (list/create/rename/delete/add/remove/papers/similar)
  • conference (list/explore)

Run scholarinboxcli --help or scholarinboxcli <command> --help for full options.

Quickstart

# Fetch a daily digest by date (MM-DD-YYYY)
scholarinboxcli digest --date 01-30-2026 --json

# Trending papers (last 7 days)
scholarinboxcli trending --category ALL --days 7 --json

# Keyword search
scholarinboxcli search "transformers" --limit 5 --json

# Semantic search
scholarinboxcli semantic "graph neural networks" --limit 5 --json

# List your bookmarks
scholarinboxcli bookmark list --json

Collections

# List collections
scholarinboxcli collection list

# Expanded collection names (marks which collections are expanded server-side)
scholarinboxcli collection list --expanded

# Create, rename, delete
scholarinboxcli collection create "My Collection"

# Rename by ID (or name)
scholarinboxcli collection rename 10759 "New Name"

# Delete by ID (or name)
scholarinboxcli collection delete 10759

# Add/remove papers
scholarinboxcli collection add 10759 4559909
scholarinboxcli collection remove 10759 4559909

# Show papers in a collection
scholarinboxcli collection papers 10759

# Similar papers for one or more collections
scholarinboxcli collection similar 10759 12345

# You can also use collection names (case-insensitive). The CLI will
# automatically fetch collection ID mappings from the API when needed.
scholarinboxcli collection papers "AIAgents"
scholarinboxcli collection similar "AIAgents" "Benchmark"

Collection name matching is exact → prefix → contains. If multiple matches exist, the CLI reports ambiguity and shows candidate IDs.

Search

# Full-text keyword search
scholarinboxcli search "transformers" --limit 5

Semantic Search

# Semantic similarity search
scholarinboxcli semantic "graph neural networks" --limit 5

Other commands

# Daily digest view (MM-DD-YYYY)
scholarinboxcli digest --date 01-30-2026

# Trending papers by category
scholarinboxcli trending --category ALL --days 7

# Read/like/dislike interactions feed
scholarinboxcli interactions --type all

# List bookmarks
scholarinboxcli bookmark list

# List known conferences
scholarinboxcli conference list

# Explore conference indices
scholarinboxcli conference explore

Output modes

  • TTY: Rich tables
  • --json: pretty JSON
  • Piped: pretty JSON (auto)

Examples for agents/scripting:

# Auto-JSON when piped
scholarinboxcli collection list | jq '.'

# Explicit JSON output
scholarinboxcli collection papers "AIAgents" --json

# JSON for automation (stable keys)
scholarinboxcli search "diffusion" --json

Tested (2026-02-01)

The following commands were exercised against the live API (with a valid magic-link login) to confirm behavior:

scholarinboxcli --help
scholarinboxcli auth status --json
scholarinboxcli digest --date 01-30-2026 --json
scholarinboxcli trending --category ALL --days 7 --json
scholarinboxcli search "transformers" --limit 5 --json
scholarinboxcli semantic "graph neural networks" --limit 5 --json
scholarinboxcli interactions --type all --json
scholarinboxcli bookmark list --json
scholarinboxcli bookmark add 3302478 --json
scholarinboxcli bookmark remove 3302478 --json
scholarinboxcli collection list --json
scholarinboxcli collection list --expanded --json
scholarinboxcli collection papers "AIAgents" --json
scholarinboxcli collection similar "AIAgents" --json
scholarinboxcli conference list --json
scholarinboxcli conference explore --json

Notes

  • Some collection mutations (create/rename/delete/add/remove) rely on best-effort endpoints that may change on the service side. If a mutation fails, try again or use the web UI to validate the current behavior.
  • Similar papers for collections uses the server endpoint used by the web UI. Results typically appear under digest_df in JSON responses.

Publish to PyPI

# 1) Build sdist + wheel
uv run --with build python -m build

# 2) Validate metadata/rendering
uvx twine check dist/*

# 3) (Optional) test publish first
uvx twine upload --repository testpypi dist/*

# 4) Publish to PyPI
uvx twine upload dist/*

If using an API token:

export TWINE_USERNAME=__token__
export TWINE_PASSWORD=<your-pypi-token>

Automated publish is also configured via GitHub Actions:

  • Workflow: .github/workflows/publish.yml
  • Trigger: push a tag matching v* (for example v0.1.1)
  • Auth: PyPI Trusted Publishing (OIDC)

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

scholarinboxcli-0.1.1.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

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

scholarinboxcli-0.1.1-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

Details for the file scholarinboxcli-0.1.1.tar.gz.

File metadata

  • Download URL: scholarinboxcli-0.1.1.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","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 scholarinboxcli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9633071ac6b29046eba4415e7a8212b978ee309a527f6b9d8f56ca0812b7f67d
MD5 3dd58d1d6d0feaa7611870391f8b08d2
BLAKE2b-256 90d082eab94b90d96cca64bc43babb3de5015fb3270c1dd56320e045da04787e

See more details on using hashes here.

File details

Details for the file scholarinboxcli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: scholarinboxcli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 17.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","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 scholarinboxcli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e71ca8dc0809b36eefab47ea8847f026e0d912db8cd6251c0c3c27b45888d511
MD5 de693a3e8e2912117ab425b1c5597e44
BLAKE2b-256 61459cf976c69ac1a642b8de07e58c0571d9833d2b9695b90e1d3b121eefcb8c

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