sharepoint-cli 0.0.8

Agent-friendly SharePoint Online CLI with JSON output, structured exit codes, and schema introspection
Documentation

sharepoint-cli

Agent-friendly SharePoint Online CLI with JSON output, structured exit codes, and schema introspection.

Install

From crates.io

cargo install sharepoint-cli

From PyPI

pip install sharepoint-cli-rs
# or
uv tool install sharepoint-cli-rs

From source

git clone https://github.com/rvben/sharepoint-cli
cd sharepoint-cli
cargo install --path .

Quick start

# First-time setup: configures tenant + default site, then signs in
sharepoint init

# Or sign in to an already-configured profile
sharepoint auth login

# List followed sites
sharepoint sites list

# List libraries in a site
sharepoint drives list <site>

# Browse a library
sharepoint files ls <site>:<library>/

# Stat / download / search
sharepoint files stat   <site>:<library>/path/to/file
sharepoint files download <site>:<library>/path/to/file -o ./out.bin
sharepoint files find   <site>:<library>/ --name '*.pdf'

Output

  • Human output on stdout, status messages on stderr.
  • --json (or non-TTY stdout) emits machine-readable JSON on stdout.
  • --quiet suppresses status messages.

Configuration

Config lives at $XDG_CONFIG_HOME/sharepoint/config.toml (or ~/.config/sharepoint/config.toml). Run sharepoint config path to print the resolved location.

You must supply two things before signing in:

  • A tenant (your Microsoft 365 domain or tenant GUID).
  • A client_id for an Entra public-client app you've registered. The app needs the device-code flow enabled and delegated Files.Read.All, Sites.Read.All, and offline_access scopes. sharepoint init walks you through saving both into the active profile.

Environment overrides:

  • SHAREPOINT_PROFILE — active profile name
  • SHAREPOINT_TENANT_ID — tenant override
  • SHAREPOINT_CLIENT_ID — Entra application (client) ID — required

License

MIT