{"id":29005297,"url":"https://github.com/anaethelion/escli-rs","last_synced_at":"2026-04-02T14:25:27.963Z","repository":{"id":298140558,"uuid":"951427378","full_name":"Anaethelion/escli-rs","owner":"Anaethelion","description":"Proof of Concept Command line tool for Elasticsearch","archived":false,"fork":false,"pushed_at":"2026-03-27T00:26:03.000Z","size":2652,"stargazers_count":17,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-27T05:23:40.627Z","etag":null,"topics":["command-line","elasticsearch","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Anaethelion.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"agents.md","dco":null,"cla":null}},"created_at":"2025-03-19T16:57:05.000Z","updated_at":"2026-03-27T00:19:24.000Z","dependencies_parsed_at":"2025-06-09T16:41:29.815Z","dependency_job_id":"741299b4-3abd-488d-8221-7d2ece1de0b6","html_url":"https://github.com/Anaethelion/escli-rs","commit_stats":null,"previous_names":["anaethelion/escli-rs"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/Anaethelion/escli-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anaethelion%2Fescli-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anaethelion%2Fescli-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anaethelion%2Fescli-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anaethelion%2Fescli-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Anaethelion","download_url":"https://codeload.github.com/Anaethelion/escli-rs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anaethelion%2Fescli-rs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31307954,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line","elasticsearch","rust"],"created_at":"2025-06-25T11:04:56.425Z","updated_at":"2026-04-02T14:25:27.940Z","avatar_url":"https://github.com/Anaethelion.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# escli-rs\n\n[![Build and Test CLI](https://github.com/Anaethelion/escli-rs/actions/workflows/cli-build.yml/badge.svg)](https://github.com/Anaethelion/escli-rs/actions/workflows/cli-build.yml)\n\nA modern, flexible command-line interface (CLI) for interacting with Elasticsearch clusters, written in Rust. This project aims to provide a comprehensive and user-friendly tool for managing and querying Elasticsearch, supporting a wide range of Elasticsearch APIs and features.\n\n## Features\n- Full CLI for Elasticsearch APIs\n- Auto-completion and shell integration\n- Secure authentication (API key, username/password, etc.)\n- Support for multiple Elasticsearch versions\n- Extensible command structure\n\n---\n\n## Quickstart with .env File\n\nYou can configure escli using a `.env` file in your project root or working directory. This allows you to securely manage credentials and connection settings without exposing them on the command line.\n\n**Supported variables:**\n- `ESCLI_URL` – Elasticsearch endpoint (e.g., https://localhost:9200)\n- `ESCLI_API_KEY` – API key for authentication (recommended)\n- `ESCLI_USERNAME` – Username for authentication (alternative)\n- `ESCLI_PASSWORD` – Password for authentication (alternative)\n\n**Example `.env` using API key (recommended):**\n```env\nESCLI_URL=https://localhost:9200\nESCLI_API_KEY=your_api_key_here\n```\n\n**Example `.env` using username and password:**\n```env\nESCLI_URL=https://localhost:9200\nESCLI_USERNAME=elastic\nESCLI_PASSWORD=yourpassword\n```\n\n\u003e **Tip:** If your .env file is not being picked up, ensure you are running escli from the directory containing the .env file, or that your shell environment is loading it.\n\n---\n\n## Getting Started\n\nUse `--help` to see available commands and options, `-h` for the short version.\n\n### Info\n```sh\n./escli info\n```\n![info.gif](tapes/info.gif)\n\n### Bulk\n```sh\n./escli bulk --input payload.json\n```\n![bulk.gif](tapes/bulk.gif)\n\n### Search\n```sh\n./escli search --index my_index \u003c\u003c\u003c '{\"query\": {\"match_all\": {}}}'\n``` \n![search.gif](tapes/search.gif)\n\n### ES|QL\n```sh\n./escli esql query --format txt \u003c\u003c\u003c '{\"query\": \"FROM \u003cindex\u003e | LIMIT 1\"}'\n```\n![esql.gif](tapes/esql.gif)\n\n### Dump\n```sh\n./escli utils dump \u003cindex\u003e\n```\n![dump.gif](tapes/dump.gif)\n\n### Prerequisites\n- Rust (latest stable or nightly)\n- Elasticsearch cluster (local or remote)\n\n### Build\n```sh\ncargo run -p generator --release\ncargo build -p escli --release\n```\n\nor\n\n```sh\nmake release\n```\n\n### Usage\n```sh\n./escli --help\n```\n\n### Completions\nTo enable completions, run and then source the output in your shell:\n```sh\nCOMPLETE=\u003cshell\u003e ./escli\n```\n\n---\n\n## Running escli with Docker\n\nYou can build and run the escli container locally. By default, the Dockerfile builds for amd64/musl, which works on most modern PCs.\n\n### Build the Docker image (local, single-arch)\n\n```sh\ndocker build -t escli:latest .\n```\n\n### Recommended: Use a wrapper script for escli via Docker\n\nSave the following as `escli` somewhere on your `PATH` (e.g. `/usr/local/bin/escli`) and make it executable (`chmod +x`):\n\n```sh\n#!/bin/sh\n[ -t 0 ] \u0026\u0026 exec docker run --network host -it --rm -e ESCLI_URL -e ESCLI_API_KEY ghcr.io/anaethelion/escli:latest \"$@\"\nexec docker run --network host -i --rm -e ESCLI_URL -e ESCLI_API_KEY ghcr.io/anaethelion/escli:latest \"$@\"\n```\n\nThe script adds `-t` when stdin is a terminal (so commands like `search` that optionally read a body don't hang) and falls back to `-i` when stdin is piped (so body input still works).\n\nThen, set your environment variables on the host and use escli as if it were installed locally:\n\n```sh\nexport ESCLI_URL=https://localhost:9200\nexport ESCLI_API_KEY=your_api_key_here\nescli info\n```\n\nThis approach makes it easy to use escli in Docker with your local environment and network settings.\n\n### Run escli in a container (manual)\n\nYou can also run escli directly with Docker:\n\n```sh\ndocker run --rm -it escli:latest --help\n```\n\nOr mount your .env file if needed:\n\n```sh\ndocker run --rm -it -v $(pwd)/.env:/.env escli:latest info\n```\n\n---\n\n## Workspace Structure\n- `escli/` - Main CLI application\n- `generator/` - Code generation utilities for CLI and API bindings\n\n\n## Development\n- Contributions are welcome! Please open issues or pull requests.\n- See each crate's README or source for more details.\n\n## License\nThis project is licensed under the Apache 2.0 License. See [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanaethelion%2Fescli-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanaethelion%2Fescli-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanaethelion%2Fescli-rs/lists"}