🚀 gulp-cli
A modern, powerful command-line interface for gULP — manage forensic document ingestion, querying, enrichment, and collaboration entirely from your terminal.
✨ What can you do?
- 🔐 Authentication — secure login with token persistence
- 📥 Ingestion — ingest files (single/batch/wildcard), optionally compressed before upload, with concurrent uploads
- 🔍 Querying — raw OpenSearch queries, Sigma rules, external plugins
- 🏷️ Enrichment — enrich documents, tag/untag, update fields
- 👥 User Management — create users, manage permissions (admin only)
- 📋 Operations — create/list/manage operations and contexts
- 🔌 Plugins — list/upload/download plugins and mapping files
- 🗺️ Enhance Maps — map document fields (e.g.,
gulp.event_code) to glyph/color per plugin - 🖼️ Glyphs — create/list/update/delete custom glyphs
- 🧩 Dynamic Extensions — load custom CLI commands from internal or user extension folders
- 📊 Stats — monitor ingestion and query requests
- 🎯 Collaboration — manage notes, links, highlights
All with beautiful terminal output, automatic tab completion, and async-first design.
🚀 Quick Start
Installation
# from pip
pip install gulp-cli
# or install local portable-build tooling
pip install 'gulp-cli[portable]'
# or, for the latest development version:
python3 -m venv ./.venv
source ./.venv/bin/activate
git clone https://github.com/mentat-is/gulp-cli
cd gulp-cli && pip install -e .
# Verify installation
gulp-cli --help
gulp-version
Portable Bundles
For offline use from a USB stick, prefer the OS-specific portable bundles built with PyInstaller instead of pip install.
- Each target OS needs its own bundle: Linux, Windows, macOS Intel, macOS Apple Silicon.
- Portable bundles keep config and external extensions in a local
data/directory next to the executable. - You can override that location with
GULP_CLI_HOMEor--config-dir.
See Portable Usage for the layout, local build command, and CI artifact details.
Basic Usage
for the cli to work, set
"ws_ignore_missing": true(should be default in the v1.6.51 backend, though ...) in yourgulp_cfg.jsonto prevent the backend from halting operations when the CLI disconnects its websocket after sending an async request!
# Login to your gULP instance
gulp-cli auth login --url http://localhost:8080 --username admin --password admin
# Check who you are
gulp-cli auth whoami
# List operations
gulp-cli operation list
# Ingest files with wildcard (per-file progress is on by default; use --no-show-per-file-progress to hide it)
gulp-cli ingest file my_operation win_evtx 'samples/win_evtx/*.evtx'
# Query documents
gulp-cli query raw my_operation --q '{"query":{"match_all":{}}}'
📚 Documentation
- Getting Started Guide — auth, first operation, first ingest
- Command Reference — all available commands and options
- Extensions Guide — dynamic extension loading and custom command contract
- Portable Usage — offline bundles and USB-friendly layout
- Resource Management Commands — context, source, plugin, mapping, enhance-map, glyph
- Practical Examples — real-world workflows and recipes
- Troubleshooting — common issues and solutions
Metadata
Release files for gulp-cli 2.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| gulp_cli-2.0.2.tar.gz | 108.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gulp_cli-2.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 179.7 kB
Release files / gulp_cli-2.0.2.tar.gz
| Download URL | gulp_cli-2.0.2.tar.gz |
|---|---|
| Size | 108.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9528af2e25ab48f85e7821abe04e9708d4147257446dd1e1c8858f8365368706
|
|
BLAKE2b-256 checksum How to use checksums |
dc14151a6d8e822d52a7d9e9bc587ed46fbdcd6ddc5ad9eedf5577d9065b1fde
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.14
|
Release files / gulp_cli-2.0.2-py3-none-any.whl
| Download URL | gulp_cli-2.0.2-py3-none-any.whl |
|---|---|
| Size | 70.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
78037bacd8f439c41f00758844bf22a92ca51591b16dcf4d0fe0bedf240abaef
|
|
BLAKE2b-256 checksum How to use checksums |
30d77e2555ee2410c29f8c08a37dad43e0f3021dfdfc7ff0d709367332f75497
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.14
|
Security for gulp-cli 2.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.