Skip to content

Introducing the Truto CLI

Manage your entire Truto integration platform from the terminal. Install in one command, query unified APIs, export data, batch operations, and diff records.

Roopendra Talekar Roopendra Talekar · · 7 min read
Introducing the Truto CLI

Dashboards are for overview. Terminals are for doing. If you're an engineer working with Truto, you shouldn't have to leave your terminal to manage integrations, query data, or debug a failing sync job.

The Truto CLI is a standalone binary that puts the entire Truto platform at your fingertips — unified APIs, proxy APIs, admin resources, bulk exports, batch operations, and record diffs. One curl to install, one command to authenticate, and you're running.

Install in one command

No package managers. No dependencies. A single curl downloads a standalone binary for your platform:

curl -fsSL https://cli.truto.one/install.sh | bash

The installer detects your OS and architecture (macOS, Linux, x64, arm64), downloads the correct binary, and drops it into ~/.truto/bin/truto. That's it.

Need a specific version or a custom install path?

TRUTO_VERSION=0.1.0 curl -fsSL https://cli.truto.one/install.sh | bash
TRUTO_INSTALL_DIR=/usr/local/bin curl -fsSL https://cli.truto.one/install.sh | bash

The CLI is self-updating. Run truto upgrade to pull the latest version and replace the binary in-place. Run truto upgrade --check to see if there's a new version without installing it.

Authenticate

Run truto login and you get an interactive setup powered by clack — profile name, API URL, and token (masked input). The token is verified against the API before saving.

truto login

For CI/CD or scripted usage, skip the prompts entirely:

truto login --token <your-api-token>
truto login --token <token> --profile-name staging --api-url https://your-instance.truto.one

Verify your credentials:

$ truto whoami
┌─────────┬───────────────────────┬──────────────────┐
 profile api_url team_name
├─────────┼───────────────────────┼──────────────────┤
 default https://api.truto.one Acme Engineering
└─────────┴───────────────────────┴──────────────────┘

The CLI supports multiple profiles — maintain separate credentials for staging, production, and different teams. Switch between them with truto profiles use <name>.

Query any integration

The CLI covers every Truto data-plane API — unified, proxy, and custom.

Unified API gives you normalized data across integrations. Same field names whether you're querying Salesforce, HubSpot, or Pipedrive:

truto unified crm contacts -a <account-id> -o table
truto unified crm contacts <contact-id> -m get -a <account-id>
truto unified crm contacts -m create -a <account-id> -b '{"first_name":"Jane","last_name":"Doe"}'

Proxy API gives you the raw, integration-specific data without any schema normalization:

truto proxy tickets -a <account-id>
truto proxy tickets T-42 -m get -a <account-id>

Custom API lets you call your own endpoints built on Truto:

truto custom /my-endpoint -a <account-id>
truto custom /my-endpoint -m POST -a <account-id> -b '{"key":"value"}'

Five output formats

Every command supports five output formats via -o:

Format Best for
table Interactive use, quick inspection
json Piping to jq, saving to files
ndjson Streaming, log processing, piping
csv Spreadsheets, data analysis
yaml Config files, human-readable output

Power features

Beyond querying, the CLI ships three power tools that make it genuinely useful for day-to-day workflows.

Export

Bulk-export any resource with automatic pagination. The CLI handles cursors and streams results in your chosen format:

truto export crm/contacts -a <account-id> -o ndjson --out contacts.ndjson
truto export crm/contacts -a <account-id> -o csv --out contacts.csv

NDJSON and CSV stream page-by-page as data arrives — safe for large datasets. Pipe directly to other tools:

truto export crm/contacts -a <account-id> -o ndjson | jq '.email'
truto export crm/contacts -a <account-id> -o ndjson | wc -l

A slash in the resource name means unified API (crm/contacts). No slash means proxy (tickets).

Batch

Execute multiple API requests from a JSON file in a single command:

truto batch requests.json -a <account-id>

Mix creates, updates, and deletes. Each request runs in parallel with individual status reporting:

✓ POST crm/contacts → 201 (42ms)
✓ PATCH crm/contacts/c_17 → 200 (51ms)
✓ DELETE crm/contacts/c_99 → 204 (29ms)
3/3 succeeded in 112ms

