The command-line client for Arc time-series databases.
arcli gives operators one interface for querying, writing, importing, and administering Arc. It supports named connections, human-readable and machine-readable output, shell completion, and safe prompts for destructive operations.
The latest release is v26.09.4.
Release tags and archives use 26.09.4; Linux package filenames use the normalized version 26.9.4.
brew install basekick-labs/tap/arclicurl -LO https://github.com/Basekick-Labs/arcli/releases/download/v26.09.4/arcli_26.9.4_amd64.deb
sudo dpkg -i arcli_26.9.4_amd64.debUse _arm64.deb on ARM64 systems.
curl -LO https://github.com/Basekick-Labs/arcli/releases/download/v26.09.4/arcli-26.9.4-1.x86_64.rpm
sudo rpm -i arcli-26.9.4-1.x86_64.rpmUse .aarch64.rpm on ARM64 systems.
curl -LO https://github.com/Basekick-Labs/arcli/releases/download/v26.09.4/arcli-26.9.4-1-x86_64.pkg.tar.zst
sudo pacman -U arcli-26.9.4-1-x86_64.pkg.tar.zstUse -aarch64.pkg.tar.zst on ARM64 systems.
docker run --rm ghcr.io/basekick-labs/arcli:26.09.4 --versionArchives for Linux, macOS, and Windows are available on the releases page. Release archives include shell completions and man pages; the Homebrew formula and Linux packages install them automatically.
To build the current main branch with Go 1.25 or later:
go install github.com/basekick-labs/arcli/cmd/arcli@latestCreate a connection using the bootstrap token printed by Arc:
arcli config create \
--name local \
--endpoint http://localhost:8000 \
--token <token>
arcli ping
arcli query --database metrics "SELECT * FROM cpu LIMIT 10"Omit --token when authentication is disabled on the Arc server. The first connection becomes active automatically.
arcli config list
arcli config current
arcli config set-active production
arcli config update production --token-stdinConnection profiles live in ~/.arcli/config.toml with file mode 0600. For CI and one-off commands, use ARC_CONNECTION, ARC_ENDPOINT, and ARC_TOKEN, or pass --connection / --endpoint directly.
# Table output by default; JSON, CSV, and Arrow are also available.
arcli query --database metrics "SELECT host, avg(value) FROM cpu GROUP BY host"
arcli query -f report.sql -o csv > report.csv
# Line protocol from stdin or a file.
echo "cpu,host=server-1 value=42.5" | arcli write --database metrics
arcli write --database metrics -f metrics.lp
# Validated JSON or MessagePack.
arcli write --database metrics --format json -f metrics.json
arcli write --database metrics --format msgpack -f metrics.msgpackarcli import csv -f data.csv --database metrics --measurement cpu
arcli import lp -f data.lp.gz --database metrics
arcli import parquet -f data.parquet --database metrics --measurement cpu
arcli import tle -f satellites.tle --database satellitesarcli sample list
arcli sample show citibike
arcli sample load citibikesample load downloads and verifies a public dataset, creates the target database when needed, imports the files, and prints useful starter queries. Downloads resume when verified files are already present.
arcli db list
arcli measurement list --database metrics
arcli auth whoami
arcli compaction status
arcli retention list
arcli backup create --wait
arcli logs --level warn --since 6hThe command tree also covers API tokens, continuous queries, schedulers, predicate deletes, backups, cluster membership, and compaction. Run arcli --help or arcli <command> --help for the complete command reference.
Commands support the formats appropriate to their API:
tablefor interactive usejsonfor scriptscsvfor tabular exportsarrowfor query streams
Destructive commands prompt before making changes; pass --yes in non-interactive scripts. New token secrets are written to stdout exactly once, so they can be captured without mixing them with status messages.
Standard arcli commands connect only to the Arc endpoints you configure.
Requests identify the arcli version and OS/architecture. Once a config file exists, they also include a random installation ID stored in that file. Arc may include this ID in its opt-out telemetry so Basekick can count CLI installations across Arc servers. Disable the ID with either:
DO_NOT_TRACK=1 arcli <command>or:
send_installation_id = falseThe arcli sample commands fetch public datasets from samples.basekick.net. These requests include the same client information, but do not include your Arc token, endpoint, queries, or database contents.
- TLS certificates are verified by default for HTTPS endpoints.
--token-stdinkeeps tokens out of shell history.--insecureis available for development servers with self-signed certificates and prints a warning when used with HTTPS.- Download checksums, signatures, and SPDX SBOMs are published with each release.
arcli follows Arc's CalVer format: YY.0M.PATCH. arcli 26.x supports Arc 26.06 and later.
Because Go module major versions only support v0 and v1 without a versioned module path, CalVer release tags cannot be passed to go install. Use Homebrew, a package, an archive, or Docker for a pinned release; go install ...@latest builds the current main branch.
go test -race ./...
go vet ./...
gofmt -l .