Parseable in your terminal. pb lets you query logs with SQL, run PromQL against metrics streams, tail live events, and manage Parseable datasets, users, roles, and profiles without leaving your shell.
Query production logs. Explore metrics. Stream new events. Save repeatable investigations. Move between local, staging, and production Parseable instances with named profiles.
"Don't guess. Query the logs."
pb is the command line interface for Parseable. It gives operators and developers a fast terminal workflow for:
- SQL log queries with text or JSON output
- Interactive Bubble Tea table views for large result sets
- PromQL range and instant queries
- Metrics metadata exploration: labels, series, cardinality, and TSDB stats
- Live event tailing from Parseable datasets
- Dataset, user, role, and profile management
# Connect to a Parseable server
pb login
# Open the interactive SQL table view
pb sql run -i
# Open SQL with a pre-filled query
pb sql run "SELECT * FROM backend" --from=1h -i
# Open the interactive PromQL table view
pb promql run -i
# Open PromQL with a pre-filled query
pb promql run "rate(http_requests_total[5m])" --dataset otel_metrics --from=1h -i
# Stream live events
pb tail backendQuick install (Linux/macOS):
curl -fsSL https://raw.githubusercontent.com/parseablehq/pb/main/scripts/install.sh | shDownloads the latest release, verifies the SHA-256 checksum, and installs to
~/.local/bin. Override the location with INSTALL_DIR:
curl -fsSL https://raw.githubusercontent.com/parseablehq/pb/main/scripts/install.sh | INSTALL_DIR=/usr/local/bin shQuick install (Windows PowerShell):
powershell -ExecutionPolicy Bypass -c "irm https://raw.githubusercontent.com/parseablehq/pb/main/scripts/install.ps1 | iex"Downloads the latest release, verifies the SHA-256 checksum, installs to
%USERPROFILE%\bin, and adds that folder to your user PATH. Open a new
PowerShell window after installation.
Pre-built binary (Linux/macOS/Windows):
Download the latest archive for your OS and architecture from the
releases page,
extract it, and move the binary to your PATH:
tar xzf pb_*.tar.gz
chmod +x pb && sudo mv pb /usr/local/bin/Windows archives contain pb.exe; extract the .zip and move pb.exe to a
folder in your PATH.
Available archives:
| Platform | Archive |
|---|---|
| macOS Apple Silicon | pb_<version>_darwin_arm64.tar.gz |
| macOS Intel | pb_<version>_darwin_amd64.tar.gz |
| Linux x86 64-bit | pb_<version>_linux_amd64.tar.gz |
| Linux ARM 64-bit | pb_<version>_linux_arm64.tar.gz |
| Windows x86 64-bit | pb_<version>_windows_amd64.zip |
| Windows ARM 64-bit | pb_<version>_windows_arm64.zip |
On macOS, a manually downloaded binary may be blocked on first run. Allow it once with:
xattr -d com.apple.quarantine /usr/local/bin/pbGo install:
go install github.com/parseablehq/pb@latestVerify: pb --help
pb login creates a profile for a Parseable server and stores it locally. You can authenticate with username/password or an API key.
Interactive login wizard:
pb loginThe wizard asks for the server URL, auth method, credentials, and profile name. The first saved profile becomes the default.
Add a profile without prompts:
pb profile add local http://localhost:8000 admin admin
pb profile add prod https://parseable.example.comManage profiles:
pb profile list
pb profile default prod
pb profile update prod https://new-parseable.example.com
pb profile remove prod
pb logoutConfig file location:
| Platform | Path |
|---|---|
| macOS/Linux | ~/.config/pb/config.toml |
| Windows | %AppData%\pb\config.toml |
Verify connection: pb status
Open the interactive SQL TUI:
pb sql run -iStart with a pre-filled query:
pb sql run "SELECT * FROM backend-shop WHERE order.amount > 999 LIMIT 5" --from=1h -iRun SQL without the TUI:
pb sql run "SELECT * FROM backend WHERE status >= 500 LIMIT 5" --from=1hOpen the interactive PromQL TUI:
pb promql run -iStart with a pre-filled query:
pb promql run "process.cpu.time{process.cpu.state!=""}" --dataset astronomy-shop-metrics --from=1h -iRun PromQL without the TUI:
pb promql run "sum(rate(http_requests_total[5m]))" --dataset otel_metrics --from=1hStream live events:
pb tail backend | jq 'select(.level == "error")'pb tail uses gRPC. Make sure the server's gRPC port is reachable in addition to the main HTTP port.
Interactive mode is the primary SQL workflow:
pb sql run -i
pb sql run "SELECT * FROM backend" --from=1h -iPanels: Query, Time Range, Dataset, Columns, and Table. Navigate with Tab and Shift+Tab.
pb sql run "SELECT * FROM backend" --from=10m --to=now
pb sql run "SELECT * FROM backend" --from=1h --output json | jq .
pb sql run "SELECT * FROM backend WHERE status = 500" --from=1h --save-as=server-errors
pb sql save "SELECT * FROM backend WHERE status = 500" --name=server-errors
pb sql listOTel fields with dots like service.name and http.status_code work directly in queries without manual quoting.
Interactive mode is the primary PromQL workflow:
pb promql run -i
pb promql run "http_requests_total" --dataset otel_metrics --from=1h -iPanels: Dataset, Query, Time, Step, and Table. Press Space on the Step panel to toggle between range and instant mode.
pb promql run "rate(http_requests_total[5m])" --dataset otel_metrics --from=1h --step=1m
pb promql run "up" --dataset otel_metrics --instant
pb promql run "http_requests_total" --dataset otel_metrics --output jsonExplore labels and series:
pb promql labels --dataset otel_metrics
pb promql label-values job --dataset otel_metrics
pb promql series --match 'http_requests_total{job="api"}' --dataset otel_metricsCardinality and TSDB analysis:
pb promql cardinality label-names --dataset otel_metrics
pb promql cardinality label-values --dataset otel_metrics --label job
pb promql cardinality active-series --dataset otel_metrics
pb promql tsdb --dataset otel_metrics
pb promql active-queries# Datasets
pb dataset list
pb dataset info <dataset>
pb dataset add <dataset>
pb dataset remove <dataset>
# Users
pb user list
pb user add <user> --role <role>
pb user set-role <user> <role1>,<role2>
pb user remove <user>
# Roles
pb role list
pb role add <role>
pb role remove <role>
# Server status and versions
pb status
pb versionShort aliases are available for common commands:
pb sql ls
pb dataset ls
pb dataset rm <dataset>
pb dataset stat <dataset>
pb profile ls
pb profile rm <profile>
pb profile set-url <profile> <url>
pb user ls
pb user rm <user>
pb role ls
pb role rm <role>
pb promql ps| Area | Commands | What you can do |
|---|---|---|
| Query logs | pb sql |
Run SQL, save queries, open interactive result tables |
| Query metrics | pb promql |
Run PromQL, inspect labels/series/cardinality |
| Stream events | pb tail |
Watch new events from a dataset |
| Datasets | pb dataset |
List, inspect, create, and remove datasets |
| Profiles | pb login, pb profile, pb logout |
Manage Parseable server connections |
| Access control | pb user, pb role |
Manage users and roles |
| System | pb status, pb version |
Check connectivity and versions |
Use JSON output for scripts and CI:
pb sql run "SELECT count(*) FROM backend" --from=1h --output json
pb promql run "up" --dataset otel_metrics --instant --output jsonFor scripts and CI, omit -i so commands print machine-readable output instead of opening the terminal UI.
| Topic | Description |
|---|---|
| Parseable | Parseable server repository |
| Releases | Download pre-built binaries |
pb --help |
List command groups |
pb <command> --help |
Command-specific help |
See the contributing guide.
AGPL-3.0 — see LICENSE.
