@arinova-ai/creator-cli
v0.0.4
Published
Command-line tool for managing Arinova Creator resources.
Readme
Arinova Creator CLI
Command-line tool for managing Arinova Creator resources.
Installation
npm install -g @arinova/cliAuthentication
Browser login (recommended)
arinova-cli auth loginOpens your browser to generate a CLI token. The token is automatically saved.
Manual token
If browser login doesn't work, visit your Arinova dashboard to generate an API key, then:
arinova-cli auth set-key <your-token>Tokens must start with ari_ (e.g., ari_cli_...).
Verify
arinova-cli auth whoamiConfiguration
# Use staging environment
arinova-cli --staging <command>
# Or set endpoint permanently
arinova-cli config set endpoint https://chat-staging.arinova.ai
# Or use environment variable
export ARINOVA_ENDPOINT=https://chat-staging.arinova.ai
# Show current config
arinova-cli config showSpaces
Create a space
arinova-cli space create --name "My Game" --url "https://example.com/game"The --url parameter sets the iframeUrl in the space definition. This is required for the "Play Now" button to appear on the space page. Without it, users cannot launch the space.
Other space commands
arinova-cli space list # List your spaces
arinova-cli space show <id> # Show space details
arinova-cli space update <id> --url <new-url> # Update iframe URL
arinova-cli space publish <id> # Make space public
arinova-cli space unpublish <id> # Make space private
arinova-cli space delete <id> # Delete a spaceOAuth Apps
Register and manage OAuth apps for third-party integrations.
Create an OAuth app
arinova-cli app create --name "My Game" --redirect-uri "https://mygame.com/callback"On success, the CLI prints clientId and clientSecret. Save the secret immediately — it cannot be retrieved again.
App commands
arinova-cli app list # List your apps
arinova-cli app show <id> # Show app details
arinova-cli app credentials <id> # Show client ID + redirect URIs
arinova-cli app update <id> --redirect-uri <uri> # Update redirect URI
arinova-cli app regenerate-secret <id> # Regenerate client secret
arinova-cli app delete <id> # Delete an appUsing your OAuth app
In your web app, initialize the Arinova SDK:
Arinova.init({ appId: "<your-client-id>" });Public vs Confidential Clients
| | Public (SPA) | Confidential (Server) |
|---|---|---|
| Create | --public flag | Default |
| Secret | Not needed | Required for token exchange |
| Security | Uses PKCE (code_challenge) | Uses client_secret |
| Use case | Browser apps, mobile apps | Server-side apps |
OAuth Flow — Confidential Client
- Redirect to
https://chat.arinova.ai/oauth/authorize?client_id=<id>&redirect_uri=<uri>&scope=profile&state=<random> - User authorizes on Arinova
- Arinova redirects to your
redirect_uriwith?code=<auth-code>&state=<state> - Exchange code:
POST /oauth/tokenwith{ grant_type: "authorization_code", client_id, client_secret, code, redirect_uri } - Use the access token (Bearer) to call Arinova APIs
OAuth Flow — Public Client (PKCE)
- Generate a random
code_verifier(43-128 chars, URL-safe) - Compute
code_challenge = BASE64URL(SHA256(code_verifier)) - Redirect to
https://chat.arinova.ai/oauth/authorize?client_id=<id>&redirect_uri=<uri>&scope=profile&state=<random>&code_challenge=<challenge>&code_challenge_method=S256 - User authorizes on Arinova
- Arinova redirects to your
redirect_uriwith?code=<auth-code>&state=<state> - Exchange code:
POST /oauth/tokenwith{ grant_type: "authorization_code", client_id, code, redirect_uri, code_verifier }(no client_secret) - Use the access token (Bearer) to call Arinova APIs
redirect_uri rules
- Origin match: scheme + host + port must match (path can differ)
- Must use HTTPS in production
http://localhost:*is allowed for development
Web UI
You can also manage OAuth apps at /developer in the Arinova web interface.
Other Commands
arinova-cli agent list # List your agents
arinova-cli sticker list # List your sticker packs
arinova-cli theme list # List your themes
arinova-cli community list # List your communities
arinova-cli stats # Show creator statsGlobal Options
| Option | Description |
|--------|-------------|
| --json | Output as JSON |
| --staging | Use staging endpoint |
