A lightweight, cross-platform desktop GUI for Elasticsearch
Project description
PyQt Elasticsearch Viewer
Elasticsearch ES可视化客户端工具
A simple, lightweight, cross-platform desktop GUI for browsing and managing Elasticsearch clusters.
This tool is a self-contained desktop application built with Python and PyQt6. It provides a user-friendly interface for performing common Elasticsearch operations like searching, creating, reading, updating, and deleting documents. It is designed to be minimal and portable, relying only on the requests library for communication with Elasticsearch, with no dependency on the official elasticsearch-py client.
(Note: Screenshot shows an earlier version; the final version includes more features like CRUD tabs and HTTPS options.)
✨ Features
- Flexible Connectivity: Connect to any Elasticsearch cluster via HTTP or HTTPS.
- Security Options:
- Support for username/password (Basic) authentication.
- Option to disable SSL certificate verification for connecting to clusters with self-signed certificates.
- Powerful Search: A dedicated tab for writing and executing complex JSON-based Query DSL searches.
- Full CRUD Functionality: A "Document CRUD" tab for easy single-document operations:
- Get: Retrieve a document by its ID.
- Index/Create: Create or update a document. Supports both user-defined and auto-generated IDs.
- Update: Partially update a document using the
_updateAPI. - Delete: Remove a document by its ID.
- Interactive Results Display: View results in a clear, expandable tree view that handles nested JSON structures gracefully.
- User-Friendly:
- Copy-Paste: Easily copy keys, values, or full key-value pairs from the results tree with
Ctrl+Cor a right-click menu. - Session Persistence: Automatically saves your last successful connection and query configuration, loading it on the next launch.
- Copy-Paste: Easily copy keys, values, or full key-value pairs from the results tree with
- Lightweight & Cross-Platform:
- Minimal dependencies:
PyQt6andrequests. - Runs on Windows, macOS, and Linux.
- Minimal dependencies:
🛠️ Installation
You can install es-viewer directly from PyPI.
-
Install with pip: Make sure you have Python 3 and pip installed, then run:
pip install es-viewer
-
Run the application: After installation, you can run the application from your terminal:
es-viewer
Alternative: Running from Source
If you prefer to run the application directly from the source code:
-
Clone the repository:
git clone https://github.com/isee15/es-viewer cd es-viewer
-
Install dependencies:
pip install PyQt6 requests
-
Run the application:
python es_gui.py
🚀 Usage
-
Run the application: If you installed via pip, run
es-viewerin your terminal. If running from source, usepython es_gui.py. -
Connection Panel:
- Fill in the
Host,Port, and targetIndex. - Check Use HTTPS if your cluster uses SSL/TLS.
- If using HTTPS with a self-signed certificate, you may need to uncheck Verify SSL Certificate.
- Check Enable Authentication and fill in your credentials if your cluster requires them.
- Fill in the
-
Search Tab:
- Write your full Elasticsearch Query DSL in the JSON editor.
- Click Execute Search to run the query.
- Results will be displayed in the tree view at the bottom.
-
Document CRUD Tab:
- Document ID: This field is required for
Get,Update, andDeleteoperations. It is optional forIndex/Create(if left blank, Elasticsearch will generate an ID). - Document Body:
- For
Index/Create, enter the full JSON content of the document. - For
Update, enter an update payload (e.g.,{"doc": {"field_to_update": "new_value"}}).
- For
- Click the corresponding button (
Get,Index/Create,Update,Delete) to perform the action. - The result of the operation will be displayed in the tree view below.
- Document ID: This field is required for
⚙️ Configuration
The application automatically saves your settings to a configuration file upon a successful search operation.
- File Location: The file is named
.es_viewer_config.jsonand is stored in your user home directory (e.g.,C:\Users\YourUseron Windows or/home/youruseron Linux). - Function: It stores the last used connection details, authentication state, and search query so you don't have to re-enter them every time you open the app.
- Security Note: The password is saved in plain text in this file. This is a security risk for production environments. Please use with caution.
📜 License
This project is licensed under the MIT License. See the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file es-viewer-1.2.3.tar.gz.
File metadata
- Download URL: es-viewer-1.2.3.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93fb1a5ba2ece5c2eabf0e0c9640f4aae5798c7bb4e9cbfb3735ecf0d621ff06
|
|
| MD5 |
2d764ec337f7b999abcff1ae6ef3c118
|
|
| BLAKE2b-256 |
9e1163976effcde806c97f718f8c186bef35176b83d76a17a09322026aaf9083
|
Provenance
The following attestation bundles were made for es-viewer-1.2.3.tar.gz:
Publisher:
publish-to-pypi.yml on isee15/es-viewer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
es-viewer-1.2.3.tar.gz -
Subject digest:
93fb1a5ba2ece5c2eabf0e0c9640f4aae5798c7bb4e9cbfb3735ecf0d621ff06 - Sigstore transparency entry: 493276332
- Sigstore integration time:
-
Permalink:
isee15/es-viewer@ece5fb2e71df4a03aca3dd55f356df7b64fde66e -
Branch / Tag:
refs/tags/1.2.3 - Owner: https://github.com/isee15
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@ece5fb2e71df4a03aca3dd55f356df7b64fde66e -
Trigger Event:
release
-
Statement type:
File details
Details for the file es_viewer-1.2.3-py3-none-any.whl.
File metadata
- Download URL: es_viewer-1.2.3-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0db778d3e9fa4280eb4261b41e4469b6399f5ef4b6b46f1904ae19ba4b8b93d1
|
|
| MD5 |
6b25df0c9d3033f21f3c6c69f21af5ea
|
|
| BLAKE2b-256 |
14076cfcd6c82b9e6131edf0dafd277a7330c6acbf125053cd007c6fddc200be
|
Provenance
The following attestation bundles were made for es_viewer-1.2.3-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on isee15/es-viewer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
es_viewer-1.2.3-py3-none-any.whl -
Subject digest:
0db778d3e9fa4280eb4261b41e4469b6399f5ef4b6b46f1904ae19ba4b8b93d1 - Sigstore transparency entry: 493276347
- Sigstore integration time:
-
Permalink:
isee15/es-viewer@ece5fb2e71df4a03aca3dd55f356df7b64fde66e -
Branch / Tag:
refs/tags/1.2.3 - Owner: https://github.com/isee15
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@ece5fb2e71df4a03aca3dd55f356df7b64fde66e -
Trigger Event:
release
-
Statement type: