# Valstorm Developer CLI (valstorm-cli) > Command-line interface for Valstorm developers to authenticate via OAuth2 PKCE, pull and push object schemas as code, and manage local workspaces. - **GitHub Repository:** https://github.com/Valstorm-Corp/valstorm-cli - **License:** PolyForm Noncommercial License 1.0.0 (https://polyformproject.org/licenses/noncommercial/1.0.0) - **Installation:** `uv tool install git+https://github.com/Valstorm-Corp/valstorm-cli` - **Language/Stack:** Python 3.11+ (Typer, HTTPX, Rich) - **Web Documentation:** https://www.valstorm.com/free-tools/valstorm-cli ## Key Capabilities - **Schema-as-Code (pull & push):** Pull your organization’s entire object schema, picklists, and lookup relationships into version-controlled JSON/YAML definitions, review changes in PRs, and push atomically. - **Passwordless OAuth 2.1 + PKCE Authentication:** Uses SHA-256 code challenges and a local callback listener to issue long-lived refresh tokens without exposing client secrets on developer machines. - **Multi-Environment Profiles:** Maintain isolated credentials for local, staging, and production tenants in ~/.valstorm/auth_{env}_{profile}.json. - **Unified MCP Credential Sharing:** Logging in once via valstorm login automatically provisions the local token store read by valstorm-mcp in Claude Desktop and Cursor. ## Quickstart ```bash # 1. Install valstorm-cli globally using uv uv tool install git+https://github.com/Valstorm-Corp/valstorm-cli # 2. Authenticate via browser-based OAuth 2.1 + PKCE flow valstorm login # 3. Initialize a local Valstorm project (creates valstorm.json, object/, schemas/) valstorm init # 4. Pull remote object schemas and field definitions to local disk valstorm pull # 5. Push local schema changes and check API status valstorm push valstorm status ```