ana is a command-line client for TextQL. It speaks
the Connect-RPC endpoints that power the TextQL web app and exposes them as a
scriptable CLI for automation, CI pipelines, and power-user workflows.
curl -fsSL https://raw.githubusercontent.com/highperformance-tech/ana-cli/main/install.sh | shInstalls the latest release into /usr/local/bin/ana. Override with
INSTALL_DIR=$HOME/.local/bin.
go install github.com/highperformance-tech/ana-cli/cmd/ana@latestGrab the matching ana_<version>_<os>_<arch>.tar.gz (or .zip on Windows)
from the releases page,
extract the ana binary, and drop it on your PATH. Each release ships a
checksums.txt you can verify with sha256sum -c checksums.txt.
git clone https://github.com/highperformance-tech/ana-cli.git
cd ana-cli
make build
./bin/ana --versionWindows users: see docs/windows-smartscreen.md.
ana [global flags] <command> [args]ana auth login --endpoint https://app.textql.com
ana org show
ana connector list
ana chat send "show me last month's revenue"
ana api textql.rpc.public.auth.PublicAuthService/GetOrganization # raw JSON passthrough
ana update # replace the running binary with the latest releaseana api <path> sends an authenticated HTTP request and prints the response.
Two path forms:
<service>/<Method>— Connect-RPC short form, prefixed with/rpc/public/./v1/...(or any leading-slash path) — sent verbatim. Covers both the documented REST API (docs.textql.com/api-reference) and pre-resolved RPC paths.
Body can be supplied with --data '<json>' or --data-stdin. Default method
is POST with a {} body (so short-form RPC calls Just Work); GET/HEAD
auto-omit the body. --raw passes the response through verbatim instead of
pretty-printing.
Run ana --help or ana <verb> --help for command-specific flags.
ana checks GitHub for a newer release after each verb and prints a one-line
stderr nudge when one exists. The result is cached for 4 h by default; set
updateCheckInterval in config.json (any time.ParseDuration-compatible
value) to change the cadence, or "0" / "disable" to turn the check off.
--json suppresses the nudge so automation pipelines aren't broken.
ana stores tokens and per-profile endpoints at
$XDG_CONFIG_HOME/ana/config.json (falling back to ~/.config/ana/config.json).
make test # go test -race ./...
make cover # enforces 100% coverage on internal/...
make lint # gofmt, go vet, staticcheck
make build # -> ./bin/ana
make release-local # goreleaser check + snapshot (requires goreleaser)MIT — see LICENSE.