mammoth-cli
Use Mammoth Analytics from a terminal. The mammoth
command covers data import and export, transformations, project organization,
automation, and administration. Its interface is designed to be readable at a
shell and predictable in scripts and agent runs.
- Human-friendly by default. In a terminal, commands print a readable table.
- Agent-native. When output is piped, you get a stable JSON envelope with a documented schema, exit codes, and error codes — no flags required.
- Guarded mutations. Commands expose their confirmation policy; promptless
destructive operations require an explicit
--yes. - Discoverable.
mammoth capability listandmammoth schema getdescribe every command, so an agent can learn the surface at runtime.
The CLI is built on the public mammoth-io
SDK. It adds no second HTTP client and calls no private SDK members.
See the capability matrix for current row-level coverage and evidence status.
Install
Install the CLI without a preinstalled Python tool manager:
curl -fsSL https://raw.githubusercontent.com/EdgeMetric/mammothsdk/main/mammoth-cli/installers/mammoth-install.sh | bash
Open a new shell if needed so the installer-added tool directory is on PATH, then confirm it works:
mammoth --version
mammoth doctor # checks config, credentials, endpoint, connectivity
The installer bootstraps its own uv tool environment when needed and installs
the bundled agent skill. For an exact, reproducible release use --version X.Y.Z; the installer has no normal prompts. See
Installation for that option and the SDK-only pip
installation path.
Quick start
mammoth auth login # prompts for API key, API secret, workspace id
mammoth doctor # confirm credentials resolve and the API answers
mammoth project list # a table in a terminal, JSON when piped
mammoth dataset list --project 180
Full walkthrough: docs/quickstart.md.
The login command has no workspace shortcut flag. For CI or an agent, use a protected request document instead:
chmod 600 creds.json
mammoth auth login --input creds.json --output json --no-input
Built for agents and CI
Piping or redirecting output yields the machine envelope, and --no-input turns
on automatically off a terminal, so an agent needs no special flags:
mammoth project list | jq '.data'
To be explicit, pass --output json --no-input. Log in without a prompt with a
permission-checked file:
mammoth auth login --input creds.json --output json --no-input
Feed multi-field requests as one document instead of many flags:
mammoth view transform math 1039 --project 180 \
--input '{"expression": "Unit Price * Quantity", "new_column": "Revenue"}'
For pipeline transformations, prefer the typed commands and inspect their schemas before composing input. For example:
mammoth schema get view.transform.filter --output json --no-input
mammoth schema get view.transform.math --output json --no-input
mammoth schema get view.transform.substring --output json --no-input
The generic view task add, view task preview, and view task update
commands are low-level expert routes. Their task_spec object is intentionally
opaque in the installed schema; use a typed view transform command instead
of inventing task fields. High-impact imports must also identify and confirm
their target explicitly, for example:
mammoth dashboard import-workbook ./sample.twbx --project 456 \
--yes --confirm 456 --output json --no-input
The sample path and project ID are placeholders for a local workbook and a project you have resolved and are authorized to modify.
The one-line installer already set up the bundled agent skill for Claude Code, Codex, and Cursor. To repair or refresh the installed copy:
mammoth skill install
Start with Agent handover and operation, then load the bundled agent skill from the installed CLI. The skill routes a task to only the relevant recipe or command catalog section; it does not require an agent to absorb the whole reference.
For a fresh external shell agent, start with the shipped portable task-start playbook.
For an unattended task, use the handover loop: discover its schema, resolve
every resource in explicit scope, operate from IDs returned by reads, verify
the requested outcome, then record a nonsecret checkpoint. Examples in this
repository are nonexhaustive. The CLI never requires backend column identifiers:
inputs name columns by their display names. Do not infer a usable default view
from a dataset; run view list DATASET_ID and choose a view explicitly.
If another agent must continue the work, write the nonsecret checkpoint format described in Portable agent handoff. It records scope, intent, verified evidence, jobs/unknown outcomes, and cleanup ownership without putting credentials into the handoff.
Give your coding agent the CLI playbook
The bundled skill describes authentication, discovery, structured input, job handling, and confirmations. Install it for the supported coding-agent tools:
mammoth skill install
mammoth skill list
The default target is user scope. To inspect destinations before writing, run
mammoth skill path. To install only for one agent in the current project, use
structured input:
mammoth skill install --input '{"agents": ["codex"], "scope": "project"}'
Use mammoth skill update after a CLI upgrade. It refreshes copies owned by the
installer and reports modified copies instead of silently replacing them.
What you can do
| Area | Command families |
|---|---|
| Data in and out | file, dataset, connector, addon |
| Shape and analyze | view, dataset, ai |
| Organize | project, folder, dashboard, report, template |
| Automate | automation, workflow, schedule, batch, webhook |
| Administer | workspace, user, billing, client-app, external-key |
| Operate the CLI | auth, context, config, doctor, capability, schema, skill, upgrade |
The full generated list is in docs/reference/commands.md.
Documentation
| Guide | What it covers |
|---|---|
| Installation | Install the CLI and the agent skill. |
| Quick start | Log in and run your first commands. |
| Authentication | Getting an API key, login, profiles, projects. |
| Agent handover and operation | Cold start, discovery, checkpoints, recovery. |
| Portable handoff format | Nonsecret checkpoint schema and receiving procedure. |
| Bundled agent skill | Focused routing for shell-capable agents. |
| Safe mutation | Mutation classes and confirmation policies. |
| Output and errors | Envelopes, exit codes, error codes. |
| Global flags | The flags every command shares. |
| Troubleshooting | Exit codes, error envelopes, recovery. |
| Upgrade / Uninstall | Keep the CLI current, or remove it. |
| Command reference | Every command, grouped by family. |
Start with Quick start for a copy-paste workflow, Authentication for
profiles and non-interactive login, or Agent handover and operation for a
fresh-agent task. The command reference is generated; use mammoth schema get COMMAND.ID to verify a request shape against the installed CLI.
Agent-readable indexes: docs/llms.txt and
docs/llms-full.txt.
Capability-matrix status
The committed machine-readable release matrix is the canonical repository
inventory; historical readiness records are kept separately from this summary. The
repository-facing summary is
docs/agent-capability-coverage.md.
The current release snapshot contains 528 operations across 355 paths (the
historical pinned M0 snapshot was 445 operations across 287 paths).
The matrix separates Core ETL/workflow capabilities from Miscellaneous
surfaces. Its live status counts are intentionally not duplicated here; read
the linked row-level matrix for the current values. It does not declare Full
readiness: matrix rows are planning/review status, not release qualification
or live semantic proof.
No status changes are inferred from an OpenAPI refresh: additions begin
Unassessed and removals or operation-ID changes require review. Use
scripts/report_release_capability_drift.py --help to produce a deterministic
local review queue from a candidate OpenAPI JSON; it never implements routes or
promotes support. See the capability drift workflow
for the required row fields and review steps. No secrets or live evidence are
copied into this README.
The sanitized row-level release matrix
and machine-readable matrix preserve all
528 method/path line items without pilot payloads or credentials.
Core top-15 snapshot
This compact table is a navigation summary, not a family-wide qualification
claim. The linked matrix row is canonical; Unassessed means no support claim.
| Area | Capability | ID | Status | Evidence/limitation |
|---|---|---|---|---|
| Project | List projects | REL-174 | Partial | One bounded project-list read. |
| Project | Create project | REL-431 | Unassessed | No owned project lifecycle evidence. |
| Project | Update project | REL-286 | Unassessed | No approved lifecycle evidence. |
| Project | Delete project | REL-037 | Unassessed | Protected project scope; no disposable project. |
| Dataset | Create dataset | REL-443 | Partial | Owned disposable create/readback/cleanup evidence. |
| Dataset | List datasets | REL-191 | Partial | Bounded list/readback evidence. |
| Dataset | Get dataset | REL-192 | Partial | One retained-resource read. |
| Dataset | Delete dataset | REL-044 | Partial | Owned delete and absence readback; variants remain untested. |
| View | Create/duplicate view | REL-446 | Partial | One disposable view lifecycle. |
| View | List views | REL-197 | Partial | One retained view/parent scope. |
| View | Get view | REL-198 | Partial | Positive and invalid-parent controls. |
| View | Pipeline task readback | REL-214 | Partial | Typed transforms require schema discovery; bounded task-list evidence. |
| Dashboard | Create dashboard | REL-326 | Unassessed | No current approved create fixture. |
| Dashboard | Get dashboard | REL-107 | Partial | One retained dashboard read. |
| Folder | Get folder | REL-224 | Full | Public CLI 1.1.12 receipt covers fields, filtered list, errors, lifecycle, and final absence; folder family remains incomplete. |
Use the canonical matrix for the full 528-row inventory and exact evidence links.
Compatibility
mammoth-cli follows Semantic Versioning for the 2.x
series:
- The machine-output and error-envelope contract is stable.
SCHEMA_VERSION(seemammoth_cli/__init__.py) identifies it and never changes incompatibly within a major version. New fields may be added; existing ones are preserved. - The CLI surface is stable. Command names, flags, and exit codes are not removed or repurposed within a major version.
- Bug fixes ship in patch releases. Additive changes ship in minor releases.
Development
pytest tests/ -q # unit + contract tests (live tests deselected)
ruff check mammoth_cli scripts tests
mypy mammoth_cli
make cli-docs-check # documentation gates
Build scripts under scripts/ regenerate the manifests and the documentation
corpus offline. Release and packaging details live in
RELEASING.md.
License
See LICENSE. Source: https://github.com/EdgeMetric/mammothsdk
Release files for mammoth-cli 2.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mammoth_cli-2.0.3.tar.gz | 502.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mammoth_cli-2.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.2 MB
Release files / mammoth_cli-2.0.3.tar.gz
| Download URL | mammoth_cli-2.0.3.tar.gz |
|---|---|
| Size | 502.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
53c3d20d09f905c87ee11099f843436d2b5a566eb5518b6e0d8ceb39713a6464
|
|
BLAKE2b-256 checksum How to use checksums |
231928185220d6cf6db0d692bb64cbf4514e8f732556ca1adc77f2b9449ec257
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.6
|
Release files / mammoth_cli-2.0.3-py3-none-any.whl
| Download URL | mammoth_cli-2.0.3-py3-none-any.whl |
|---|---|
| Size | 658.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3df5cb50c92f5f815374a908374851ae7481a10c794f16ed4f422e6e00cee54c
|
|
BLAKE2b-256 checksum How to use checksums |
14d50cf52a1c1c1c3b9d8a99d387606d2fe89b43bad6ac01c52e034dc41ed68a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.6
|