Skip to main content

🚀 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_HOME or --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 your gulp_cfg.json to 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gulp_cli-2.0.1.tar.gz (108.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gulp_cli-2.0.1-py3-none-any.whl (70.7 kB view details)

Uploaded Python 3

File details

Details for the file gulp_cli-2.0.1.tar.gz.

File metadata

  • Download URL: gulp_cli-2.0.1.tar.gz
  • Upload date:
  • Size: 108.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for gulp_cli-2.0.1.tar.gz
Algorithm Hash digest
SHA256 eab5306397f8b30e1ae1b4866b5bb20dba096c4f4a8dc9bd016a1ac7fdaabf41
MD5 53b97d072fb404ec3579b677a7ab19a3
BLAKE2b-256 04b1ff72df095fa7d9d902f8015105e91fd90cd667fb35b6cb73cd9783a1810e

See more details on using hashes here.

File details

Details for the file gulp_cli-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: gulp_cli-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 70.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for gulp_cli-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f5aaf4e4092bf46d3bc745ef7fa8ef8219c7cf8c74107dec8dfaef3806bec0d8
MD5 c6539735afdb2d49d6e7ea6ba6f68901
BLAKE2b-256 aa08cbb45ac74afa737544f786a51ebe404f1c25b7f2aa75437c071a49167dc6

See more details on using hashes here.

Release history Release notifications | RSS feed

2.0.2

2 files

This release

2.0.1 This release

2 files

2.0.0

2 files

1.1.11

2 files

1.1.10

2 files

1.1.9

2 files

1.1.8

2 files

1.1.7

2 files

1.1.6

2 files

1.1.5

2 files

1.1.4

2 files

1.1.3

2 files

1.1.2

2 files

1.0.9

2 files

1.0.8

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page