ostop

OpenSearch Terminal UI - Monitor your clusters from the command line

View the Project on GitHub Vegasq/ostop

ostop - OpenSearch Terminal UI

A terminal-based monitoring dashboard for OpenSearch clusters, focused on cluster operations and capacity planning.

ostop demo

License: MIT Go Version


Features


Installation

Install the latest version with a single command:

Linux/macOS:

curl -sSL https://ostop.mkla.dev/install.sh | bash

This will automatically detect your OS and architecture, download the appropriate binary, and install it to /usr/local/bin.

To install to a custom location:

INSTALL_DIR=$HOME/.local/bin curl -sSL https://ostop.mkla.dev/install.sh | bash

Windows (PowerShell):

irm https://ostop.mkla.dev/install.ps1 | iex

This will install to %LOCALAPPDATA%\Programs\ostop and provide instructions to add it to your PATH.

To install to a custom location:

$env:OSTOP_INSTALL_DIR = "C:\custom\path"; irm https://ostop.mkla.dev/install.ps1 | iex

Download Pre-built Binaries

Alternatively, download the latest release for your platform from GitHub Releases:

# Example for Linux/macOS
# Download the appropriate binary for your platform
# Make it executable
chmod +x ostop

# Run it
./ostop --endpoint <your-endpoint>

Build from Source

If you have Go installed, you can build from source:

# Clone the repository
git clone https://github.com/Vegasq/ostop.git
cd ostop

# Build
go build -o ostop main.go

# Or run directly
go run main.go --endpoint <your-endpoint>

Requirements


Usage

Local OpenSearch

# Start OpenSearch in Docker
docker run -d \
  --name opensearch-dev \
  -p 9200:9200 \
  -p 9600:9600 \
  -e "discovery.type=single-node" \
  -e "DISABLE_SECURITY_PLUGIN=true" \
  opensearchproject/opensearch:latest

# Connect with ostop
./ostop --endpoint http://localhost:9200

AWS OpenSearch

# Using default AWS credentials
./ostop \
  --endpoint https://search-mydomain-xxx.us-east-1.es.amazonaws.com \
  --region us-east-1

# Using specific AWS profile
./ostop \
  --endpoint https://search-mydomain-xxx.us-east-1.es.amazonaws.com \
  --region us-east-1 \
  --profile my-profile

Command-Line Options

--endpoint <url>      OpenSearch endpoint URL (required)
--region <region>     AWS region (required for AWS OpenSearch)
--profile <name>      AWS profile name (optional)
--insecure            Skip TLS verification (development only)
--version             Show version information

Keyboard Shortcuts

Key Action
↑/k Move up (menu navigation, index selection, or scroll up in right panel)
↓/j Move down (menu navigation, index selection, or scroll down in right panel)
Tab Switch between left and right panels
Enter Select view (when in left panel) or drill into index schema (in indices view)
Esc/Backspace Return from index schema view to indices list

Scrolling (Right Panel)

Key Action
PgUp/b Scroll up one page
PgDn/f/Space Scroll down one page
Home/g Jump to top
End/G Jump to bottom

Actions

Key Action
r Refresh data from cluster (manual refresh for all views except Live Metrics)
q Quit application
Ctrl+C Force quit

AWS Authentication

ostop uses the standard AWS credential chain:

  1. Environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
  2. Shared credentials file (~/.aws/credentials)
  3. IAM roles (EC2 instance profiles, ECS task roles)

This matches the behavior of awscurl and other AWS CLI tools.


Development

# Install dependencies
go mod download

# Run tests
go test ./...

# Build
go build -o ostop main.go

# Build with optimizations
go build -o ostop -ldflags="-s -w" main.go

License

MIT