Command-line access

The Seean CLI uses the same scoped API as MCP. It requires Node.js 22 or later. It returns JSON, including pending/ready/failed status, the report period and computation time.

Install and connect

npm install --global --ignore-scripts https://assets.seean.io/mcp/seean-mcp-0.2.0.tgz

The versioned package includes a shrinkwrap with dependency versions and integrity hashes. Keep --ignore-scripts. It is distributed from Seean’s asset domain, not an npm-registry listing.

Create a key in website Settings → API access, or Account → Agent access for all websites you own. Select the minimum permissions needed. Set SEEAN_ANALYTICS_KEY in your local environment without committing it or including it in command arguments. The API endpoint defaults to https://events.seean.io/api/v1/analytics.

Run seean list_sites to verify access. With a workspace key, pass a returned site ID for individual-site operations:

seean get_overview '{"siteId":"YOUR_SITE_ID","range":"7d"}'
seean get_realtime '{"siteId":"YOUR_SITE_ID"}'

Commands use the exact API operation names and JSON arguments. Supply one JSON object; unknown arguments are rejected. A website key can omit siteId for its own website.

Optional local login

With SEEAN_ANALYTICS_KEY set, run seean login to save it for future launches, MCP and Raycast. The file is ~/.config/seean/credentials.json, or $XDG_CONFIG_HOME/seean/credentials.json when set, with owner-only 0600 permissions. This is a local file, not an operating-system keychain. Environment values override saved values. Login validates format; list_sites verifies server access.

seean logout removes the saved file. It does not unset an environment variable or revoke the key on the server. Revoke the key in Seean to stop access from all installations. A revoked key cannot poll earlier reports.

Reports, writes and failures

For a pending report, wait retryAfterSeconds, then call the same operation with siteId and jobId, without new range/filter/comparison arguments. get_live instead refreshes all authorized sites when repeated. Pending does not mean zero visitors.

Management commands require the corresponding write scope. For example:

seean update_site '{"siteId":"YOUR_SITE_ID","name":"New display name"}'

Deletion and statistic reset also require the exact typed phrase described in management operations. There is no automatic confirmation or retry. Check site state before retrying a write after a timeout because the server may have completed it.

Requests have a 15-second timeout. Errors return a nonzero exit status. Report preparation can return pending successfully; inspect the JSON status. The endpoint accepts only official Seean origins or loopback HTTP for development and refuses redirects.

Run seean mcp for local MCP, or use the Raycast command. Update by installing a newer versioned package deliberately.

Something unclear? Contact support.