Introducing arcli: The Command Line for Arc

#Arc#arcli#CLI#time-series#database#developer tools#Basekick Labs
Cover image for Introducing arcli: The Command Line for Arc

Arc has had a browser experience for a while. Launchpad covers SQL, logs, tokens, retention, and alerts. Today, Arc gets its command line.

arcli is an open source CLI for querying, writing to, and operating Arc from a terminal. It replaces hand-built HTTP requests with commands designed for daily use, whether you are exploring data locally or automating a production workflow.

Install it with Homebrew:

brew install basekick-labs/tap/arcli

Packages for Debian, RPM-based distributions, and Arch Linux are available alongside binaries for Linux, macOS, and Windows. There is also a multi-architecture image on GHCR. See the arcli documentation for every installation option.

From endpoint to query

Before arcli, working with Arc from a shell meant assembling curl commands: bearer tokens, database headers, JSON request bodies, and response parsing. The API remains available, but routine work should not require rebuilding its wire format every time.

With arcli, save a connection once and use it across commands:

arcli config create \
  --name local \
  --endpoint http://localhost:8000 \
  --token YOUR-TOKEN
 
arcli ping
arcli query --database metrics \
  "SELECT host, avg(usage) AS usage FROM cpu GROUP BY 1 ORDER BY 2 DESC"

Query results print as a table by default. Add -o json for jq, -o csv for an export, or -o arrow to stream Arrow IPC into pandas, Polars, or DuckDB.

Named profiles make it easy to move between environments without juggling shell variables:

pass show arc/prod | arcli config create \
  --name prod \
  --endpoint https://arc.example.net \
  --token-stdin
 
arcli query -c prod "SELECT count(*) FROM cpu"
arcli config set-active prod

In CI, ARC_ENDPOINT and ARC_TOKEN work without a config file. Tokens are optional for Arc servers running with authentication disabled.

Start with a million real rows

Writing one synthetic point confirms that a database is reachable. A real dataset shows what it can do.

arcli sample load citibike

That command loads a month of New York City Citi Bike trips: 1,003,770 rows across 31 Parquet files, about 39 MiB in total. arcli creates the target database when needed, downloads and verifies the files, imports them, and prints two queries to explore what landed.

Verified 31 files against the published checksums.
Imported 31 files, 1003770 rows into nyc.citibike_trips

One query finds the busiest stations. The other runs a window function across the month to show hourly departures and a moving average—the shape of New York's commute appears immediately.

Downloads resume when verified files are already present, and arcli checks before adding data to a measurement that already contains rows. You can also inspect the catalog or download without importing:

arcli sample list
arcli sample show citibike
arcli sample load citibike --download-only --download-dir ./data

One interface for Arc operations

arcli covers the workflows around the data path, not only queries:

  • Write line protocol, validated JSON, or MessagePack.
  • Import CSV, line protocol, Parquet, and TLE files.
  • Create and inspect databases and measurements.
  • Create, rotate, revoke, and delete API tokens.
  • Manage retention policies and continuous queries.
  • Preview and run predicate deletes.
  • Create, inspect, restore, and delete backups.
  • Inspect clusters, compaction, schedulers, and server logs.

Each area is a discoverable command tree with its own help:

arcli --help
arcli backup --help
arcli compaction trigger --help

Made for operators and scripts

arcli keeps structured results on stdout and progress, warnings, and prompts on stderr. That makes commands readable in a terminal and predictable in a pipeline.

Destructive operations ask for confirmation and require --yes when unattended. Token creation and rotation print the new secret alone on stdout so it can be captured cleanly. Interrupting a request returns the conventional exit code while making clear that work already accepted by the server may continue there.

Shell completion is available for bash, zsh, fish, and PowerShell. It understands connection names and valid flag values without contacting a server. Packages and the Homebrew formula also install man pages.

Available now

arcli 26.09.4 supports Arc 26.06 and newer. Releases include signed checksums and SPDX SBOMs.


Arc is an open source, SQL-native time-series database: one Go binary, with Parquet storage on infrastructure you own. Get started with Arc.

Ready to handle billion-record workloads?

Deploy Arc in minutes. Own your data in open files on your storage. Use for analytics, observability, AI, IoT, or data warehousing.

Get Started ->