You can also pipe batch requests from stdin:

cat updates.ndjson | truto batch --stdin -a <account-id>

Diff

Compare two records field-by-field, or diff the same record across two different integrated accounts:

truto diff crm/contacts abc-123 def-456 -a <account-id>
truto diff crm/contacts abc-123 -a <account-1> --account2 <account-2>
Diff: abc-123 vs def-456
┌─────────────┬───────────────┬───────────────┐
│ Field       │ abc-123       │ def-456       │
├─────────────┼───────────────┼───────────────┤
│ email       │ old@test.com  │ new@test.com  │
│ status      │ active        │ inactive      │
└─────────────┴───────────────┴───────────────┘
2 field(s) differ

Use -o json for programmatic consumption of diff results.

Built for scripting

The CLI follows Unix conventions. Structured output formats (json, ndjson, csv, yaml) automatically suppress decorative status messages so only clean data reaches stdout. Error messages always go to stderr.

Pipe JSON or NDJSON into create commands for bulk operations:

cat contacts.ndjson | truto accounts create --stdin
echo '[{"name":"a"},{"name":"b"}]' | truto integrations create --stdin

Chain CLI commands together:

truto export crm/contacts -a <account-id> -o ndjson | \
  jq -c '{email: .email}' | \
  truto proxy email-list -m create -a <other-account-id> --stdin

Debug any request with verbose mode:

truto integrations list -v
# → GET https://api.truto.one/integration?limit=25
# ← 200 OK

Full platform coverage

The CLI isn't limited to data queries. It covers the entire Truto admin API:

  • Integrations — list, create, update, delete integration definitions
  • Accounts — manage integrated accounts, refresh OAuth credentials
  • Sync Jobs — configure and trigger data-sync pipelines
  • Workflows — event-triggered automation with conditional steps
  • Webhooks — outbound event delivery to your URLs
  • MCP Tokens — create and manage scoped tokens for AI agent access
  • Environments — manage isolated scopes within your team
  • Unified Models — customize cross-integration schemas
  • Datastores, Daemons, Gates, Logs, Schema — everything else

Every resource follows the same pattern: truto <resource> <operation> [args] [options]. Every command supports --help.

There's also an interactive mode for when you want to explore without memorizing commands:

truto interactive

It walks you through resource selection, operations, and parameters with a guided wizard.

Get started

Install the CLI and start querying your integrations in under a minute:

curl -fsSL https://cli.truto.one/install.sh | bash
truto login
truto unified crm contacts -a <your-account-id> -o table

Read the full CLI documentation at truto.one/docs.

FAQ

How do I install the Truto CLI?
Run `curl -fsSL https://cli.truto.one/install.sh | bash`. It detects your OS and architecture, downloads the correct binary, and installs to ~/.truto/bin/truto. No package managers or dependencies required.
What output formats does the Truto CLI support?
Five formats: table (default, for interactive use), JSON (piping to jq), NDJSON (streaming and log processing), CSV (spreadsheets and data analysis), and YAML (human-readable nested data).
Can I use the Truto CLI in scripts and CI/CD pipelines?
Yes. Pass --token for non-interactive auth, use -o json or -o ndjson for structured output (decorative messages are automatically suppressed), and pipe output to jq, wc, or other Unix tools.
Does the CLI support all Truto platform features?
Yes. The CLI covers the full admin API (integrations, accounts, sync jobs, workflows, webhooks, MCP tokens, and more), all data-plane APIs (unified, proxy, custom), plus power features like bulk export, batch operations, and field-level diffs.

More from our Blog

Introducing Truto Agent Toolsets
AI & Agents/Product Updates

Introducing Truto Agent Toolsets

Newest offering of Truto SuperAI. It helps teams using Truto convert the existing integrations endpoints into tools usable by LLM agents.

Nachi Raman Nachi Raman · · 2 min read
What is a Unified API?
Engineering

What is a Unified API?

Learn how a unified API normalizes data across SaaS platforms, abstracts away authentication, and accelerates your product's integration roadmap.

Uday Gajavalli Uday Gajavalli · · 14 min read